Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.23;
Скачать: CL | DM;

Вниз

array of byte to string   Найти похожие ветки 

 
slon2k   (2006-07-03 20:55) [0]

Господа, есть такая структура, цель преобразовать значение TRawPkt -> Data в String:

 PRawPkt = ^TRawPkt;
 TRawPkt = record
   Data: array[0..MAX_DATA_LEN - 1] of Byte;
   Len: Word;
 end;

var
 pkt: TRawPkt;
 fbu: String;
begin
 fbu := pchar(pkt.Data);


На последней строке, не получается. По моей идее тут должен был помоч pchar, но видимо знания теории подкачивают, - не знаю что делать.


 
Шпиён   (2006-07-03 21:03) [1]

fbu := pchar(@pkt.Data); ?


 
begin...end ©   (2006-07-03 21:06) [2]

fbu := pkt.Data


 
MBo ©   (2006-07-03 21:10) [3]

SetString(fbu, @pkt.Data, pkt.len);


 
slon2k   (2006-07-03 21:12) [4]


> fbu := pchar(@pkt.Data); ?


Это первое, что в голову пришло, но в итоге, ерунда получается. Не полностью значение в стринге оказывается, так например у меня там оказалось только 2 первых из массива, а должно быть гораздо больше.


> fbu := pkt.Data

Ну это не стыковка массива и стринга.


> SetString(fbu, @pkt.Data, pkt.len);


[Pascal Error] ... Incompatible types


 
Шпиён   (2006-07-03 21:17) [5]


> MBo ©   (03.07.06 21:10) [3]


> slon2k   (03.07.06 21:12) [4]

SetString(fbu, pchar(@pkt.Data), pkt.len);


> например у меня там оказалось только 2 первых из массива,
>  а должно быть гораздо больше.

Проверь свой массив. Нолик не затесался после первых двух символов?


 
begin...end ©   (2006-07-03 21:20) [6]

> slon2k   (03.07.06 21:12) [4]

> > fbu := pkt.Data
> Ну это не стыковка массива и стринга.

Сочувствую. У меня [2] работает, причём в той же версии Delphi, что и у Вас.

> > SetString(fbu, @pkt.Data, pkt.len);
> [Pascal Error] ... Incompatible types

В общем случае -- PChar(@pkt.Data). А в данном -- достаточно убрать собачку.


 
slon2k   (2006-07-03 21:29) [7]

Спасибо! Вроде такая штука заработала:
SetString(fbu, pchar(@pkt.Data), pkt.len);


 
Пусик ©   (2006-07-03 21:29) [8]


> Сочувствую. У меня [2] работает, причём в той же версии
> Delphi, что и у Вас.


Вряд ли. или просьба опции компилятора дать, при которых это работать будет.


> slon2k   (03.07.06 20:55) 

 SetLEngth(fbu,pkt.Len);
 Move(pkt.Data[0],fbu[1], pkt.Len);


 
begin...end ©   (2006-07-03 21:37) [9]

> Пусик ©   (03.07.06 21:29) [8]

Да, извиняюсь. Мой ответ относится к случаю array of Char, а у автора -- of Byte.



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

Текущий архив: 2006.07.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.039 c
1-1149794468
GanibalLector
2006-06-08 23:21
2006.07.23
Интерфейсы...


2-1152001074
redlord
2006-07-04 12:17
2006.07.23
рабочий стол в качестве парента компонента


1-1149752615
mmms
2006-06-08 11:43
2006.07.23
Не получается скопировать изображение и вставить его в др.


15-1150194025
Crazy manager
2006-06-13 14:20
2006.07.23
Half-Life 2: Episode One


2-1152024016
Новинький
2006-07-04 18:40
2006.07.23
Как по резать слово на части?