Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

Record To File   Найти похожие ветки 

 
Поручик   (2004-10-05 18:25) [0]

Как запихнуть record в file? Вытащить от туда?


 
Мастер ©   (2004-10-05 18:38) [1]

Так же, как и не Record.


 
programania ©   (2004-10-05 18:50) [2]

blockWrite(file,record,sizeOf(record));
blockRead(file,record,sizeOf(record));


 
Суслик ©   (2004-10-05 18:51) [3]

а длинные строки ?
таким же образом - через blockwrite?


 
programania ©   (2004-10-05 19:03) [4]

>Суслик
blockWrite(file,pointer(record)^,length(record));
seek(file,0);
blockRead(file,pointer(record)^,length(record));


 
Суслик ©   (2004-10-05 19:08) [5]


> blockRead(file,pointer(record)^,length(record));

Что такое здесь record? String?
Если да, то АV тебе обеспечен...


 
programania ©   (2004-10-05 19:19) [6]

Record что заказывали: длинная строка
я то проверяю что пишу


 
Суслик ©   (2004-10-05 19:23) [7]


> я то проверяю что пишу

если ты будешь записывать в файл и сразу читать, то все ок.
Но кому на фиг такая запись нужна? :р)))

Нужно записать в одном месте, а прочесть в другом. Как ты будешь читать? Ты же длинну строки не занешь


 
programania ©   (2004-10-05 19:33) [8]

>Суслик
Либо я знаю длину либо читать весь файл и искать конец:
setLength(record,fileSize(file));
blockRead(file,pointer(record)^,length(record));


 
Суслик ©   (2004-10-05 19:36) [9]


>  [8] programania ©   (05.10.04 19:33)


> setLength(record,fileSize(file));

тогда ок.

ЗЫ. Нужно только внимательно посмотреть, что будет при пустой строке. Честно говоря не помню, как в этом случае сработает BlockRead.


 
Поручик   (2004-10-05 22:42) [10]

Сохраняю так:
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));

Когда работает программа все сохраняется и грузится,
а если войти и выйти ничего не грузится!


 
XProger ©   (2004-10-05 22:50) [11]


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 23:03) [12]

Спасибо XProger!
Ещё вопрос, что значит:
FileMode:=64


 
OSokin ©   (2004-10-06 19:08) [13]

Имхо его вообще не надо...


 
Fay ©   (2004-10-06 20:24) [14]

Как эта ветка оказалась в WinAPI?!


 
XProger ©   (2004-10-07 18:58) [15]

При чтении файлов помеченный как "Только для чтения", Reset(F) выдаёт ошибку. А с FileMode = 64 ничего подобного не произойдёт :)


 
Доброжелатель1   (2004-10-07 19:10) [16]

>XProger ©   (07.10.04 18:58) [15]
тогда уж
FileMode := fmOpenRead + fmShareDenyNone;


 
programania ©   (2004-10-07 19:49) [17]

>Rewrite(F);
создает файл с длиной записи 128
>BlockWrite(F, Hero, SizeOf(Hero));
пишет в файл SizeOf(Hero) записей длиной 128
а SizeOf(Hero) байт как вы наверно думали
лучше писать  Rewrite(F,1);



Страницы: 1 вся ветка

Текущий архив: 2004.10.24;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.024 c
6-1092229469
DreymanD
2004-08-11 17:04
2004.10.24
Интернет счетчик


8-1091104234
Vadik
2004-07-29 16:30
2004.10.24
Работа с видео камерой из Delphi


3-1095859841
WG
2004-09-22 17:30
2004.10.24
Не могу разобраться со свойством IndexFieldNames


1-1097215825
V-Isa
2004-10-08 10:10
2004.10.24
Пишу скринсэйвер.


14-1096613025
Григорьев Антон
2004-10-01 10:43
2004.10.24
Куда бы съездить в выходные?