Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi php script > delphi (https://www.delphipraxis.net/33316-php-script-delphi.html)

endeffects 4. Nov 2004 19:44


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:
 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;
 }
hier mein delphi versuch

Delphi-Quellcode:
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;
hier gibt es den fehler "array-typ erforderlich",
dies bezieht sich natürlich auf aa1,
ich weiß leider nicht wie ich ein array übergenen kann

jfheins 4. Nov 2004 20:07

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;

karisma 4. Nov 2004 20:07

Re: php script > delphi
 
Zitat:

function TForm1.base32_encode_num(num integer; aal : array of ???): integer;
So vielleicht?

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?)

Ultimator 4. Nov 2004 20:12

Re: php script > delphi
 
Du musst (nach dem, was ich erkennen kann, obwohl ich kein PHP kann :-D)
Delphi-Quellcode:
result:=r;
schreiben, denn im PHP-Code steht ja
Code:
return $r;

himitsu 5. Nov 2004 09:47

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