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 1 von 3  1 23      
KSebi

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

Quellcode des Programms in Delphi übersetzen - Hilfe gesucht

  Alt 28. Nov 2005, 20:31
Einen schönen guten Abend an die Delphi Gemeinde hier.

Und zwar habe ich hier ein Programmquellcode, der einen Serial berechnet.
Anfolgend würde ich gerne den vom Programm erstellten, mit der Benutzereingabe abgleichen.
Das Problem ist, dass der Quellcode in PUREBASIC geschrieben ist.
Zudem sind Assembler Anweisungen enthalten.

Ich hoffe, dass es hier jemden gibt, der mir helfen kann, den Programmteil so umzuschreiben, dass dieser in Delphi funktioniert.

Hier nun also der PUREBASIC code:
Delphi-Quellcode:
        uName.s = GetGadgetText(#txtName) { uname wird die eingabe des Textfeldes Name zugewiesen}
         tempChar.l
         nameLen.b = Len(uName) {Länge von uname wird ermittelt}
         Debug maxLen
         If nameLen<3 {wenn länge kleiner 3 ist ...}
           SetGadgetText(#txtSerial,"Name Too short")
          ElseIf nameLen>=50
           SetGadgetText(#txtSerial,"Name Too Long")
        Else {bis hier hin ist es noch ganz klar, aber ab jetzt unklar}
             XOR eax,eax
             XOR ebx,ebx
         For i = 1 To nameLen
           tempChar = Asc(Mid(uName,i,1))
           MOV eax,tempChar
           XOR eax,201527
           ADD eax,3735928559
           IMUL eax,eax, 1638
           SUB eax,464370355
           SHL eax,3
           XOR eax,3545092109
           ADD ebx,eax
         Next
      
         MOV serial, ebx
         serial = Hex(serial)
         SetGadgetText(#txtSerial,serial)
Ich hoffe, dass ihr diesen Assembler code versteht, denn ich habe so meine Probleme. Sollte es auch ohne Assembler code gehen ok, hätte aber gerne diese Schreibweise, da ich den code dann besser nachvollziehen kann.

Sollte diese Sprahe nicht ganz klar sein, dann hier nochmal das gleiche als VBASIC

Delphi-Quellcode:
Dim EAX,EBX 'Declaring Variables (With no specific Type however Double would be an Ideal type)
   Dim i As Integer
'Counter

   'check name length
   
   If(Len(txtName.text)<3) Then
      txtSerial.Text = "Name Too short"
      Exit Sub
'Like a return statement..
   End If

   'Begin Algo

   For i = 1 to len(txtName.text)
      EAX = Asc(Mid(txtName.text,i,1))
'Get char
      EAX = EAX Xor 201527 'Note This might not work with big numbers (Xor)
      EAX = EAX + 3735928559
      EAX = EAX * 1638
      EAX = EAX - 464370355
      EAX = EAX * (2^3)
'SHL EAX, 3 ... EAX * 8 .. SHL is the same as EAX * 2^N
      EAX = EAX Xor 3545092109
      EBX = EBX + EAX
   Next i

   'End Algo

   txtSerial.Text = Hex(EBX)
'Note this will probably cause an overflow in VB
Also ich würde mich seeeeeeeehr darüber freuen, wenn mir jemand den code umschreiben könnte.
Vielen Dank schonma im Vorraus!!!

Viele Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#2

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

  Alt 28. Nov 2005, 20:37
Ich zitiere mal den Verhaltenskodex (der für dieses Beispiel wohl etwas zu extrem formuliert ist, der Sinn bleibt jedoch der selbe)

Zitat:
http://www.delphipraxis.net/dpX_faq_...?faq=Q_10#Q_10
Mit Fragen, die sich lesen wie "...ich habe weder Ahnung noch Lust, kann mir mal einer mein Programm schreiben..." wirst Du hier nicht auf Gegenliebe stoßen. Wir sind gerne bereit, jedem zu helfen, der selber Engagement zeigt - aber wir machen nicht die Hausaufgaben Anderer.
Zudem ist es unerläßlich, daß Du Dich selber mit dem Problem befasst hast, bevor Du in der Lage bist, dazu eine präzise Frage zu stellen.
Etwas völlig Anderes ist es natürlich, wenn Du (noch) nicht weißt, wonach Du suchen sollst, bzw. wo Du anfangen sollst. Dann frage gerne nach geeigneten Stichworten.
Daher die Frage:
Womit hast du konkret ein Problem beim Umschreiben?

air
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
KSebi

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

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

  Alt 28. Nov 2005, 20:44
ok ich möchte ja kein komplettes programm es geht mir um die funktion.

Delphi-Quellcode:
For i = 1 to len(txtName.text)
      EAX = Asc(Mid(txtName.text,i,1)) 'Get char
EAX = EAX Xor 201527
'Note This might not work with big numbers (Xor)
      EAX = EAX + 3735928559
      EAX = EAX * 1638
      EAX = EAX - 464370355
      EAX = EAX * (2^3) 'SHL EAX, 3 ... EAX * 8 .. SHL is the same as EAX * 2^N
EAX = EAX Xor 3545092109
EBX = EBX + EAX
Next i

'End Algo

   txtSerial.Text = Hex(EBX) 'Note this will probably cause an overflow in VB
So also ich würde mal sagen, dass das Assembler code ist. Mit Assembler habe ich allerdings nicht sehr viel zu tun, versteh aber zumindest was hier geschieht.

Also ich weiß nur nicht, wie ich diesen Assemblercode so umschreiben kann, dass dieser in Delphi funktioniert.


Wenn mir jemand sagn kann, wie das geht wär ich sehr glücklich ^^

Danke schonmal
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#4

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

  Alt 29. Nov 2005, 08:30
Das ist kein Assembler, das sind ganz gewöhnliche Variablen.
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#5

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

  Alt 29. Nov 2005, 08:36
Und eine 1:1 Übersetzung des Assembler-Codes aus dem PureBASIC Quelltext...
  Mit Zitat antworten Zitat
KSebi

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

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

  Alt 29. Nov 2005, 11:21
ja mein letzter post enthält ja auch die version, die ich nicht gerne hätte, sondern die Assembler Version.

Kann mir hier bitte jemand schreiben, wie ich Assembler code in Delphi verwenden kann?

Also bitte anhand des Beispiels, das ganz am Anfang steht.


Schonma Danke ^^
  Mit Zitat antworten Zitat
Benutzerbild von Daniel Schuhmann
Daniel Schuhmann

Registriert seit: 16. Jul 2005
Ort: München
391 Beiträge
 
Turbo Delphi für Win32
 
#7

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

  Alt 29. Nov 2005, 11:32
Assemblercode leitest Du einfach nur durch das Schlüsselwort asm ein und schließt durch end; ab, das geht in ganz normalen Prozeduren.

Dazu ein Beispiel aus der OH:

Delphi-Quellcode:
function Sum(X, Y: Integer): Integer;
begin
  Result := X + Y;
end;

// Das ganze in Assembler:

function Sum(X, Y: Integer): Integer; stdcall;
begin
  asm
    MOV EAX,X
    ADD EAX,Y
    MOV @Result,EAX
  end;
end;
Daniel
Daniel Schuhmann
  Mit Zitat antworten Zitat
KSebi

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

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

  Alt 29. Nov 2005, 17:08
ok vielen Dank für deinen Beitrag.

Das ist genau das, was ich gerne gewusst hätte.

Also vielen Dank
  Mit Zitat antworten Zitat
KSebi

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

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

  Alt 29. Nov 2005, 18:46
Hi,

hab doch noch einmal eine Frage:

Und zwar weiß ich nicht, wie die geeigneten Funktionen in Delphi heißen für:

tempChar = Asc("a")
Und zwar ist das Visual Basic und die Funktion Asc wandelt a in eine Intergerzahl um.

2. serial = Hex(123854)


Schonmal vielen Dank
PS: Hab die Funktionen leider nicht gefunden in der Delphi Hilfe

THX
  Mit Zitat antworten Zitat
KSebi

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

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

  Alt 29. Nov 2005, 19:19
So also hab schonma rausgefunden wie ichn char in en interger bekomme.

Hier mal mein derzeitiger Quellcode:

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

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
    EAX := integer(Edit1.Text[i]); {Get char }
      {EAX := EAX Xor 201527; }<---------------------------- Frage 1
      EAX := EAX + 3735928559;
      EAX := EAX * 1638;
      EAX := EAX - 464370355;
      EAX := EAX * (2*2*2);
      {EAX := EAX Xor 3545092109;   }<---------------------- Frage 1
      EBX := EBX + EAX;
  end;
  {Hier muss EBX noch in einen HEX-Wert geändert werden}<------------- Frage 2
  serial := FloatToStr(EBX);
  Edit2.Text := serial;
end; {if}
end; {Procedure}
Frage 1: Und zwar wie schaffe ich es, dass Delphi dieses Xor berechnen kann, denn im Moment bricht er ab?
Frage 2: Wie wandel ich den Wert dann in en Hex-Wert um?


Schonma vielen Dank.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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:49 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