Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.014 c
2-1151671195
Juice
2006-06-30 16:39
2006.07.23
Паранормальные явления


6-1140863347
Pakshin A. S.
2006-02-25 13:29
2006.07.23
Уделание сообщения с ящика через IdPOP3...


2-1151954148
Tara
2006-07-03 23:15
2006.07.23
Использование программы сделанной в Дельфи без установления Деьфи


15-1150787034
Иксик
2006-06-20 11:03
2006.07.23
Российская пресса завоевывает международную аудиторию :)))


1-1150045065
Nikolaich
2006-06-11 20:57
2006.07.23
Как правильно определить дату в дельфи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский