![]() |
php script > delphi
hallo,
ich muss ein php script in delphi realisieren, leider hab ich dabei einige probleme, vielleicht kann mir dabei ja jemand helfen hier die php funktion
Code:
hier mein delphi versuch
function base32_encode_num($num, $aa1) { # encode
$r = ""; while ($num > 0) { $r = $r . $aa1[ ($num - floor($num/32)*32) + (32 * rand(0,1)) ] ; $num = floor($num/32); } return $r; }
Delphi-Quellcode:
hier gibt es den fehler "array-typ erforderlich",
function TForm1.base32_encode_num(num, aa1: integer): integer;
var r: integer; begin r:= 0; while num > 0 do begin r:= r + aa1[(num - floor(num/32)*32) + (32 * random(1))]; num:= floor(num/32); end; end; dies bezieht sich natürlich auf aa1, ich weiß leider nicht wie ich ein array übergenen kann |
Re: php script > delphi
Nimm daoch ne Liste, ist imho bequemer.
Das ginge so:
Delphi-Quellcode:
function TForm1.base32_encode_num (num: integer; aal: TStrings): integer;
|
Re: php script > delphi
Zitat:
MFG Ajo nebenbei... kann es sein, dass deine funktion noch nichts zurück gibt? (mir fehlt sowas à la result := ... oder base32_encode_num := ... ) (oder klappt das auch mit r?) |
Re: php script > delphi
Du musst (nach dem, was ich erkennen kann, obwohl ich kein PHP kann :-D)
Delphi-Quellcode:
schreiben, denn im PHP-Code steht ja
result:=r;
Code:
return $r;
|
Re: php script > delphi
also erstens solltest du darauf achten, was für's Datentyp es wirklich im PHP ist :warn:
$r = "";, das ist doch Eindeutig ein String und kein Integer, ausserdem weist der Punkt $r = $r . irgendwas ebenfalls auf 'ne Stringaddition - Zahlen werden mit dem Plus addiert. aa1 könnte ja auch locker mal ein String oder ein array sein, woher sollen wir denn jetzt erahnen, was es ist. Zeig uns also mal besser noch den Rest eines Script's, wo das drin ist. mögliche Lösunden:
Delphi-Quellcode:
function TForm1.base32_encode_num(num: integer; aa1: String): String;
var r: string; begin r := ''; while num > 0 do begin r := r + aa1[(num - floor(num/32)*32) + (32 * random(1))]; num:= floor(num/32); end; result := r; end;
Delphi-Quellcode:
type Taa = array of integer;
function TForm1.base32_encode_num(num: integer; aa1: Taa): String; var r: string; begin r := ''; while num > 0 do begin r := r + chr(aa1[(num - floor(num/32)*32) + (32 * random(1))]); num:= floor(num/32); end; result := r; end;
Delphi-Quellcode:
// statt r könnte man ...
function TForm1.base32_encode_num(num: integer; aa1: String): String; var r: string; begin r := ''; while num > 0 do begin r := r + aa1[(num - floor(num/32)*32) + (32 * random(1))]; num:= floor(num/32); end; result := r; end; // ... aber auch gleich result verwenden function TForm1.base32_encode_num(num: integer; aa1: ...): String; begin result := ''; while num > 0 do begin result := result + ...; num:= floor(num/32); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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