KerLaede, я в билдере не работаю - но исходя из "общей теории работы в виндовс", заявляю следующее.
1. Все эти функции вероятно аналоги CreateFile WriteFile ReadFile CloseFile сандартного API. Кстати это и объясняет, что их не надо никаким образом подключать так как они автоматом подключаются вместе с самим API
в стандартном создании проекта, я так полагаю.
2. В том виде в котором ты их используешь они работать не будут.
3. HANDLE - некое число чаще 4 байта в длину #define HANDLE DWORD
Для работы с этими функцияим адо понять идеологию работы с файлами.
Для этого не надо было писать в тему Насчет курсов а надо было создать отдельную, я это счас и сделал.
Теперь об идеологии.
Открываю
любой файл не зависимо от того, в каком языке, в какой оболочке разработки ты открываешь канал, который связывает твою программу с файлом. Это представлено в виде некоторой структуры в системе, из которой однозначно определяет, т.е. полностью уникально идентифицирует для программы сам файл - это HANDLE.
HANDLE чаще всего возвращается функцией CreateFile в данном случае видимо FileOpen когда соответствующая свзяка (канал) создаются впервые.
Происходит захват файла, после чего работая с файлом , читая записывая данные и закрывая файл ты должен обращаться к файлу не по имени, а именно указывая HANDLE полученный при создании канала, указывая программе какой из каналов на файл использовать. Ведь в программе открывать одновременно можно много файлов.
Естественно что FileClose(1) - это полный идиотизм - извини, но что ты таким образом вообще пытаешься закрыть??? HANDLE за номером 1 естественно в твоей программе не существует, вот и вылезает ошибка.
Вообще удивитеьно что тебе не выдали ошибки и остальные функции, ведь судя по твоим единичкам в конце каждого из них, HANDLE у тебя точно такой же как и там
FileRead(1, &buff, ...); FileWrite(1, &buff, ...);
Грустно то, что и вопрос поставлен неверно. И вероятно Help вообще не прочитан, ибо там сказано все настолько прозрачно, что ужас.
Лучше всего звучал бы правильный вопрос - поясните как работать с файлами и что такое HANDLE..
Извини, я не хотел тебя обидеть, брюзжу....
Итак дабы вся эта бодяга работала нормально, надо указывать верные параметры.
Не думаю, что бы там все так отличалось от классического API, поэтому приведу пример...
HANDLE hFile; // тот самый указывает файл.
unsigned char buff[] = "Write File"; .. текст для записи.
int length; // длина записи - типа скока записать.
DWORD Tb; // Скока в натуре записалось - должен в иделе равняться после записи length
length = strlen(buff);
hFile = CreateFile("file_name", NULL, NULL, NULL, CREATE_ALWAYS,NULL);
// Все что я выставил в NULL можно выставлять в нужные значения но в данный момент там проставятся условия по умолчанию от системы, что для единоличной работы с файлом более чем достаточно.
CRATE_ALWAYS - параметр сменный и в данный момент означает, что файл с таким именем даже если есть и полный данных будет создан заново и кто не спрятал данные то Майкрософт не виноват.
Список возможных параметров вот:
CREATE_ALWAYS
CREATE_NEW
OPEN_ALWAYS
OPEN_EXISTING
TRUNCATE_EXISTING
Описания тут:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/createfile.aspДалее все просто.
if (hFile == INVALID_HANDLE_VALUE) {Произошла чудовищная ошибка}
else
{
Файл благополучно открыт стерт захвачен.
if (!WriteFile(hFile, &buff, length, &Tb, NULL)) {Опять апшиблись}
else{
// Записыали в файл.
}
if (!ReadFile(hFile,&buff,length,&Tb, NULL) {И снова апшибка}
else
{
// Прочитали из файла...
}
CloseFile(hFile);
// Закроли файл...
Вернее не столько файл сколько файл мы освободили, а вот закрывает его система, а мы описатель HANDLE освободили.
Хотя в этом примере мы ничерта не прочтем из файла, потому, что еще надо бы выставить указатель перед чтением на начало файла, но это уж ты сам найди, а то так не интересно
но все же файл появится и даже запишется
}
В общем удачи...
И еще раз не обижайся на стиль - ничего личного....