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

Вниз

массив байт в строку   Найти похожие ветки 

 
olmi ©   (2007-03-06 14:01) [0]

перерыл весь форум не нашёл... сорри если уже обсуждалось.
читаю файл блоками по 32 байта в массив... каким образом можно вывести этот массив в строку ?
те. допустим есть прочитанный из файла в массив (pack: Array of Byte) блок байт:
A5 4E 10 00 00 00 08 32  00 85 48 48 78 3F FF FF
FF FF FF FF AC FF 02 00  00 FA 01 00 82 B5 E7 45
необходмо преобразовать в строку типа:
s="A54E10000000083200854848783FFFFFFFFFFFFFACFF020000FA010082B5E745"


 
Плохиш ©   (2007-03-06 14:06) [1]

IntToHex для каждого байта


 
Ega23 ©   (2007-03-06 14:08) [2]


function StreamToMSSQLStr(aStream:TStream):String;
var
i:Integer;
bb:array[0..1] of byte;
begin
Result:="NULL";
if (not Assigned(aStream)) or (aStream.Size=0) then Exit;
aStream.Position:=0;
Result:="0x";
for i:=0 to aStream.Size-1 do
 begin
  aStream.Read(bb,1);
  Result:=Result+Dec2Hex(bb[0],2);
 end;
end;

function Dec2Hex(N: LongInt; A: Byte): string;
begin
 Result := IntToHex(N, A);
end;

function IntToHex(Value: Integer; Digits: Integer): string;
//  FmtStr(Result, "%.*x", [Digits, Value]);
asm
       CMP     EDX, 32        // Digits < buffer length?
       JBE     @A1
       XOR     EDX, EDX
@A1:    PUSH    ESI
       MOV     ESI, ESP
       SUB     ESP, 32
       PUSH    ECX            // result ptr
       MOV     ECX, 16        // base 16     EDX = Digits = field width
       CALL    CvtInt
       MOV     EDX, ESI
       POP     EAX            // result ptr
       CALL    System.@LStrFromPCharLen
       ADD     ESP, 32
       POP     ESI
end;


 
olmi ©   (2007-03-06 14:22) [3]

О! Благодарю...:) IntToHex !!! у меня уже неверное ум за разум зашёл.



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

Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.052 c
15-1171926876
MsGuns
2007-02-20 02:14
2007.04.01
Камеди клаб


15-1173115580
PARUS
2007-03-05 20:26
2007.04.01
Сидюк от компа


2-1173021469
Nija
2007-03-04 18:17
2007.04.01
Сигнал в "мозг"


1-1170682073
Nicky000
2007-02-05 16:27
2007.04.01
Печать ScrollBox


2-1173797536
Kolan
2007-03-13 17:52
2007.04.01
Можноли заставить компилятор сообщать о конкр. виде исключений?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский