Показать сообщение отдельно
  #3  
Старый 31.05.2009, 10:47
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Задача действительно легкая если носит чисто академический характер. В реальной жизни обычно все не так просто.
Предположим, что файл выглядит так:
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.

Замечания: Поскольку это консольное приложение, то оно работает в досовской кодировке следовательно файл тоже должен быть в досовской кодировке.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием