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

Вниз

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

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

Наверх




Память: 0.49 MB
Время: 0.034 c
3-1078234286
Denis
2004-03-02 16:31
2004.04.04
Грид не отображает значения поля до щелчка мышкой.


14-1078587759
Mox Fulder
2004-03-06 18:42
2004.04.04
Стыдно!


1-1079379262
HepB
2004-03-15 22:34
2004.04.04
Оптимизация кода , уменьшение размера приложения...


4-1076959380
Дубинин Алексей
2004-02-16 22:23
2004.04.04
Как отловить сообщение о скроллинге


4-1074793449
.Влад
2004-01-22 20:44
2004.04.04
информация по написанию плагинов.