Что нового

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

winkot

Новичок
Сообщения
183
Репутация
0
Надо редактировать текстовый файл. Находить в нем строки и их изменять. Для этих целей использую
Код:
FileReadLine

Но в справке указано, что для использования этой функции в цикле лучше открыть файл через
Код:
FileOpen

Но FileOpen открывает файл или для чтения или для записи. А мне надо в цикле и искать строки (чтение) и заменять их на другие (запись). Как же тогда правильно открыть файл?
 

InnI

AutoIT Гуру
Сообщения
4,947
Репутация
1,443
 
Автор
W

winkot

Новичок
Сообщения
183
Репутация
0
Пытаюсь открыть файл через WinAPI
Код:
#include <WinAPI.au3>

$File = _WinAPI_CreateFile(@ScriptDir & '\Test.txt', 2)
$Text=FileRead($File)
ConsoleWrite($Text  & @CRLF)
_WinAPI_CloseHandle($File)
Exit

Но он все равно не читается. В чем ошибка?
 

Prog

Продвинутый
Сообщения
581
Репутация
70
Но он все равно не читается. В чем ошибка?
Судя по всему FileOpen() возвращает не тоже самое что _WinAPI_CreateFile().
Используйте _WinAPI_ReadFile().

По умолчанию _WinAPI_CreateFile открывает файл только для записи. Должно быть
Код:
$File = _WinAPI_CreateFile(@ScriptDir & '\Test.txt', 2, 2+4)

Описание на сайте майкрософта неприменимо к функции. GENERIC_READ и GENERIC_WRITE вовсе не равно 2 и 4.
Вот из-за такой самодеятельности разработчиков, мне не нравится реализация WinAPI в AutoIt. То что я знаю о WinAPI не всегда применимо в AutoIt.
 
Последнее редактирование:
Верх