Как редактировать определенную строку в текстовом файле, используя Паскаль - PullRequest
0 голосов
/ 05 мая 2018

Я изо всех сил пытаюсь заменить определенную строку текста моим текстом из моей программы. Пока что все, что у меня есть, - это открыть файл для редактирования ... Я попытался найти в Интернете, но самый близкий, который я смог найти, был такой: http://wiki.freepascal.org/File_Handling_In_Pascal. На странице есть все о добавлении новых текстов под строкой в существующий файл и создание совершенно нового файла для добавления текстов, но не для конкретной строки в существующем файле ...

var musicfile: TextFile;    
AssignFile(musicfile, 'AlbumList.dat');
Append(musicfile);
WriteLn(musicfile, 'A text a want to replace line 5 with, but I dont know how to find line 5...');
Close(musicfile);

1 Ответ

0 голосов
/ 14 мая 2018

Вы можете создать новый файл и скопировать все строки, кроме той, которую хотите заменить. Как это:

var musicfile: TextFile;
    newfile: TextFile;
    line: string[100]; // long enough to hold the longest line in the file
    i: word; // counter for the lines

AssignFile(musicfile, 'AlbumList.dat');
AssignFile(newfile, 'AlbumList(1).dat'); // create new file

Reset(musicfile);
Rewrite(newfile); // open the new file for writing

i := 0 // we are at the 1st (index from zero) line

while not eof(musicfile) do begin
    readln(musicfile, line); // read the line into a variable
    if (i = 4) then // if we are at the 5th line, replace line
        writeln(newfile, 'The string which should replace the 5th line')
    else // just copy the line
        writeln(newfile, line);
    i := i + 1;
end;

Close(musicfile);
Close(newfile);
...