русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Получение сведений о файлах

Если ваша программа использует какие-либо файлы данных, настроек и т.п., всегда есть вероятность, что при очередном запуске нужного файла на диске не окажется – то ли пользователь стер по ошибке, то ли вирус потрудился. Если такую ситуацию не предусмотреть, программа "свалится" с выдачей противного сообщения " Access Violation", а автора программы и его маму будут поминать нехорошими словами.

Крайне желательно перед открытием файла проверять, существует ли он на диске. Делается это очень просто:

для файла:

FileExists(имя_файла)

для директории:

DirectoryExists(имя_директории);

Проверка может выглядеть, например, так:

IF NOT(FileExists

(ExtractFilePath(Application.ExeName)+'data.dat') THEN

BEGIN

MessageDlg('Пропал файл data.dat!',mtError,[mbOK],0);

Close

END;

Обратите внимание на конструкцию ExtractFilePath(Application.ExeName). В свойстве Exename глобального объекта Application всегда хранится имя exe-файла нашей программы с полным путем к нему. Функция ExtractFilePath извлекает только путь к exe-файлу. Таким образом, всегда можно узнать, из какой директории запущена программа, и где искать необходимые для ее работы файлы.

У файла есть много параметров – размер, дата и время создания, атрибуты. Их можно "выковыривать" по одному при помощи кучи функций типа GetFileSize, GetAttr и т.д., которые остались в Delphi как тяжелое наследство старого Паскаля. Но есть способ лучше! В языке предусмотрен специальный тип данных TSearchRec для хранения всех сведений о файле в одной переменной:

TSearchRec = record

Time: Integer; // дата и время создания

Size: Integer; // размер в байтах

Attr: Integer; // атрибуты файла

Name: TFileName; // имя файла с расширением

end;

Все поля записи заполняются при помощи процедуры

FindFirst(имя_файла, атрибут, переменная_типа_TSearchRec)

Параметр атрибут указывает, с файл какими атрибутами нужно искать. Его возможные значения:

faReadOnly ­- только для чтения;

faHidden ­- скрытый файл;

faSysFile ­- системный файл;

faVolumeID ­- метка диска;

faDirectory ­- директория;

faArchive ­- обычный файл;

faAnyFile ­- любой файл.

Например:

VAR s:TSearchRec;

with OpenDialog1 do

if Execute THEN

BEGIN

FindFirst(filename,faAnyFile,s);

Label1.Caption:='Размер файла '+IntToStr(s.Size)+'Кб'

END;

Для работы с датой и временем создания файла значение в поле Time надо преобразовать при помощи функции с длинным названием FileDateToDateTime:

Label1.Caption:=DateTimeToStr(FileDateToDateTime(s.Time))

Просмотров: 613


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.