Форум: "Начинающим";
Текущий архив: 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.012 c