Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-27008
xyz
2002-08-22 02:10
2002.09.09
Integer прописью


3-26877
SERY
2002-08-19 17:56
2002.09.09
Сортировка в базе данных “Paradox”


1-26941
c0pYc@t
2002-08-28 14:18
2002.09.09
Вопрос о реестре


1-27093
stas_a
2002-08-27 12:09
2002.09.09
Изменения после компилирования


3-26900
demisen
2002-08-20 11:25
2002.09.09
Разделять разряды в QuickReport





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