Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2009, 15:42   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию File writing

Привет всем!
У меня такая проблема:
Не могу нормально прочитать,записать значения в файл:
Код:
procedure TEXE_FORM2.Button1Click(Sender: TObject);
var
v: integer;
begin
   v := left;
   fileWrite(f, v, 4);
   v := top;
   fileWrite(f, v, 4);
end;

procedure TEXE_FORM2.Button2Click(Sender: TObject);
var
v: integer;
begin
   fileRead(f, v, 4);
   left := v;
   fileRead(f, v, 4);
   top := v;
end;

procedure TEXE_FORM2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   closeHandle(f);
end;

procedure TEXE_FORM2.FormCreate(Sender: TObject);
begin
   f := createFile(pCHar(paramStr(0)+'atomikTempTestFile.tmp'), GENERIC_READ or GENERIC_WRITE,
      0, 0, OPEN_ALWAYS, 0, 0);

   if f = 0 then
   begin
      showMessage('Функция не может открыть файл!');
      halt;
   end; 
end;
Что не так?
Altera вне форума Ответить с цитированием
Старый 03.01.2009, 16:08   #2
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

f надо проверять не на 0, а на INVALID_HANDLE_VALUE и смотреть результат в GetLastError.
Ну и путь к файлу неверно задается
PChar(ExtractFilePath(ParamStr(0)) + 'Твойфайл')
_Engine_ вне форума Ответить с цитированием
Старый 03.01.2009, 16:21   #3
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Тут дело не в этом.... Мне не нравятся fileWrite и fileRead. Третий параметр должен быть размером записываемой структуры или количеством её записи?
Altera вне форума Ответить с цитированием
Старый 03.01.2009, 16:27   #4
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Третий параметр - количество байт, которое требуется записать.
Четвертый параметр - количество байт, которое удалось записать.
_Engine_ вне форума Ответить с цитированием
Старый 04.01.2009, 02:57   #5
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Ну, а что в коде не так?
Altera вне форума Ответить с цитированием
Старый 04.01.2009, 03:19   #6
ViktorXP
Форумчанин
 
Аватар для ViktorXP
 
Регистрация: 24.11.2006
Сообщений: 108
По умолчанию

Цитата:
Ну, а что в коде не так?
да все остальное так.
просто если ты будеш пытатся считать файлы после записи но до переоткрытия файла то нужно спозицыонировать чтение на начало
FileSeek(f, 0, 0); // первый - хендл файла, второй позицыя, а вот третий там константы но имен я не помню. помню что ноль это от начала файла. их три есть вот я тремя цыфрами и пользуюсь
а все остальное работает. толко что проверил
ViktorXP вне форума Ответить с цитированием
Старый 04.01.2009, 06:23   #7
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Аааа, точно.... Вот я дура, такую вещь не заметил. Спасибо!
Altera вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
File of... GreenDan Общие вопросы Delphi 4 25.08.2008 22:04
file of byte medikk Общие вопросы Delphi 1 11.08.2008 16:00
Copy File Witaliy Общие вопросы Delphi 4 26.07.2008 13:20
record/file potion Паскаль, Turbo Pascal, PascalABC.NET 3 10.05.2008 20:15
Проблемы с file HSALF Общие вопросы Delphi 3 21.06.2007 19:27