Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

МАСТЕРА! Как записывать и считывать из файла длинные строки? [D5, Win95/98]


WinSetup ©   (2002-12-23 18:14:00) 

МАСТЕРА! Как записывать и считывать из файла длинные строки (более 255 символов)?


WinSetup   (2002-12-23 19:30:00) [1]

>>ZrenBy
Спасибо!!!


ZrenBy   (2002-12-23 19:27:00) [2]

Rewrite(f, 1); { Record size = 1 }

The entire block transferred occupies at most Count * RecSize bytes. RecSize is the record size specified when the file was opened (or 128 if the record size was unspecified).


gsu   (2002-12-23 19:24:00) [3]

А причем здесь s[1] ?


WinSetup   (2002-12-23 19:22:00) [4]

>>Skier
Я же указал, что если использовать length(s), то в файл записывается 768 байт


Skier   (2002-12-23 19:18:00) [5]

blockwrite(f,s[1], length(s));
И смотри внимательней...тебе уже MBo всё сказал...


WinSetup   (2002-12-23 19:04:00) [6]

var
f:file;
s:string;
begin
s:="qwerty";
assignfile(f,"c:\1.txt");
rewrite(f);
blockwrite(f,s[1],length(s[1]));
closefile(f);
end;

При выполнении в файл записывается 128 байт (а если - length(s), то 768), можно ли записать столько байт, сколько символов содержится в строке?


gsu   (2002-12-23 18:53:00) [7]

Можешь вначале сохранить заголовок с размерностью


WinSetup   (2002-12-23 18:52:00) [8]

Спасибо! Попробую


MBo   (2002-12-23 18:46:00) [9]

в blockwrite указываешь s[1] и length(s), а при чтении сначала setlength делаешь (длину строки перед ней, конечно, придется писать)


WinSetup   (2002-12-23 18:36:00) [10]

Спасибо за ответ!
Этот способ будет работать для текстовых файлов. А как работать с нетипиризированными файлами (block/write/read)?


MBo   (2002-12-23 18:24:00) [11]

объявить их просто как string без указания длины (по умолчанию это AnsiString - длина практически не ограничена)


Наверх

Титульная страница Поиск, карта сайта Написать письмо