Показать сообщение отдельно
  #4  
Старый 04.02.2018, 13:37
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Здесь "резка" идёт по байтам, а не по строкам, тогда нужно реагировать на перевод каретки, но это слегка затратно, проще использовать возможности класса TStrings, примерно так
Код:
procedure CutFile(FileName: string; PartStrCnt: integer);
var
 sl1, sl2: TStrings;
 i, j: integer;
begin
 sl1:= TStringList.Create;
 sl2:= TStringList.Create;
 sl1.LoadFromFile(FileName);
 i:= 1;

 for j := 0 to sl1.Count-1 do
  begin
   sl2.Add(sl1[j]);
   if sl2.Count = PartStrCnt then
    begin
     sl2.SaveToFile(FileName + '.part' + IntToStr(i));
     sl2.Clear;
     inc(i);
    end;
  end;

 sl2.SaveToFile(FileName + '.part' + IntToStr(i));
 sl1.Free;
 sl2.Free;
end;
Ответить с цитированием