Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабы / лаб7 / lab7

.pas
Скачиваний:
13
Добавлен:
07.06.2023
Размер:
2 Кб
Скачать
program lab7;
uses sysutils;
const 
    cols = 5;
    need_col = 5;
type 
    arr_str = array[1..cols] of string;
var
    f: TextFile;
    fname: string;
    x: string;
    Code: integer;
    temp_v: longint;
    temp_arr: arr_str;
    temp_cost_str: string;
    all_sum: longint = 0;

function replaceStr(s,r,j:string):string;
var temp_pos: integer;
begin
    temp_pos := pos(r,s);
    delete(s,temp_pos,length(r));
    insert(j,s,temp_pos);

    replaceStr := s;
end;

function deleteSpaces(s:string):string;
var i: integer;
begin
    for i:=1 to Length(s) do
    begin
        if (s[i] = ' ') then s := replaceStr(s,' ','');
    end;

    deleteSpaces := s;
end;

function makeArrFromStr(s:string):arr_str;
var
    i: integer;
    ni: integer = 1;
    temp_s: string = '';
    result: arr_str;

begin
    for i:=1 to Length(s) do 
    begin
        if ((s[i] = '|') or (i = Length(s))) then 
        begin
            if (i = Length(s)) then temp_s := temp_s + s[Length(s)];
            result[ni] := temp_s;
            ni := ni + 1;
            temp_s := '';
        end
        else temp_s := temp_s + s[i];
    end;

    makeArrFromStr := result;
end;

begin
    Write('Введите название файла: '); ReadLn(fname);
    if (not FileExists(fname)) then 
    begin
        WriteLn('Такого файла не существует.');
        exit;
    end;
    assign(f,fname);
    reset(f);
    ReadLn(f,x);
    while (not eof(f)) do
    begin
        ReadLn(f,x);

        temp_arr := makeArrFromStr(x);

        temp_cost_str := replaceStr(temp_arr[need_col],'рублей','');

        temp_cost_str := deleteSpaces(temp_cost_str);

        val(temp_cost_str,temp_v,Code);
        if (Code <> 0) then WriteLn(Code);

        all_sum := all_sum + temp_v;
    end;
    WriteLn('суммарные затраты на приобретение: ', all_sum, ' рублей');
    close(f);
end.
Соседние файлы в папке лаб7