Главная страница
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.027 c
3-1147958886
SHD_
2006-05-18 17:28
2006.07.23
Название полей внешних ключей.


15-1151015281
DevilDevil
2006-06-23 02:28
2006.07.23
Синус двойного угла


15-1150724493
Alien1769
2006-06-19 17:41
2006.07.23
Какой алгоритм использовать


3-1147940711
_dimka
2006-05-18 12:25
2006.07.23
Как выбрать случайную запись в IB?


2-1151827055
PSPF2003
2006-07-02 11:57
2006.07.23
Тормозим :)