Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Функции для выполнения операций с файлами, папками и дискамиСодержание книги
Поиск на нашем сайте
2.1. Для выполнения операций с файлами, папками и дисками в ОС Windows служат следующие системные функции Win32API: CreateDirectory ( LPCTSTR lpPathName, // указатель на буфер, в котором записано наименование создаваемой директории LPSECURITY_ATTRIBUTES lpSecurityAttributes //привилегии создаваемой директории ) – создание директории. Пример: result:=CreateDirectory('A:\TESTDIR', nil);//создаем директорию if not result then MessageDlg('Невозможно создать каталоги!'+#10#13+'Такие каталоги существуют или диск защищен от записи!', mtConfirmation, [mbYes], 0) else begin SetCurrentDirectory('A:\TESTDIR'); CreateDirectory('A:\TESTDIR\NEWDIR', nil); end;
OpenFile ( LPCSTR lpFileName, // указатель на имя создаваемого файла LPOFSTRUCT lpReOpenBuff, UINT uStyle // действия и атрибуты ) - создание файла, используется также для открытия, записи, добавления и т.д. в зависимости от параметра uStyle. Пример: begin MyFile:=OpenFile('A:\TESTDIR\File1.txt',ReOpenBuff,OF_CREATE); buffer:='Текстовая строка'; count:=length(buffer); _lwrite(MyFile,@Buffer[1],count); //записываем в файл _lclose(Myfile); end; В данном примере использованы следующие функции: _lwrite ( HFILE hFile, // хэндл файла LPCSTR lpBuffer, // указатель на буфер, данные из которого записываются в файл UINT uBytes //число байтов, записываемых в файл ) - запись в файл; _close ( HFILE hFile // хэндл закрываемого файла ) – закрыть файл; _lread ( HFILE hFile, // хэндл читаемого файла LPVOID lpBuffer, // указатель на буфер, в который читать UINT uBytes // количество байт, которые нужно читать ) – чтение файла;
_ llseek ( HFILE hFile, // хэндл файла LONG lOffset, // количество байт, на которое сдвигается указатель файла int iOrigin // с какого байта сдвигать ) - позиционирование файла; Пример: Myfile:=_lopen('A:\TESTDIR\File1.txt',OF_READ);//открываем файл count:=8; _llseek(MyFile,4,FILE_BEGIN); //позиционируем открытый файл на 5-й байт от начала файла _lread(MyFile,@Buff,count); // читаем 8 байт ReadFile( HANDLE hFile, // хэндл читаемого файла LPVOID lpBuffer, // указатель на буфер, в который читаем DWORD nNumberOfBytesToRead, // число байт, которые хотим прочесть LPDWORD lpNumberOfBytesRead,// буфер, в который будет записано число прочитанных байт LPOVERLAPPED lpOverlapped // при синхронном вводе значение NULL ) – чтение файла.
SetFilePointer( HANDLE hFile, // хэндл позиционируемого файла LONG lDistanceToMove, // число символов, на которое сдвигаем PLONG lpDistanceToMoveHigh, // старшие 32 разряда числа символов, на которое сдвигаем DWORD dwMoveMethod // откуда сдвигать ) - позиционирование файла.
LockFile( HANDLE hFile, // хэндл блокируемого файла DWORD dwFileOffsetLow, // младшие 32 разряда DWORD dwFileOffsetHigh,//старшие 32 смещения блокируемой части файла DWORD nNumberOfBytesToLockLow,// младшие 32 разряда DWORD nNumberOfBytesToLockHigh // старшие 32 разряда числа, определяющие размер блокируемой части файла ) - блокирование файла. UnlockFile( HANDLE hFile, // хэндл блокируемого файла DWORD dwFileOffsetLow, // младшие 32 разряда DWORD dwFileOffsetHigh,//старшие 32 смещения блокируемой части файла DWORD nNumberOfBytesToLockLow,// младшие 32 разряда DWORD nNumberOfBytesToLockHigh // старшие 32 разряда числа, определяющие размер блокируемой части файла ) - разблокирование файла. Пример: begin //открываем файл Мyfile:=_lopen('A:\TESTDIR\File1.txt',OF_READWRITE); // читаем 4096 байт в buff ReadFile(MyFile, buff, 4096, dwBytesRead, nil); //позиционируем на конец файла dwPos:= SetFilePointer(MyFile, 0, nil, FILE_END); //блокирум часть файла LockFile(MyFile, dwPos, 0, dwPos + dwBytesRead, 0); buffer:='Дополнительная строка'; count:=length(buffer); //записываем в конец файла то, что содержит переменная buffer _lwrite(MyFile,@Buffer[1],count); //разблокируем часть файла UnlockFile(MyFile, dwPos, 0, dwPos + dwBytesRead, 0); End; SetFileAttributes( LPCTSTR lpFileName, // имя файла DWORD dwFileAttributes // устанавливаемые атрибуты ) – установка атрибутов файла. Пример: attributes:=FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_READONLY; result:=SetFileAttributes('A:\TESTDIR\File1.txt',attributes);
MoveFile( LPCTSTR lpExistingFileName,//указатель на буфер с именем файла LPCTSTR lpNewFileName // указатель на буфер с новым именем файла ) – перемещение файла. Пример: result:=MoveFile('A:\TESTDIR\File2.txt','A:\TESTDIR\NEWDIR\File2.txt');
SetVolumeLabel( LPCTSTR lpRootPathName,//корневой каталог LPCTSTR lpVolumeName // метка ) - установка метки. Пример: result:=SetVolumeLabel('A:\'+#0,'LABEL');//устанавливаем метку дискеты
|
||||
Последнее изменение этой страницы: 2017-02-06; просмотров: 419; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.86.132 (0.008 с.) |