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

Вниз

Конвертирование   Найти похожие ветки 

 
Buffoon ©   (2004-03-17 19:24) [0]

Подскажите plizzzzzzzzz как конвертировать текст в HEX или DEC ?????  просто срочно надо.
Заранее спасибо.


 
Dimka Maslov ©   (2004-03-17 19:28) [1]

ты сам-то понял, что спрашиваешь?


 
Anatoly Podgoretsky ©   (2004-03-17 19:31) [2]

Зачем текст в текст?


 
Zacho ©   (2004-03-17 19:50) [3]

А еще в BIN, OCT ... да, помниться я как-то и с 72-ричной системой развлекался... :) Но что самое странное - текст оставался просто текстом :)


 
Mim   (2004-03-17 20:07) [4]

может вам надо нечто такое

const
 hcarr : array[byte] of string[2] = (
 "00","01","02","03","04","05","06","07","08","09","0A","0B",
 "0C","0D","0E","0F","10","11","12","13","14","15","16","17",
 "18","19","1A","1B","1C","1D","1E","1F","20","21","22","23",
 "24","25","26","27","28","29","2A","2B","2C","2D","2E","2F",
 "30","31","32","33","34","35","36","37","38","39","3A","3B",
 "3C","3D","3E","3F","40","41","42","43","44","45","46","47",
 "48","49","4A","4B","4C","4D","4E","4F","50","51","52","53",
 "54","55","56","57","58","59","5A","5B","5C","5D","5E","5F",
 "60","61","62","63","64","65","66","67","68","69","6A","6B",
 "6C","6D","6E","6F","70","71","72","73","74","75","76","77",
 "78","79","7A","7B","7C","7D","7E","7F","80","81","82","83",
 "84","85","86","87","88","89","8A","8B","8C","8D","8E","8F",
 "90","91","92","93","94","95","96","97","98","99","9A","9B",
 "9C","9D","9E","9F","A0","A1","A2","A3","A4","A5","A6","A7",
 "A8","A9","AA","AB","AC","AD","AE","AF","B0","B1","B2","B3",
 "B4","B5","B6","B7","B8","B9","BA","BB","BC","BD","BE","BF",
 "C0","C1","C2","C3","C4","C5","C6","C7","C8","C9","CA","CB",
 "CC","CD","CE","CF","D0","D1","D2","D3","D4","D5","D6","D7",
 "D8","D9","DA","DB","DC","DD","DE","DF","E0","E1","E2","E3",
 "E4","E5","E6","E7","E8","E9","EA","EB","EC","ED","EE","EF",
 "F0","F1","F2","F3","F4","F5","F6","F7","F8","F9","FA","FB",
 "FC","FD","FE","FF");

Function BinData2BinStr(const buf:pointer; const count:integer):string;
var i,j:integer;
begin
 j := 0;
 for i:= 0 to count-1 do
   begin
     if j >= 20 then
       begin
         Result := Result + lb;
         j := 0;
       end;
     Result := Result + hcarr[byte(pointer(integer(buf)+i)^)];
     inc(j);
   end;
end;

Procedure BinStr2BinData(const buf:pointer; const count:integer;const str:string);
var i,j:integer;
   s:string;
   k:byte;
begin
 j := 0;
 s := "";
 for i := 1 to length(str) do
   begin
     if str[i] in ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"] then
       s := s + str[i];
     if length(s) = 2 then
       begin
         for k := 0 to 255 do
           begin
             if hcarr[k] = s then
               begin
                 if j<count then
                   byte(pointer(integer(buf)+j)^) := k;
                 break;
               end;
           end;
         s := "";
         inc(j);
       end;
   end;
end;


 
Defunct ©   (2004-03-18 01:33) [5]

Я так понимаю нужны функции перевода числа из текстовой формы в цифровую форму, из старого архива достаю:

Const Bin  : Set of char = ["0".."1"];
     DecS : Set Of Char = ["0".."9"];
     Hex  : Set Of Char = ["0".."9","A".."F"];

Function Hex2Int(St:ShortString):Integer;
Function Dec2Int(St:ShortString):Integer;
Function Bin2Int(St:ShortString):Integer;

Function Dec2Int;
Var i,w:integer;
Begin
 Val(St,i,w);
 Dec2Int:=I;
End;

Function Bin2Int;
Var I,W:Integer;
   Sign:Boolean;
   S:ShortString;
Begin
 W:=0; Sign:=False;
 If St[1]="-" Then
 Begin
   Sign:=True;
   S:=Copy(St,2,Length(St)-1);
 End Else S:=St;

 For I:=1 To Length(S) Do
 Begin
   W:=W*2;
   If S[i]="1" Then W:=W+1;
 End;
 If Sign Then W:=-W;
 Bin2Int:=W;
End;

Function Hex2Int;
Var I,W:Integer;
   Sign:Boolean;
   S:ShortString;
Begin
 W:=0; Sign:=False;
 If St[1]="-" Then
 Begin
   Sign:=True;
   S:=Copy(St,2,Length(St)-1);
 End Else S:=St;

 For I:=1 To Length(S) Do
 Begin
   W:=W*16;
   If S[i] in DecS Then W:=W+Byte(S[i])-Byte("0")
                   Else W:=W+10+Byte(S[i])-Byte("A");
 End;

 If Sign Then W:=-W;
 Hex2Int:=W;
End;


Предполагается, что число на входе функций уже нормировано, т.е. отсутствуют неверные и лишние символы.


 
rea ©   (2004-03-18 10:08) [6]

D7.Classes:
procedure BinToHex(Buffer, Text: PChar; BufSize: Integer);
function HexToBin(Text, Buffer: PChar; BufSize: Integer): Integer;



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

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

Наверх





Память: 0.47 MB
Время: 0.031 c
14-1078760321
Knight
2004-03-08 18:38
2004.04.04
Люди, а слабо написать все свои ники?


3-1078875784
Anarki
2004-03-10 02:43
2004.04.04
Как загрузить все данные одного поля в Combobox?


6-1074755871
zeher avgur
2004-01-22 10:17
2004.04.04
Ошибка при использовании Powersock


8-1070889136
kopcap
2003-12-08 16:12
2004.04.04
NURBS и OpenGL


1-1078605307
DarkSet
2004-03-06 23:35
2004.04.04
Использование ХМЛ как входящих





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