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
- 5341 reads