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

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

Вопрос по записи в TMemoryStream


necky ©   (2005-02-03 22:58:00) 

Добрый день. Подскажите новичку
Есть запись
TRec=record
s:WideString;
end;
Я пишу записи в поток затем в файл. Вот пример кода
var
rec:TRec;
begin
ms:=TMemoryStream.Create;
..заполняю rec..
ms.Write(rec,sizeof(rec));
ms.SaveToFile('c:\1.1');
ms.Free;
...
ms:=TMemoryStream.Create;
ms.LoadFromFile('c:\1.1');
ms.Seek(0,soFromBeginning );
ms.read(rec,sizeof(rec));
rec.s ?
Так вот работает если в TRec s фиксированной длины - s:string[], а если просто string то почему-то не работает - возвращает ерунду.
Заранее спасибо,Евгений


Чапаев   (2005-02-04 12:43:00) [1]

Записывать длину строки, затем содержимое строки.


Александр Иванов   (2005-02-04 11:35:00) [2]

necky   (04.02.05 11:34) [4]
Только фиксированный длины.


necky   (2005-02-04 11:34:00) [3]

А возможно ли тогда как-то реализовать данную задачу - писать string в составе record в файл?


Anatoly Podgoretsky   (2005-02-03 23:45:00) [4]

string тоже указатель, точно также нет смысла.


necky   (2005-02-03 23:30:00) [5]

тоже самое со string. Пишу s:string[100] - все нормально, меняю на s:string - после считывания из потока всякая ерунда - не могу понять в чем дело


Anatoly Podgoretsky   (2005-02-03 23:10:00) [6]

WideString это указатель, зачем его писать в файл?


Наверх

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