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

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

Считывание строки в MemoryStream [D7, WinXP]


Chaser ©   (2007-03-18 15:12:00) 

Привет.

Пытаюсь в MemoryStream загрузить строку.

[Code]
var
cryptstr: string;
ms: TMemoryStream;
begin
cryptstr:='qwerty123456';
ms:=TMemoryStream.Create;
ms.SetSize(ms.Size);
ms.ReadBuffer(cryptstr,SizeOf(cryptstr));
...
end;
[/Code]

Однако при операции ReadBuffer вылетает ошибка "Stream Read error".
Кто знает в чем проблема?


Johnmen   (2007-03-19 20:57:00) [1]

Иногда достаточно посмотреть на строку, как на MemoryStream.
type
 TMyMemoryStream = class(TMemoryStream);
var
 ms:=TMyMemoryStream.Create;
 s : string;
...
 ms.SetPointer(pointer(s),Length(s));
...


Alexey (AZ)   (2007-03-19 20:30:00) [2]


> Write - это писать в буфер из MemoryStream, а автору считать
> (загрузить) надо.

Я почему-то пишу в стрим из буфера по Write.


Плохиш   (2007-03-19 13:52:00) [3]


> killmeplease   (19.03.07 12:34) [7]
> может cryptstr[0]?


> Elen ©   (19.03.07 12:38) [8]
> Все правильно. Write - это писать в буфер из MemoryStream

Знания основ просто поражают...


Leonid Troyanovsky   (2007-03-19 12:44:00) [4]


> Chaser ©   (18.03.07 15:12)  

> Пытаюсь в MemoryStream загрузить строку.

Не мучайся, возьми TStringStream.

--
Regards, LVT.


Elen   (2007-03-19 12:38:00) [5]


> , когда надо Write?

Все правильно. Write - это писать в буфер из MemoryStream, а автору считать (загрузить) надо.


killmeplease   (2007-03-19 12:34:00) [6]

может cryptstr[0]?


xShadow   (2007-03-19 09:46:00) [7]

И ещё дабавить cryptstr [1]


Alexey (AZ)   (2007-03-18 21:21:00) [8]


> Пытаюсь в MemoryStream загрузить строку.

Я наверное забыл делфи :) Почему
> ms.ReadBuffer(cryptstr,SizeOf(cryptstr));

, когда надо Write?


Chaser   (2007-03-18 15:33:00) [9]

Сенькс, вопрос закрыт )


$00FF00   (2007-03-18 15:25:00) [10]

тфуёблн. Length(cryptStr), а не SIZEOF :)


$00FF00   (2007-03-18 15:23:00) [11]

Логичнее всего на мой взгляд написать так: ms.setSize(SIZEOF(cryptStr));


$00FF00   (2007-03-18 15:21:00) [12]


> ms.SetSize(ms.Size);


Может быть дело в этой строке? ms.size походу равен нулю или чему там ещё, а ты хочешь ещё раз ему этот ноль переприсвоить? Извини коли глупость сморозил - Дельфей под рукой нету.


Наверх

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