Главная страница
    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.026 c
2-1151913237
K_Lock
2006-07-03 11:53
2006.07.23
Сортировка в обратном порядке


1-1150178314
kyn66
2006-06-13 09:58
2006.07.23
Определить кординату на панели.


3-1147876311
S@shka
2006-05-17 18:31
2006.07.23
Сбросить данные из таблицы в файл.


2-1149947049
TGX
2006-06-10 17:44
2006.07.23
Низкоуровневый доступ к файлу


15-1151390069
pavel_guzhanov
2006-06-27 10:34
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский