|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как открыть текстовый файл с досутпом для всех процессов
В FAQ не нашел, в справке тоже.
|
#2
|
||||
|
||||
Вообще-то в справке есть, главное правильно искать:
Цитата:
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
Помогите пожалуста, я не могу разобрася, у меня даже справка русская есть, толко там стов много неизвестных.
Все что мне надо: открыть текстовый файл для чтения\записи с помощью обычных функций write, writeln и т.д. Вот справка: Описание: function CreateFile(lpFileName: PChar; dwDesiredAccess, dwShareMode: DWORD; lpSecurityAttributes: PSecurityAttributes; dwCreationDisposition, dwFlagsAndAttributes: DWORD; hTemplateFile: THandle): THandle; Параметры lpFileName: Строка которая определяет название объекта для создания или открытия. Если lpFileName - путь, то максимум символов в строке определено константой MAX_PATH. Windows NT: Можно использовать пути более MAX_PATH знаков, вызывая расширенную (W) версию CreateFile и подставив " \\? \ " в Путь. " \\? \ " говорит функции выключать парсинг пути. Это позволяет вам использовать пути, которые имеют почти 32 000 Unicode знаков. Функция также работает с именами internet-протокола. " \\? \ " игнорируется как часть пути. Например, " \\? \C:\myworld\private" будет трансформирован в "C:\myworld\private", а " \\? \UNC\tom_1\hotstuff\coolapps" будет трансформирован в " \\ tom_1\hotstuff\coolapps". dwDesiredAccess: Определяет тип доступа к объекту. Приложение может получить доступ по чтению, записи, записи-чтению. Этим параметром может быть любая комбинация следующих флагов: -0 - Специальный флаг доступа к обьекту. Определяет аттрибуты файла не подсоединяясь к нему, не подсоединяясь к нему. -GENERIC_READ- определяет доступ по чтению к устройству. Данные могут читаться из файла, а указатель файла может быть перемещен. Объединяется с флагом GENERIC_WRITE для доступа по чтению-записи. -GENERIC_WRITE - определяет, доступ по записи к устройству. Данные могут быть записываться в файл, и указатель файла может быть перемещен. Объединяется с флагом GENERIC_WRITE для доступа по чтению-записи. dwShareMode: Набор флагов который определяет, как объект может быть разделен(shared). Если dwShareMode - 0, объект не может быть разделен. Последующие операции открытия объекта будут отклонены, пока указатель не будет закрыт. Чтобы разделить объект, используйте комбинацию следующих флагов: -FILE_SHARE_DELETE - только для Windows NT : Доступ закрыт для всех кроме открывшего, после закрытия указателя файл будет удален. - FILE_SHARE_READ - Доступ для чтения. -FILE_SHARE_WRITE - Доступ для записи. lpSecurityAttributes: Указатель на структуру TSecurityAttributes, которая определяет, может ли возвращенный указатель быть использован процессами-потомками. Если lpSecurityAttributes является пустым, указатель не может быть унаследован. Windows NT: поле структуры lpSecurityDescriptor определяет описатель безопасности для объекта. Если lpSecurityAttributes является пустым, объект получает описатель по умолчанию. Файловая система должна поддерживать ружим безопасности. Windows 95: поле lpSecurityDescriptor игнорируется. dwCreationDistribution: Определяет действие которое надо совершить в случае когда файлы существуют, и какое когда файлы не существуют. Дополнительную информацию см. в Примечаниях. Этим параметром должна быть один из следующих флагов: -CREATE_NEW создает новый файл. Функция терпит неудачу, если указанный файл уже существует. -CREATE_ALWAYS создает новый файл. Функция переписывает файл, если он существует. -OPEN_EXISTING открывает файл. Функция терпит неудачу, если файл не существует. -OPEN_ALWAYS открывает файл, если он существует. Если файл не существует, функция создает файл. -TRUNCATE_EXISTING открывает файл. После того файл открывается его размер обнуляется. Процесс запроса должен открыть файл с по крайней мере с GENERIC_WRITE доступом. Функция терпит неудачу, если файл не существует. dwFlagsAndAttributes: Определяет признаки файла и флаги для файла. Любая комбинация следующих признаков приемлема. Все признаки файла перекрывают FILE_ATTRIBUTE_NORMAL. См. FILE_ATTRIBUTE_. Любая комбинация следующих флагов приемлема для использования. - FILE_FLAG_WRITE_THROUGH - говорит системе чтобы при записи в кэш сразу шла запись на диск. - FILE_FLAG_OVERLAPPED - говорит системе возвращать указатель даже если действие еще не завершено. Без этого флага функции ReadFile, WriteFile, ConnectNamedPipe, и TransactNamedPipe, которые занимают существенное время, возвращают ERROR_IO_PENDING. Когда действие закончено, вызывается событие указывающее об этом.Когда Вы определяете FILE_FLAG_OVERLAPPED, ReadFile, и функции WriteFile должны определить структуру TOverlapped.Когда FILE_FLAG_OVERLAPPED определен, операционная система не не обслуживает указатель файла. Позицию указателя файла нужно передать как часть параметра lpOverlapped (указывающий на структуру TOverlapped ) к функциям WriteFile и ReadFile. Этот флаг также позволяет выполняться более чем одному действию с указателем файла ( например одновременный читать и писать). - FILE_FLAG_NO_BUFFERING - Инструктирует операционную систему открывать файл без промежуточного буфера или кэширования. - FILE_FLAG_RANDOM_ACCESS - Указывает, что к файлу обращаются беспорядочно. Windows может использовать это как намек, чтобы оптимизировать кэширование файла. - FILE_FLAG_SEQUENTIAL_SCAN - Указывает, что к файлу нужно обратиться последовательно с начала до конца. Windows может использовать это как намек, чтобы оптимизировать кэширование файла. - FILE_FLAG_DELETE_ON_CLOSE - Указывает, что операционная система должна удалить файл немедленно после того, как все его указатели будут закрыты. - FILE_FLAG_BACKUP_SEMANTICS - только для Windows NT: Указывает, что файл открывается или создается для резервирования или восстанавления. Операционная система гарантирует, что процесс запроса отвергает проверку безопасности файла. Уместные разрешения - SE_BACKUP_NAME, и SE_RESTORE_NAME. FILE_FLAG_POSIX_SEMANTICS - Указывает, что к файлу нужно обратиться согласно правилам POSIX. Если функция CreateFile открывает клиент канала, параметр dwFlagsAndAttributes может также содержать Security Quality of Service information. Когда приложение запрашивает флаг SECURITY_SQOS_PRESENT, параметр dwFlagsAndAttributes может содержать один или больше следующих флагов: - SECURITY_ANONYMOUS - определяет Анонимнго клиента(Anonymous). - SECURITY_IDENTIFICATION - определяет Идентифицируемого клиента(Identification). - SECURITY_IMPERSONATION определяет клиента уровня IMPERSONATION. - SECURITY_DELEGATION - определяет клиента уровня DELEGATION. - SECURITY_CONTEXT_TRACKING - определяет, что способ отслеживания безопасности является динамическим. - SECURITY_EFFECTIVE_ONLY - определяет, что только позволенные аспекты содержания безопасности клиента доступны серверу. Если Вы не определяете этот флаг, все аспекты содержания безопасности клиента доступны. Этот флаг позволяет клиенту ограничивать группы и привилегии которые сервер может использовать при исполнении запроса клиента. hTemplateFile - Определяет указатель с доступом GENERIC_READ к файлу шаблона. Файл шаблона задает признаки файла и расширенные признакаки для создаваемого файла. Windows 95: Этот флаг должен быть равен NULL. Если Вы установливаете указатель под Windows 95, запрос терпит неудачу, и GetLastError возвращает ERROR_NOT_SUPPORTED. Возвращаемые значения Если функция преуспевает - открытый указатель к файлу. Если указанный файл существовал до запроса функции и dwCreationDistribution - CREATE_ALWAYS или OPEN_ALWAYS, запрос к GetLastError возвращает ERROR_ALREADY_EXISTS. Если файл не существовал перед запросом, GetLastError возвращает ноль. Если функция терпит неудачу - INVALID_HANDLE_VALUE. Чтобы получить расширенную информацию об ошибке, вызовите GetLastError. Примечания Используйте функцию CloseHandle, чтобы закрыть указатель объекта, возвращенную CreateFile. Как отмечено выше, определяя ноль для dwDesiredAccess функция позволяет узнать признаки устройства, фактически не обращаясь к устройству. Этоо полезено, например, если функция хочет узнать размер дискеты, и поддерживаемые форматы, при этом не имея дискеты в дисководе. Файлы При создании нового файла, функция CreateFile исполняет следующие действия: · объединяет признаки файла и флаги, указанные dwFlagsAndAttributes с FILE_ATTRIBUTE_ARCHIVE. · устанавливает длину файла на ноль. · копирует расширенные признаки, заданные файлом шаблона к новому файлу, если параметр hTemplateFile определен. При открытии существующего файла, CreateFile исполняет следующие действия: · объединяет флаги файла, указанные dwFlagsAndAttributes с существующими признаками файла. CreateFile игнорирует признаки файла, указанные dwFlagsAndAttributes. · устанавливает длину файла согласно флагу dwCreationDistribution. · игнорирует параметр hTemplateFile. · игнорирует параметр lpSecurityDescriptor структуры TSecurityAttributes, если lpSecurityAttributes параметр не является NULL. Другие параметры структуры используются. Параметр bInheritHandle - единственный способ указать, может ли указатель файла быть унаследованным. Если Вы пытаетесь создавать файл на сменном накопителе(дискета, CD-ROM) который не имеет вставленного носиеля, система показывает окно сообщения, прося пользователя вставить диск или компакт-диск, соответственно. Чтобы препятствовать системе показывать это окно сообщения, вызовите функцию SetErrorMode с флагом SEM_FAILCRITICALERRORS. |