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