Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Übersetzen in Delphi (https://www.delphipraxis.net/31777-uebersetzen-delphi.html)

ECO 13. Okt 2004 18:13


Übersetzen in Delphi
 
Hallo zusammen!
Kann jemand diese code In delphi übersetzen.

Code:

String Name;
unsigned int NameLong;
unsigned int serial;
unsigned char CharTemp;
unsigned int serialTemp;

Name=edName->Text;
NameLong=edName->GetTextLen();
serial=0;
serialTemp=0;

unsigned int i=0;

do

CharTemp=Name[i+1];
i++;
CharTemp = CharTemp^i;
serial += CharTemp;
} while (i<NameLong);

serialTemp = CharTemp*6;
serial = serial<<7;
serial += serialTemp;


char buffer[80];

sprintf(buffer, "%X", serial);

edSerial->Text=buffer;
// 78960 -> 13470
Ich kann nicht c oder c++
wäre schön wenn ihr mir helfen könnt.
MFG
ECO

[edit=Admin]Code in CODE-Tags ([code]) gesetzt. Künftig bitte selber machen, danke. ;-) Mfg, Daniel[/edit]

ipworks 13. Okt 2004 18:34

Re: Übersetzen in Delphi
 
Hallo...
...du willst doch nicht etwa Seriennummern hacken ...?! :warn:
Peter

P.S. Wenn Du Delphi kannst, solltest Du das Snipplet auch alleine übersetzen können.

tommie-lie 13. Okt 2004 18:37

Re: Übersetzen in Delphi
 
Delphi-Quellcode:
uses {...}, Math;

{ ... }

var
  Name: String;
  NameLong, serial, serialTemp: LongWord;
  CharTemp: Char;
  var i: LongInt;
  buffer: String[80];
begin
  Name := NameEdit.Text;
  NameLong := Length(Name);
  serial := 0;
  serialTemp := 0;

  for i := 1 to NameLong do
  begin
    CharTemp := Name[i];
    serial := serial + Round(Power(CharTemp, i));
  end;

  serialTemp := CharTemp * 6;
  serial := serial shl 7;
  serial := serial + serialTemp;

  buffer := Format('%x', [serial]);
 
  EditSerial.Text := buffer;
end;
Ohne Gewähr.

tommie-lie 13. Okt 2004 18:38

Re: Übersetzen in Delphi
 
Zitat:

Zitat von ipworks
...du willst doch nicht etwa Seriennummern hacken ...?! :warn:

Nein, aber erzeugen ;-)

ECO 14. Okt 2004 16:58

Re: Übersetzen in Delphi
 
Hallo zusammen!!
Ist alles Legal.
Ich habe diesen c source im Netz gefunden und da ich irgendwann
wenn mein Programm fertig ist.
Will ich auch eine serial abfrage
einbauen.
Deshalb suche ich nach Infos.
Soviel dazu.
Ich habe aber noch eine Frage.
Warum bekomme ich hier eine Fehler Meldung.
serial := serial + Round(Power(CharTemp,<--);
Irgendwas von Extended und Real.
Wäre schön wen ihr mir noch mal helft in der Delphi Hilfe hab ich nichts gefunden.
MFG
ECO


PS Habe D7 Pers.und Win XP

jbg 14. Okt 2004 18:45

Re: Übersetzen in Delphi
 
Zitat:

Round(Power(CharTemp, i));
Wo kommt denn das her? Im C++ Code sehe ich da kein power().

CalganX 14. Okt 2004 18:47

Re: Übersetzen in Delphi
 
Hi,
und was ist
Code:
CharTemp^i
? :zwinker:

Chris

Chewie 14. Okt 2004 18:53

Re: Übersetzen in Delphi
 
Zitat:

Zitat von Chakotay1308
Hi,
und was ist
Code:
CharTemp^i
? :zwinker:

Chris

Nicht CharTemp hoch i, sondern CharTemp xor i!!

tommie-lie 14. Okt 2004 19:04

Re: Übersetzen in Delphi
 
Zitat:

Zitat von Chewie
Nicht CharTemp hoch i, sondern CharTemp xor i!!

Demnächst liefere ich das Gewehr zum erschießen meinereiners gleich mit...


...meine C-Kenntnisse sind nunmal eingerostet... :duck:

ECO 15. Okt 2004 16:13

Re: Übersetzen in Delphi
 
Hallo!!
Ich möchte mich bei allen bedanken für die schnelle Hilfe.
Vielen Dank an alle die mir geholfen haben.
Ich habe hier noc<h mal den kompletten Code.

Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Math, XPMan;

type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
XPManifest1: TXPManifest;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen } 
public
{ Public-Deklarationen } 
end;

var
Form1: TForm1;


implementation
{$R *.dfm} 


procedure TForm1.Button1Click(Sender: TObject);
var
Name: String;
NameLong: Integer; // exakter wäre Cardinal
serial :Integer; // s.o.
CharTemp: char;
serialTemp: Integer;
i: Integer;
begin
Name := Edit1.Text; // Name ist ein TEdit
NameLong := Length(Edit1.Text);
serial := 0;
//if Length (Edit1.Text) < 4 then Showmessage ('Mindestens 4 Zeichen eingeben!!!');


for i := 1 to NameLong do
begin
CharTemp := Name[i];
CharTemp := Chr(Ord(CharTemp) xor i);
serial := serial + ord(CharTemp);
end;


serialTemp := ord(CharTemp) * 6;
serial := serial shl 7;
serial := serial + serialTemp;
if Length (Edit1.Text) < 4 then Edit2.Text:= ('Mindestens 4 Zeichen eingeben!!!')
else
Edit2.Text := Format('%X', [serial]);

end;
end.
So funktioniert es 100%.
Danke
ECO

[edit=Admin]Code in Delphi-Tags gesetzt. Künftig bitte selber machen. Danke sehr. ;-) Mfg, Daniel[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:39 Uhr.
Seite 1 von 2  1 2      

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