Форум: "Основная";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];
ВнизCharToByte or not CharToByte Найти похожие ветки
← →
Serd_hhc (2002-08-27 12:39) [0]Уважаемые мастера,
У меня есть строка, а как её перевести в байтовое изображение (или как там его)?
Ну типа:
+ это 2B
0 это 30
T это 54
Заранее спасибо за ответы!
← →
Skier (2002-08-27 12:41) [1]>Serd_hhc
Ord(..)
IntToHex(...) ?
← →
serd_hhc (2002-08-27 12:44) [2]Но Ord("+") ничего не показывает...
← →
Skier (2002-08-27 12:45) [3]>Serd_hhc
Sorry.
StrToInt("+")
← →
Skier (2002-08-27 12:46) [4]>Serd_hhc
Нет. Я блин не выспался :))) Чушь !!!
← →
PVOzerski (2002-08-27 12:47) [5]>Но Ord("+") ничего не показывает...
1) Должен показывать, это однозначно.
2) Не верите ord, делайте typecast: byte("+"). Результат будет тот же.
← →
serd_hhc (2002-08-27 12:48) [6]А как заполнить массив из char вот этой например строчкой:
+++ATZ3, но в байтовом(или каком там) виде?
← →
Skier (2002-08-27 12:48) [7]>serd_hhc
> Но Ord("+") ничего не показывает...
В смысле ?
← →
Skier (2002-08-27 12:50) [8]>serd_hhc
> но в байтовом(или каком там) виде?
Имеется ввиду строковое представление
Hex-значений символов ? Или нет ?
← →
serd_hhc (2002-08-27 12:53) [9]Нужно из строки +++ATZ0 сделать строку 2B2B2B41545A30 И ПОЛОЖИТЬ ЭТО ЗНАЧЕНИЕ В массив из char
← →
serd_hhc (2002-08-27 12:57) [10]И что, никто не поможе?
← →
MBo (2002-08-27 12:58) [11]>serd_hhc
Ответ Skier © (27.08.02 12:41) до конца дочитал?
← →
serd_hhc (2002-08-27 12:59) [12]Ну да, оно и есть..
← →
PVOzerski (2002-08-27 12:59) [13]Вариант 1: описываем массив байтов и absolute на него переменную - массив символов того же размера.
Вариант 2: делаем запись (record), имеющую только вариантную часть, наподобие
r:record
case integer of
0:(b:array[0..9]of byte);
1:(c:array[0..9]of char);
end;
вариант 3:
type
tB=array[0..9]of byte;
var
c:array[0..9]of char;
...
tB(pointer(@c)^)[2]:=$FF;
Вариант 4:
var
b:array[0..9]of byte;
c:array[0..9]of char;
...
move(b,c,sizeof(b));
← →
Skier (2002-08-27 13:00) [14]>serd_hhc
function GetHexStr(const ASrcStr : String) : String;
var
ii : Integer;
begin
Result := EmptyStr;
if ASrcStr = EmptyStr then Exit;
for ii := 1 to Length(ASrcStr) do begin
Result := Result + IntToHex(Ord(ASrcStr[ii]), 2);
end; //for
end;
← →
serd_hhc (2002-08-27 13:02) [15]СПАСИБО ВСЕМ!
← →
PVOzerski (2002-08-27 13:08) [16]>Нужно из строки +++ATZ0 сделать строку 2B2B2B41545A30 И ПОЛОЖИТЬ
>ЭТО ЗНАЧЕНИЕ В массив из char
{$apptype console}
uses
sysutils;
const
a:array[0..6]of char="+++ATZ0";
var
s:string;
i:integer;
begin
s:="";
for i:=0 to 6 do
s:=s+IntToHex(byte(a[i]),2);
writeln(s," Свершилось :^)");
end.
← →
serd_hhc (2002-08-27 13:20) [17]>Skier
А как обратно?
← →
Skier (2002-08-27 13:27) [18]>serd_hhc
Chr(...)
StrToIntDef(...)
← →
PVOzerski (2002-08-27 13:31) [19]>А как обратно?
{$apptype console}
const
s1:string="2B2B2B41545A30";
var
s2,s3:string;
i,code:integer;
b:byte;
begin
i:=1;
s2:="";
while i<=length(s1)do
begin
s3:="$"+copy(s1,i,2);
inc(i,2);
val(s3,b,code);
s2:=s2+char(b);
end;
writeln(s2," Свершилось :^)");
end.
← →
Skier (2002-08-27 13:34) [20]>serd_hhc
function GetStrFromHexStr(const AHexStr : String) : String;
const
HEX_PREFIX = "$";
var
ii : Integer;
begin
Result := EmptyStr;
if (AHexStr = EmptyStr) or
Odd(Length(AHexStr)) then Exit;
ii := 1;
while ii <= Length(AHexStr) do begin
Result := Result + Chr(StrToIntDef(HEX_PREFIX + AHexStr[ii] + AHexStr[ii + 1], 0));
Inc(ii, 2);
end; //while
end;
← →
serd_hhc (2002-08-27 13:35) [21]Большое вам СПА-СИ-БО!!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.09;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c