AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Chiffre BinärtoText TexttoBinär
Thema durchsuchen
Ansicht
Themen-Optionen

Chiffre BinärtoText TexttoBinär

Ein Thema von pirechner · begonnen am 15. Okt 2005 · letzter Beitrag vom 15. Okt 2005
 
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#9

Re: Chiffre BinärtoText TexttoBinär

  Alt 15. Okt 2005, 19:34
Also, ich hab das ganze nochmal geschrieben.

Was es kann:
- umformen in jede basis (nicht nur Binär)
- Zurückumformen aus jeder Basis

Zeilenumbrücher ignoriere ich einfach, beim zurückkonvertieren werden sie ja eh wiederhergestellt^^

Mein Formular:
2 Memos, ein SpinEdit und zwei Buttons

Die Umrechnungen entstammen übrigens der Unit UBase2Base von mir die afaik auch in der CodeLib steht.

Delphi-Quellcode:
function Potenz(Base, Exp : Integer):Int64;
var i:Integer;
begin
   Result:=1;
   for i:=1 to Exp do Result:=Result * Base;
end;

function GetChar(Number: Integer):Char;
begin
  if Number<10 then Result:=Chr(Number+48)
  else if Number<91 then Result:=Chr(Number+55)
  else Result:=' ';
end;

function GetInt(Value: Char):Integer;
begin
  Result:=Ord(Value);
  if Result<58 then Result:=Result-48
  else if Result<91 then Result:=Result-55
  else Result:=0;
end;

function DecToBase(Value:Int64; Base:Integer):String;
var Rest:Integer;
begin
  Result:='';
  repeat
    Rest:=Value Mod Base;
    Value:=Value Div Base;
    Result:=GetChar(Rest) + Result;
  until Value=0;
end;

function BaseToDec(Value:String; Base:Integer):Int64;
var i, j:Integer;
begin
  Value:=Trim(Value);
  j:=Length(Value)-1;
  Result:=0;
  for i:=1 to Length(Value) do
    begin
    Result:=Result + GetInt(Value[i]) * Potenz(Base,j);
    dec(j);
    end;
end;

function Code(Val: String; Base: Integer):String;
var i:Integer;
begin
  Result:='';
  for i:=1 to Length(Val) do
    Result:=Result+DecToBase(Ord(Val[i]),Base)+' ';
end;

function DeCode(Val: String; Base: Integer):String;
var P: Integer;
    A: String;
begin
  Result:='';
  P:=Pos(' ',Val);
  while P>1 do
    begin
    A:=copy(Val,1,P);
    Result:=Result+Chr(BaseToDec(A,Base));
    Delete(Val,1,P);
    P:=Pos(' ',Val);
    end;
end;
Edit: Schön verpackt^^
BTW:
Basis 2: 1000101 1100100 1101001 1110100 111010 100000 1010011 1100011 1101000 11110110 1101110 100000 1110110 1100101 1110010 1110000 1100001 1100011 1101011 1110100 1011110 1011110
Basis 4: 1011 1210 1221 1310 322 200 1103 1203 1220 3312 1232 200 1312 1211 1302 1300 1201 1203 1223 1310 1132 1132
Basis 16: 45 64 69 74 3A 20 53 63 68 F6 6E 20 76 65 72 70 61 63 6B 74 5E 5E
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz