![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Прочитать и изменить текстовый файл строка за строкой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 |