lazarus pascal rewrite, append не работает -- Файл не отображается в папке, не сохраняются изменения
Primary tabs
Заметка связана с работой с файлами в Паскаль.
Проблема
Эта проблема относится к работе с файлами, а точнее -- к записи текста процедурами классического Паскаля.
Файл (предположим, что сначала его не существовало) не создаётся в папке в обоих случаях, но почему-то, если предаврительно провести в него запись:
Var
f1:text; // тип для открытия текстового файла
filename, filename2, s: string;
i:integer;
begin
filename := 'C:\Users\TEMP.UIC.014\Documents\output.txt'; // путь к файлу
//
assign (f1,filename); // ассоциируем файл с переменной
rewrite(f1); // открываем для записи
for i:=1 to 10 do
writeln(f1, 'Privet Mir! ');
close(f1); // закрываем файл
assign(f1, filename);
{$I-} reset(f1); {$I+} // попытка открыть файл на чтение с подавлением ошибки
if IOResult <> 0 then // если есть ошибки
begin
writeLn('File ', filename, ' ne naiden!');
end else // если удалось открыть на чтение
begin
writeLn('File ', filename, ' suchectvuet. I vot ego soderzimoe:');
while not eof(f1) do
begin
readln(f1, s);
writeln(s);
end;
writeLn('========= konez faila =========');
end;
readln();
end.
-- то программа его находит (непонятно где, но записанное выводится), а вот так уже не находит:
Var
f1:text; // тип для открытия текстового файла
filename, filename2, s: string;
i:integer;
begin
filename := 'C:\Users\TEMP.UIC.014\Documents\output.txt'; // путь к файлу
//
assign(f1, filename);
{$I-} reset(f1); {$I+} // попытка открыть файл на чтение с подавлением ошибки
if IOResult <> 0 then // если есть ошибки
begin
writeLn('File ', filename, ' ne naiden!');
end else // если удалось открыть на чтение
begin
writeLn('File ', filename, ' suchectvuet. I vot ego soderzimoe:');
while not eof(f1) do
begin
readln(f1, s);
writeln(s);
end;
writeLn('========= konez faila =========');
end;
readln();
end.
-- аналочно, если создать файл, то в первом случае чтение будет происходить непонятно откуда (как будто имеет место быть некая замена путей), а во втором случае файл будет читаться по-нормальному (теперь он уже будет обнаружен).
Аналогичная проблема наблюдается и с append -- он считывает имеющиеся данные, и как "добавляет" к ним новое, но вся работа как будто проводится только в оперативной памяти (или просто с копией файла), изменения не сохраняются.
Причина
Здесь что-то непонятное. Люди пишут о нестандартном поведении старых функций ввода/вывода в Windows 7 и выше (у меня в данный момент 8-я версия)
- Log in to post comments
- 5759 reads