чтение из файла (API)

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
emx2000
Сообщения: 15
Зарегистрирован: 12 дек 2004, 09:21

Нужно считать из файла с помощью ReadFile. (нужно именно с такой)

делаю на VC++ 6.0:

...
HANDLE hh;
hh=GetStdHandle(STD_INPUT_HANDLE);
ReadFile(hh,buffer,in,readed,NULL);
...

В параметрах ф-ии ReadFile нет указания пути файла ..
Какой я файл открываю?? Где указывать путь, или нужно ещё какие функции до этого написать? Если кто напишет пример или даст ссылку буду признателен
Аватара пользователя
WinMain
Сообщения: 929
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

Сначала нужно вызвать функцию CreateFile. Она используется как при записи, так и при чтении файла. Только параметры отличаются
emx2000
Сообщения: 15
Зарегистрирован: 12 дек 2004, 09:21

to WinMain: Спасибо

Если правильно понял, пишу:
...
CreateFile(\\?\c:\read.txt, GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,GENERIC_READ)
// 1) Где то слышал что при указании пути к файлу нужно ставить \\ напр: с:\\read.txt . Действительно нужно?
// 2) Параметры GENERIC_READ.. получилось 2 одинаковых.. так и должно быть?
// и после этокого когда я напишу:
HANDLE hh;
hh=GetStdHandle(STD_INPUT_HANDLE);
ReadFile(hh,buffer,in,readed,NULL);
//всё будет работать ?
emx2000
Сообщения: 15
Зарегистрирован: 12 дек 2004, 09:21

GetStdHandle оказался совсем не нужен.
Разобрался.. Всем спасибо
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

\\ - нужно ставить потому как \ -является экранирующим символом (используется для управляющих последовательностей и ввода спец символов) аналогично чтобы напечатать (передать кавычку нужно вводить \" и т.д.)
В SAD - все в SAD.
Ответить