Показать сообщение отдельно
  #4  
Старый 25.02.2018, 21:34
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну да, тогда получается, что в самом плохом случае только на данные тебе надо более 2 ГБ, что под 32 бита без специальных усилий не сделать. Соответсвенно, читать и писать файлы надо действительно по сточно, нефиг забивать ими память.
Код:
var
  FIn, FOrg, FWrk, FTyp : TextFile;
  S : String;
begin
  If Not OpenDialog1.Execute Then Exit;
  AssignFile(FIn,OpenDialog1.FileName);
  AssignFile(FOrg,'Organization.txt');
  AssignFile(FWrk,'Working.txt');
  AssignFile(FTyp,'Types.txt');
  Reset(FIn);
  Rewrite(FOrg);
  Rewrite(FWrk);
  Rewrite(FType);
  While Not EOF(FIn) Do
    Begin
      ReadLn(FIn,S);
      if CheckBox1.Checked then
        if Pos(Edit1.Text, S) > 0 then WriteLn(FOrg,S);
      if CheckBox2.Checked then
        if Pos(Edit2.Text, S) > 0 then WriteLn(FWrk,S);
      if CheckBox3.Checked then
        if Pos(Edit3.Text, S) > 0 then WriteLn(FTyp,S);
    End;
  CloseFile(FIn);
  CloseFile(FOrg);
  CloseFile(FWrk);
  CloseFile(FTyp);
end;
Как то так...
Ответить с цитированием