![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Record To File
Поручик © (2004-10-05 18:25:00)Как запихнуть record в file? Вытащить от туда?
programania (2004-10-07 19:49:00) [1]>Rewrite(F);
создает файл с длиной записи 128
>BlockWrite(F, Hero, SizeOf(Hero));
пишет в файл SizeOf(Hero) записей длиной 128
а SizeOf(Hero) байт как вы наверно думали
лучше писать Rewrite(F, 1);
Доброжелатель1 (2004-10-07 19:10:00) [2]>XProger © (07.10.04 18:58) [15]
тогда уж
FileMode := fmOpenRead + fmShareDenyNone;
XProger (2004-10-07 18:58:00) [3]При чтении файлов помеченный как "Только для чтения", Reset(F) выдаёт ошибку. А с FileMode = 64 ничего подобного не произойдёт :)
Fay (2004-10-06 20:24:00) [4]Как эта ветка оказалась в WinAPI?!
OSokin (2004-10-06 19:08:00) [5]Имхо его вообще не надо...
Поручик (2004-10-05 23:03:00) [6]Спасибо XProger!
Ещё вопрос, что значит:
FileMode:=64
XProger (2004-10-05 22:50:00) [7]
var
F : File of Byte;
FileMode := 64;
// Save
AssignFile(F, FileName);
Rewrite(F);
BlockWrite(F, Hero, SizeOf(Hero));
CloseFile(F);
// Load
AssignFile(F, FileName);
Reset(F);
BlockRead(F, Hero, SizeOf(Hero));
CloseFile(F);
Поручик (2004-10-05 22:42:00) [8]Сохраняю так:
Assign(F, FileName);
rewrite(F,SizeOf(Hero));
blockWrite(f,Hero,SizeOf(Hero));
CLoseFile(F);
А читаю так:
Assign(F, Filename);
reset(F,SizeOf(Hero));
blockWrite(f,Hero,SizeOf(Hero));
Когда работает программа все сохраняется и грузится,
а если войти и выйти ничего не грузится!
Суслик (2004-10-05 19:36:00) [9]
> [8] programania © (05.10.04 19:33)
> setLength(record,fileSize(file));
тогда ок.
ЗЫ. Нужно только внимательно посмотреть, что будет при пустой строке. Честно говоря не помню, как в этом случае сработает BlockRead.
programania (2004-10-05 19:33:00) [10]>Суслик
Либо я знаю длину либо читать весь файл и искать конец:
setLength(record,fileSize(file));
blockRead(file,pointer(record)^,length(record));
Суслик (2004-10-05 19:23:00) [11]
> я то проверяю что пишу
если ты будешь записывать в файл и сразу читать, то все ок.
Но кому на фиг такая запись нужна? :р)))
Нужно записать в одном месте, а прочесть в другом. Как ты будешь читать? Ты же длинну строки не занешь
programania (2004-10-05 19:19:00) [12]Record что заказывали: длинная строка
я то проверяю что пишу
Суслик (2004-10-05 19:08:00) [13]
> blockRead(file,pointer(record)^,length(record));
Что такое здесь record? String?
Если да, то АV тебе обеспечен...
programania (2004-10-05 19:03:00) [14]>Суслик
blockWrite(file,pointer(record)^,length(record));
seek(file,0);
blockRead(file,pointer(record)^,length(record));
Суслик (2004-10-05 18:51:00) [15]а длинные строки ?
таким же образом - через blockwrite?
programania (2004-10-05 18:50:00) [16]blockWrite(file,record,sizeOf(record));
blockRead(file,record,sizeOf(record));
Мастер (2004-10-05 18:38:00) [17]Так же, как и не Record.