Компилятор fp c append (<textfile>) ожидает текст, а не дескриптор файла - PullRequest
0 голосов
/ 10 апреля 2020

Использование Lazarus IDE.

Мне нужно добавить строки в текстовый файл. Есть три файла, которые я «открываю» первый файл, нужно добавить к нему, а затем закрыть его, прежде чем открыть второй файл и то же самое к третьему. Строки построены из SQL выбора, который выбирает 24 записи из таблицы в rdbms Firebird одновременно. В таблице 350K записей. Я не думаю, что хочу оставить текстовые файлы открытыми, пока я иду по таблице, используя параметризованный запрос.

Демонстрационная версия

Program pascalFileHandling;

{ Program to demonstrate the Append function. }

Var f : textfile;

begin
    AssignFile (f,'C:\Users\JF\Documents\pascalFileHandling\3_test.txt');
    Rewrite (f);            { file is opened for write, and emptied }
    Writeln (F,'3rd run, This is the first line of 3_text.txt');
    closeFile (f);
    Append(f);              { file is opened for write, but NOT emptied.
                            any text written to it is appended.}
    Writeln (f,'This is the second line of 3_text.txt');
    closeFile (f);
    writeln('Press any key to close');
    readln;
end.

компилируется и запускается, как и ожидалось. в моем коде

try
    AssignFile(csvFile, csvFileNameArray[iIndex]);
    append(csvFile);
    writeln(csvFile, sCSVString);
   closeFile(csvFile);
except
    on E: EInOutError do
        MessageDlg( E.Message,mtError,[mbOK],0 );
end;

компилятор ожидает «append ()», а не переменную текстового файла (дескриптор). Если я дам ему строку, т.е. csvFileNameArray [iIndex] У меня нет «дескриптора» для closeFile! Озадаченный. Есть ли у тела какие-нибудь мысли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...