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