Rewrite delphi что это

Обновлено: 05.07.2024

В основной проге файловая переменная привязана к файлу f. Когда я её запускаю, Delphi добавляет в него строку "Файл пуст". Затем его закрывает. Файл на компе появился, блокнотом читается, а когда дальше в модуле натыкается на Reset(f), выкидывает и пишет ошибку ввода-вывода.
Текст проги:

var
ch:char;
f1,f2:textfile;
begin
Assign(f1,'C:\Users\Pingui Kovalsky\Desktop\JailBreak\List1.txt');
Assign(f2,'C:\Users\Pingui Kovalsky\Desktop\JailBreak\List2.txt');
Rewrite(f1);
Writeln(f1,'Список пуст');
Close(f1);
repeat
writeln('Выберите пункт меню: ');
writeln('1-Создание списка');
writeln('2-Чтение списка');
writeln('3-Замена номера телефона');
writeln('4-Выход');
readln(ch);
case ch of
'1':vvod;
'2':vivod;
'3':obrabotka;
end;
until ch='4';
end.

Procedure vvod;
Procedure vivod;
Procedure obrabotka;

Procedure vvod;
var N,m:byte;
begin
write('Сколько абонентов: ');
readln(N);

REWRITE(F1); - ЗДЕСЬ ВЫЛЕТАЕТ

for m:=1 to N do
begin
write('Фамилия: ');
readln(fam);
write('Телефон: ');
readln(tel);
st:=fam+' '+tel;
Writeln(f1,st);
end;
Close(f1);
readln;
end;

Procedure vivod;
begin

RESET(F1); - ЗДЕСЬ ВЫЛЕТАЕТ

While not SeekEOF(f1) do
begin
Readln(f1,st);
writeln(st);
end;
Close(f1);
readln;
.

В чём причина-не пойму. Подскажите, кто разберётся

Читайте про области видимости переменных. Вы удивитесь, но файловые переменные в модуле и в основногй программе это разные переменные и то, что вы в основной программе что-то там связали с файлом ничего не значит для модуля. В модуле f1 и f2 это локальные переменные, которые не видимы за его прделами.

Уберите из основной программы f1,f1: Text; и подключите свой модуль. Причем переменные f1,f2 перенесите в интерфейсную секцию.

Подключение к файлу

Для связи программы с файлом используется специальная переменная – "Файловая переменная". Объявляется она так же как и любая переменная в Delphi. Тип это переменной может быть File для типизированных (хранящих данные определенного типа) файлов, а можно указать TextFile, что будет означать тип обычного текстового файла. Объявление переменной:

В исполняемом коде программы выполняется подключение к внешнему файлу:

Команда AssignFile, выполняет связь файловой переменной с внешним файлом. Вторым параметром указывается адрес файла. Он может быть задан относительным или абсолютным. Если указать только имя файла, то программа будет пытаться обнаружить его в той же директории, где она сама и находится. Абсолютный путь указывается от корневого диска:

Использование относительной директории дает возможность не привязываться к конкретным дискам и адресам. Например:

После того как выполнено подключение, выполняется процедура, устанавливающая режим работы с файлом. В основном это режим чтения или записи. Эти режимы назначаются процедурами Reset() ( для чтения) и rewrite() (для записи):

* Для команды Rewrite() следует учитывать, что при ее выполнении, она либо создает файл, указанный в файловой переменной, либо если он уже есть перезаписывает файл заново, удаляя старый без какого-то предупреждения.

Любую из указанных команд можно использовать без команды AssignFile(). Для этого достаточно вторым параметром указать путь к файлу. Таким образом, она сразу выполнит привязку файла к файловой переменной и назначит режим работы с этим файлом:

Rewrite delphi что это

Вы должны использовать AssignFile, чтобы назначить файл на FileHandle перед использованием Reset.

Используйте Write или WriteLn для записи в файл после этого выполнится Reset.

Используется для текстовых файлов. Они могут читаться только после открытия с помощью Reset.

Она для двоичных файлов. Перед использованием Reset, вы должны установить FileMode в одно из следующих:

fmOpenRead : Только для чтения
fmOpenWrite : Только для записи
fmOpenReadWrite : Чтения и записи

AssignFile Связывает дескриптор файла с бинарным или текстовым файлом

CloseFile Закрывает открытый файл

File Определяет типизированный или нетипизированный файл

ReWrite Открывает текстовый или двоичный файл для записи

TextFile Объявляет типа файл для того, чтобы сохранить строки текста

Rewrite delphi что это

Текстовые файлы обеспечивают простой и удобный способ сохранения текстовых данных. Они обеспечивают простой механизм для чтения и записи численных данных, сохраненных как текст (см. Write), но более безопасно и более разумно использовать для этого структурированные записи, при сохранении чего-нибудь отличного от простых текстовых строк.

AssignFile Связывает дескриптор файла с бинарным или текстовым файлом

File Определяет типизированный или нетипизированный файл

Reset Открывает текстовый файл для чтения, или двоичный файл для чтения/записи

Создание и работа с текстовыми файлами в Delphi

Когда речь идет о работе программы с текстовым файлом, подразумеваются процедуры ввода данных из файла в программу или, наоборот, запись этих данных в файл программой. Для текстового файла допустима простая работа с файлом без особых дополнительных механизмов, которые применяются для работы со специализированными файлами, такими как при загрузке данных из Excel или работе программы с базой данных. Разумеется, Delphi располагает возможностями работать с файлами с использованием компонентов. Но в данной статье рассматривается механизм прямой работы с текстовым файлом без использования дополнительных компонентов.

Итак, в общем виде, работа с файлом заключается в следующих этапах:

1. подключение к файлу – связь с внешним файлом, указание режима подключения;

2. выполнение операций записи в файл или чтения из файла;

3. завершение работы с файлом.

Примеры работы с текстовыми файлами в Delphi

Чтение в переменную одного значения из файла:

Загрузить все строки файла в компонент Memo:

Следует отметить, что для этой задачи проще воспользоваться командой самого компонента Memo LoadFromFile().

Записать строку в файл:

Записать в текстовый файл все строки из компонента Memo:

Как и для чтения из файла в Memo, так и здесь, имеется специальная команда:

Операции с файлами

Для чтения из файла, необходимо назначить режим чтения и использовать команду Readln(), которая будет вводить в строковую переменную по одной строке из файла. Затем с этой переменой можно выполнить необходимые действия.

Обычно для загрузки всех строк из файла используется оператор цикла. Для того, чтобы определить, что файл закончился используется функция EOF() (End Of File). Таким образом получается цикл, в котором последовательно в строковую переменную вводятся все строки файла и завершающийся после окончания фала:

Для записи, назначение режим записи в файл и командой Writeln() производится запись по строкам.

Закрытие файла

По завершении работы с файлами, особенно в случае записи в них данных, необходимо корректно завершить работу с файловой переменной. Это делается для того, чтобы сохранить все внесенные в файл изменения.

Читайте также: