AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Quellcode des Programms in Delphi übersetzen - Hilfe gesucht
Thema durchsuchen
Ansicht
Themen-Optionen

Quellcode des Programms in Delphi übersetzen - Hilfe gesucht

Ein Thema von KSebi · begonnen am 28. Nov 2005 · letzter Beitrag vom 2. Dez 2005
Antwort Antwort
Seite 2 von 3     12 3      
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#11

Re: Quellcode des Programms in Delphi übersetzen - Hilfe ges

  Alt 29. Nov 2005, 21:51
Mit dem Dollarzeichen kannst du genau das erreichen was du willst.
Nach der Zuweisung a := $10 steht dann in a der Wert 16 (nämlich genau hexadezimal 10)

//edit:
Beitrag umformuliert. Puh, hatte ich eine Grütze geschrieben...
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
KSebi

Registriert seit: 10. Sep 2005
Ort: Neu-Isenburg
29 Beiträge
 
Delphi 2005 Professional
 
#12

Re: Quellcode des Programms in Delphi übersetzen - Hilfe ges

  Alt 30. Nov 2005, 16:37
Ok vielen Dank!

Habe jetzt Frage 1 auch schon rausgefunden und danke für das $ für Hex ^^

So ich probiers jetzt nochma aus

Vielen Dank für alle Antworten.

cöö
  Mit Zitat antworten Zitat
KSebi

Registriert seit: 10. Sep 2005
Ort: Neu-Isenburg
29 Beiträge
 
Delphi 2005 Professional
 
#13

Re: Quellcode des Programms in Delphi übersetzen - Hilfe ges

  Alt 30. Nov 2005, 16:57
ok leider doch noch kein erfolg.

das mit dem $-Zeichen will nicht so ganz.

meinevariable := $zahl; // Dann erhalte ich folgende Fehlermeldung: [Fehler] Unit1.pas(59): E2066 Operator oder Semikolon fehlt

meinevariable ist ein integer
ich habe auch mal string ausprobiert geht aber auch nicht.

Was für ne Variable brauch ich denn, um ein HEX-Wert aufzunehmen?

Danke schonma ^^
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#14

Re: Quellcode des Programms in Delphi übersetzen - Hilfe ges

  Alt 30. Nov 2005, 17:06
eine Integer-Variable. Du kannst das Dollarzeichen weglassen. Mach meinevariable:=integer(zahl);
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
KSebi

Registriert seit: 10. Sep 2005
Ort: Neu-Isenburg
29 Beiträge
 
Delphi 2005 Professional
 
#15

Re: Quellcode des Programms in Delphi übersetzen - Hilfe ges

  Alt 30. Nov 2005, 17:13
so also mein aktueller quellcode:

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  i,cha:integer;
  serial:string;
  neu:integer;

const
  hexes:array[0..15] of char=('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');

begin {Procedure}
if length(Edit1.Text) < 3 then
  Edit2.Text := 'Der Benutzername ist zu kurz!'
else if length(Edit1.Text) > 50 then
  Edit2.Text := 'Der Benutzername ist zu lang!'
else
begin {if}
  for i:=1 to length(Edit1.Text) do
  begin
    cha := integer(Edit1.Text[i]); {Get char }
    asm
    MOV eax,cha
    XOR eax,201527
    ADD eax,3735928559
    IMUL eax,eax, 1638
    SUB eax,464370355
    SHL eax,3
    XOR eax,3545092109
    ADD ebx,eax
    MOV neu,ebx
    end;
  end;

  {Hier muss EBX noch in einen HEX-Wert geändert werden}
  serial := hexes[neu div 16]+hexes[neu mod 16];
  Edit2.Text := serial;
end; {if}
end; {Procedure}

end.
Hab mir das mitm hex wo anders hier im Forum abgeschaut.

DOCH: Nun kann ich den Code zwar ausführen, wenn ich in das proggy dann aber einen namen eingebe, bricht das proggy mit nem fatalen Fehler ab. Findet hier jemand den Fehler?

Ich weiß derziet net weiter.

Schonma danke
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#16

Re: Quellcode des Programms in Delphi übersetzen - Hilfe ges

  Alt 30. Nov 2005, 17:20
Zitat:
 serial := hexes[neu div 16]+hexes[neu mod 16];
muss das nicht heissen  serial := inttostr(hexes[neu div 16])+inttostr(hexes[neu mod 16]); was ist denn hexes? ist das auch eine Variable? mein Delphi kennt die nicht...


ACHSO, du hast eine
const hexes:string='0123456789ABCDEF' [edit]

soweit bin ich schon dass er immer in der zweiten wiederholung beim Auslesen des Chars aus dem Edit abschmiert.
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
KSebi

Registriert seit: 10. Sep 2005
Ort: Neu-Isenburg
29 Beiträge
 
Delphi 2005 Professional
 
#17

Re: Quellcode des Programms in Delphi übersetzen - Hilfe ges

  Alt 30. Nov 2005, 17:27
ja nur hexes is halt bei mir en array kein string- denk aber, dass die umwandlunk funktionieren sollte.

Oder nicht? also leider noch keine Lösung gefunden.
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#18

Re: Quellcode des Programms in Delphi übersetzen - Hilfe ges

  Alt 30. Nov 2005, 17:30
du musst den Edit1.text schon am Anfang in eine Variable einlesen. Auf die greifst du dann zu:

Delphi-Quellcode:
var
  i,cha,neu:integer;
  serial,s:string;

const
  hexes:string='0123456789ABCDEF';
begin {Procedure}
if length(Edit1.Text) < 3 then
  Edit2.Text := 'Der Benutzername ist zu kurz!'
else if length(Edit1.Text) > 50 then
  Edit2.Text := 'Der Benutzername ist zu lang!'
else
begin {if}
  s:=edit1.text;
  for i:=1 to length(Edit1.Text) do
  begin
    cha := integer(s[i]); {Get char }
    asm
      MOV eax,cha
      XOR eax,201527
      ADD eax,3735928559
      IMUL eax,eax, 1638
      SUB eax,464370355
      SHL eax,3
      XOR eax,3545092109
      ADD ebx,eax
      MOV neu,ebx
    end;
  end;

  {Hier muss EBX noch in einen HEX-Wert geändert werden}
  serial := hexes[neu div 16]+hexes[neu mod 16];
  Edit2.Text := serial;
end; {if}
end;
jetzt gibt es noch eine AV weil deine Hex-Umwandlungs-Prozedur nur für Zahlen unter 256 geht.

Zur Hex-Umwandlung kannst du diese Proc verwenden:
Delphi-Quellcode:
function hextostr(hex:int64):string;
const
  hexes:string='0123456789ABCDEF';
var
  hextmp:int64;
  kn:boolean;
begin
  hextmp:=hex;
  kn:=false;
  result:='';
  if hextmp<0 then begin
    hextmp:=-hextmp;
    kn:=true;
  end;
  if hextmp=0 then begin
    result:='0';
    exit;
  end;
  while hextmp<>0 do begin
    result:=hexes[1+(hextmp mod 16)]+result;
    hextmp:=hextmp div 16;
  end;
  if kn then result:='-'+result;
end;
diese Funktion habe ich gerade selbst gebastelt. Müsste funktionieren für Zahlen zwischen +9223372036854775808 und -9223372036854775807.

aufdieselbe Art kannst du auch dein eigenes inttostr schreiben: einfach 16 durch 10 ersetzen und fertig.
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
KSebi

Registriert seit: 10. Sep 2005
Ort: Neu-Isenburg
29 Beiträge
 
Delphi 2005 Professional
 
#19

Re: Quellcode des Programms in Delphi übersetzen - Hilfe ges

  Alt 30. Nov 2005, 17:35
ok also jetzt bleibt der debugger doch bei der hexumwandlung stecken, nachdem ich edit1 gleich am anfang einlesen lasse. dafür schonmal danke!

Und hast ja auch gesagt, dass diese Umwandlung nur bis zu nem best. Wert funktioniert.

Also wie kann ich dann große Zahlen in Hex umwandeln lassen?

Schonma danke für die Antwort
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#20

Re: Quellcode des Programms in Delphi übersetzen - Hilfe ges

  Alt 30. Nov 2005, 17:43
Gibt es nicht bei Delphi eine Routine StrToHex oder so ähnlich? In die andere Richtung (Zahl in Hex-String umwandeln) ist ja schließlich auch eine dabei.

PS: Das mit dem Dollarzeichen funktioniert nur bei Zahlen, die du direkt im Quellcode eingibst. Deinem Computer ist es nämlich egal, ob du eine Zahl als Ganzzahl, Hexadezimal oder Binär interpretieren willst--der Wert ist immer der gleiche, nur die Formatierung ändert sich. Und die ist dem Computer egal, ihn interessiert nur der Wert.
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 12:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz