Задача действительно легкая если носит чисто академический характер. В реальной жизни обычно все не так просто.
Предположим, что файл выглядит так:
20000 лье под водой;Жюль Верн;500
MS SQL Server 2000 Управление и программирование;Пирогов В.Ю.;100
Технологии Delphi - Разработка приложений для бизнеса;Бобровский С.;120
Последовательность полей задано жестко - Название книги,Автор,Количество
Разделителями полей у нас является символ ;
Исходя из этого можно сделать программу:
Код:
program Project25;
{$APPTYPE CONSOLE}
uses
SysUtils,StrUtils,Windows;
Var
SF,DF: TextFile;
S, Autor: String;
P: Integer;
begin
Write('Enter Autor:');
ReadLn(Autor);
Autor := UpperCase(Autor);
AssignFile(SF, 'c:\demo.txt');
Reset(SF);
AssignFile(DF, 'c:\demoR.txt');
Rewrite(DF);
while not Eof(SF)
do begin
ReadLn(SF, S);
P := PosEx(';',S,1)+1;
if Autor = Copy(S, P, PosEx(';',S,P) - P)
then WriteLn(DF, Copy(S, 1, P-2));
end;
CloseFile(DF);
CloseFile(SF);
end.
Замечания: Поскольку это консольное приложение, то оно работает в досовской кодировке следовательно файл тоже должен быть в досовской кодировке.