Входящий файл:
Tovar1
Россия
12
Tovar1
Германия
25
Tovar3
Франция
45
Tovar1
Россия
36
Tovar5
Франция
45
Tovar3
Россия
58
Выходной файл:
Список Стран:Россия,Германия,Россия
Общий объем:73
Program Cex;
var
f: text; { текстовая переменная }
TempValue, i, Count, Error: integer;
Strans, N: string;
InfoArr: array [1 .. 3] of string;
{ массив информации о твоем товаре и остальном }
Procedure SaveFile; { сохранение инфы в файл }
var
q: text;
begin
assign(q, 'Result.txt');
rewrite(q);
writeln(q, 'Список Стран:', Strans);
writeln(q, 'Общий объем:', Count);
close(q);
end;
procedure Info;
begin { разделяем }
if Length(Strans) <> 0 then
Strans := Strans + ',' + InfoArr[2]
else
Strans := InfoArr[2]; { Добавим нашу страну в список }
val(InfoArr[3], TempValue, Error);
{ Конвертируем строку в число импорт. товара }
Count := Count + TempValue; { суммируем }
end;
BEGIN
writeln('Vvedite n');
Readln(N);
assign(f, 'Tovar.txt'); { файл Tovar.txt }
Reset(f);
While not(eof(f)) do { циклимся пока не конец }
begin
Readln(f, InfoArr[1]); { читаем наименование }
Readln(f, InfoArr[2]); { страна }
Readln(f, InfoArr[3]); { количество }
if InfoArr[1] = N then
Info; { если есть такое число в страке с инфой то перепроверем }
end;
close(f);
SaveFile; { сохраним в файл инфу }
Readln;
END.
{ P.S. <if pos(nStr,temp)<>0 then Info(temp,nStr);>не является совершенным методом проверки,но работает на ура }