Функции для работы с текстовыми файлами через файловые переменные
EOF(<идентификатор файловой переменной>): Boolean – возвращает True, если следующий за последним прочитанным символом – маркер конца файла.
EOLn(<идентификатор файловой переменной>): Boolean – возвращает True, если следующий за последним прочитанным символом – маркер конца строки.
SeekEOF(<идентификатор файловой переменной>):Boolean – функция аналогичная EOF, но игнорирует пробелы, табуляцию и EOLn. Это функция бывает полезной при чтении числовых данных из текстового файла.
SeekEOLn(<идентификатор файловой переменной>): Boolean – функция аналогичная EOLn, но игнорирует пробелы и табуляцию.
Наиболее часто используемые процедуры и функции для управления файлами и папками:
ChDir(Path: String)– эта процедура устанавливает новую текущую папку, для которой в параметре Раth заданы имя устройства, путь до папки и ее имя.
CreateDir(Dir: String): Boolean – функция создает новую папку, для которой в параметре Dir указаны имя устройства, путь до папки и ее имя. Функция возвращает значение True, если папка успешно создана, и Fаlsе – в противном случае.
DeleteFile(FileName: String): Boolean – функция удаляет файл, заданный параметром FileName, на соответствующем устройстве. Параметр FileName содержит полное имя файла. Если файл успешно удален, функция возвращает значение True, в противном случае – False.
DiskFree(Drive: Byte): Int64 – функция возвращает число свободных байт памяти на устройстве Drive. Параметр Drive имеет следующие значения: 0 – текущее устройство, 1 – устройство А:, 2 – устройство В: и т.д.
FileExists(FileName: String): Boolean – функция возвращает значение True, если файл с именем FileName существует, и False – иначе.
FileSearch(Name, DirList: String): String – функция ищет файл с именем Name в списке папок, заданном строкой DirList. В этой строке папки отделяются друг от друга точкой с запятой. Если файл найден, функция возвращает его полное имя, включающее устройство, путь, собственно имя и расширение. В противном случае возвращается пустая строка.
GetCurrentDir: String – функция возвращает в виде строки устройство, путь и имя текущей папки.
MkDir(Path: String) – создает новую папку, для которой в параметре Path заданы имя устройства, путь до папки и ее имя.
RemoveDir(Dir: String): Boolean – удаляет пустую папку, заданную строкой Dir. Если папка успешно удалена, функция возвращает значение True, в противном случае – False.
RenameFile(OldName, NewName: String): Boolean – переименовывает файл с именем OldName в файл с именем NewName. Если переименование прошло успешно, функция возвращает значение True, в противном случае – False.
SetCurrentDir(Dir: String) – функция делает текущей папку, заданную строкой Dir. Если заданная папка стала текущей, функция возвращает значение Тrue, в противном случае – False.
Кроме перечисленных процедур и функций, для комфортного диалога выбора нужного файла, на странице Dialogs палитры компонент существуют два компонента:
TOpenDialog– показывает стандартное диалоговое Windows-окно выбора файла для его открытия.
Его основные свойства:
- FileName: string – содержит имя и путь к выбранному файлу;
- InitialDir: string – задает текущую папку, для которой будет открыто диалоговое окно;
- Title: string – задает заголовок диалогового окна;
- Options – множество значений, позволяющих настраивать внешний вид и поведение диалогового окна.
Основной метод – это Execute: Boolean, именно он показывает диалоговое окно. Метод возвращает True, если пользователь выбрал файл и нажал кнопку Open. Если пользователь нажал Cancel, то метод возвращает False.
TSaveDialog– показывает стандартное диалоговое Windows-окно выбора файла для сохранения в нем данных. Его основные свойства FileName, InitialDir, Title, Options и метод Execute аналогичны предыдущему компоненту.
Указанные компоненты применяются для получения имени файла (в свойстве FileName), которое дальше можно использовать для сохранения данных или открытия файла тем или иным способом (Append, Rewrite, Reset).
В заключение укажем два полезных метода чтения и записи в файл «оптом» списка строк для компонента TStrings. Данный компонент является предком всех компонент, работающих со строками. Поэтому, согласно полиморфизму методов для родственных объектов, такие же методы существуют и у его потомков. Эти методы очень удобны при обработке списков строк посредством стандартных компонентов Object Pascal.
LoadFromFile(FileName: string) – читает строки из файла FileName и заносит их в тот объект-список, к которому он применяется. Например, RichEdit1.Lines.LoadFromFile(FileName);
SaveToFile(FileName: string) – сохраняет (перезаписывает) список строк в фал FileName из объекта-списка, к которому он применяется.
Например, ListBox1.Items.SaveToFile(FileName);
Пример
Чтение из файла списка строк в ListBox1 при щелчке на кнопке Button1.
procedureTForm1.Button1Click(Sender: TObject);
Begin
OpenDialog1.InitialDir:=GetCurrentDir;
{ - папка диалогового окна совпадает с текущей папкой приложения}
OpenDialog1.Title:='My Open-file dialog';
IfOpenDialog1.Execute Then//если файл выбран,
Begin//загрузить файл в ListBox1:
ListBox1.Items.LoadFromFile(OpenDialog1.FileName);
Button1.Hint:=OpenDialog1.FileName;
{ - показывать имя файла в подсказке для кнопки Button1: }
Button1.ShowHint:=True;
end;
end;
Задание 1