![]() |
![]() ![]() ![]() ![]() |
|
Прочитать и изменить текстовый файл строка за строкойDelphi , Файловая система , ФайлыПрочитать и изменить текстовый файл строка за строкой
Оформил: DeeCo
procedure TForm1.Button1Click(Sender: TObject);
var
i, z: Integer;
f: TextFile;
t: string;
Data: array of string;
begin
if OpenDialog1.Execute then
begin
//Read line by line in to the array data
AssignFile(f, OpenDialog1.FileName);
Reset(f);
z := 0;
SetLength(Data, 0);
//Repeat for each line until end of file
repeat
Inc(z);
readln(f, t);
SetLength(Data, Length(Data) + Length(t));
Data[z] := t;
until EOF(f);
SetLength(Data, Length(Data) + 3 * z);
//Add to each line the line number
for i := 1 to z do Data[i] := IntToStr(i) + ' ' + Data[i];
SetLength(Data, Length(Data) + 2);
//Add a carriage return and line feed
Data[1] := Data[1] + #13 + #10;
i := Length(Data[5]);
Data[5] := '';
SetLength(Data, Length(Data) - i);
//create a new textfile with the new data
AssignFile(f, OpenDialog1.FileName + '2');
ReWrite(f);
//write all lines
for i := 1 to z do writeln(f, Data[i]);
//save file and close it
CloseFile(f);
end;
end;
Here is the translation of the content into Russian: Это код программирования на Delphi, который читает текстовый файл построчно, обрабатывает строки и затем пишет обработанные строки обратно в новый текстовый файл. Обработкаinvolve добавление номера строки к каждой строке, а также добавление возврата каретки и символа конца строки в начале первой строки. Вот разбивка того, что код делает:
Вот некоторые улучшения, которые можно сделать:
Вот альтернативное решение, использующее динамический массив и поток: Этот код делает то же самое, что и оригинальный код, но он использует динамический массив и поток для чтения и записи файла. Он также устраняет необходимость переменной номера строки Программист описывает в статье алгоритм чтения и изменения текстового файла строка за строкой с использованием языка программирования Delphi, создавая новый файл с измененными строками. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||