Вниз
Скачать: CL | DM;

Stream и Memory. Проблеммы.   Найти похожие ветки 

← →
Delphi_Child   (2004-02-19 15:46) [0]

Добрый день. Не подскажите, как исправить следующий код и что я сделал неправильно?

var
Buffer: PChar;
RS : TResourceStream;
Mem:TMemoryStream;

begin
RS := TResourceStream.Create(HInstance, "DAT", "RT_RCDATA");
Mem:= TMemoryStream.Create;
Mem.LoadFromStream(RS);
Richedit1.Lines.Add(InttoStr(Mem.Size));

GetMem(Buffer, 255);
Mem.ReadBuffer(buffer,255);
Richedit1.Lines.Text:=buffer;

FreeMem(Buffer);
Mem.Free;
RS.Free;
end;


← →
Digitman ©   (2004-02-19 15:51) [1]

как минимум это
Mem.ReadBuffer(buffer,255);

следует делать так
Mem.ReadBuffer(buffer ^,255);


← →
Delphi_Child   (2004-02-19 15:57) [2]

Да, спасибо.
А не подскажите еще, как организовать поблочное считывание из памяти? То есть в этом коде следует зациклить вот это

Mem.ReadBuffer(buffer,255);


← →
Romkin ©   (2004-02-19 15:57) [3]

А если нормально, то нафиг PChar!!
s: string;
SetLength(s, 255); stream.REad(s[1], length(s));
и все


← →
Romkin ©   (2004-02-19 15:59) [4]

Еще можно попробовать SetLength(s, 255); SetLength(S, stream.Read(s[1], length(s))); ;) Если размер ожидается не больше 255


← →
Delphi_Child   (2004-02-19 15:59) [5]

Сорри, конечно, как и подсказал Digitman © надо так

Mem.ReadBuffer(buffer^,255);


← →
Digitman ©   (2004-02-19 16:06) [6]


> Delphi_Child (19.02.04 15:59) [5]


я тебе так подсказал, потому что у тебя переменная указ.типа
способы [3] и [4] ничуть не хуже и такие же правильные


← →
Delphi_Child   (2004-02-19 16:13) [7]

Digitman © (19.02.04 16:06) [6]
Да нет, Вы не поняли... Просто в [2] я описался и написал без ^. Именно это я имел ввиду и я нисколько не против [3] и [4].
Так подскажите, насчет [2]?


← →
Delphi_Child   (2004-02-19 16:15) [8]

Читать следует так-
Сорри. Конечно, как и подсказал Digitman © надо так... :))))



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
3-5983
Filat
2004-02-06 13:47
2004.03.03
IBTable1.Filter:= - смех сквозь слёзы или где собака порылась?


1-6026
evg_nib
2004-02-18 14:58
2004.03.03
Формы и приложение


1-6130
Cosinus
2004-02-19 18:35
2004.03.03
Mem.ReadBuffer(buffer^,$ff) читает до первого #$00. Как обойти?


1-6036
Владимир Березин
2004-02-17 18:45
2004.03.03
Мониторинг состояния Thread а


11-6008
Кладов
2003-06-13 10:32
2004.03.03
Версия 1.75




   Наверх