Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.09;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
1-27098
Dmitriy Polskoy
2002-08-28 16:42
2002.09.09
используется ли папка другим приложением


1-27053
Denvor
2002-08-27 19:15
2002.09.09
Может ли TIMAGE спокойно обновляться без рывков?


4-27258
Anton_
2002-06-28 10:07
2002.09.09
handle


7-27239
Kr_Alex
2002-06-22 13:26
2002.09.09
Hint в System Tray


1-27004
Valeris
2002-08-29 19:55
2002.09.09
Использование ресурсов компа