![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по записи в 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 это указатель, зачем его писать в файл?