Войти

Показать полную графическую версию : Соединить два текстовых файла (Delphi xe4).


Tdelphi
04-02-2018, 21:12
Добрый вечер.

Задача состоит в следующем: Программа на delphi xe4. На форме расположена кнопка. При нажатии на кнопку нужно выбрать нужные файлы из папки и соединить их в один. Файлы формата .txt. Кто может подсказать функцию для соединения больших файлов (1 гигабайт и выше) ?. Или может есть готовый вариант, в общем любые ваши предложения и помощь.

Gramodei
07-03-2018, 21:06
Возможно TXTcollector поможет? Хотя на файлах именно такого размера я его не пробовал.

shisik
07-03-2018, 23:01
А что мешает небольшими блоками скопировать содержимое первого файла в новый файл, а потом сразу содержимое второго? Не обязательно ж все даныне в память загружать.

ziku
08-03-2018, 21:29
Обычно, лично я когда мне нужен был текст, просто выделял его и копировал, а потом вставлял в блокнот. Так можно было склеить любую длину файлов с расширением ххх.txt. Для меня это было проще. Да же книги которые нельзя скачать я так собирал
Но если нужно склеить много файлов в один существует малюсенькая программа - File Joiner. Я ей никогда не пользовался и ничего о ней сказать не могу.

NickM
09-03-2018, 06:29
copy /b file1+file2 file3

shisik
09-03-2018, 13:36
ziku, NickM, а разве задача не в написании соответствующей программы?

ziku, скопировать в блокнот гигабайт текста. Хорошая шутка :)

opel431
10-03-2018, 17:36
Попробуйте через потокиprocedure ConcatenateFiles(const InFileNames: array of string;
const OutFileName: string);
var
i: Integer;
InStream, OutStream: TFileStream;
begin
OutStream := TFileStream.Create(OutFileName, fmCreate);
try
for i := 0 to high(InFileNames) do
begin
InStream := TFileStream.Create(InFileNames[i], fmOpenRead);
try
OutStream.CopyFrom(InStream, InStream.Size);
finally
InStream.Free;
end;
end;
finally
OutStream.Free;
end;
end;

ConcatenateFiles(['Part1', 'Part2'], 'OutFile')




© OSzone.net 2001-2012