![]() |
Delphi-Version: 2010
Portierung JavaScript
Hallo
ich versuche zur Zeit den folgenden JavaScript Code nach Delphi zu portieren. Doch leider sind da noch ein paar Dingem die ich nicht hinbekomme.
Code:
Folgenden Code habe ich bereits:
<script language="javascript">
function Decoder(s){ var s1=unescape(s.substr(0,s.length-1)); var t=''; for(i=0;i<s1.length;i++)t+=String.fromCharCode(s1.charCodeAt(i)-s.substr(s.length-1,1)); return unescape(t); } </script>
Delphi-Quellcode:
Wie kann ich jetzt die Funktion "unescape" nachbilden?
function Decoder(s:String): String;
var s1,t: String; i: Integer; begin s1 := Copy(s,0,Length(s)-1); for i := 0 to Length(s1) - 1 do begin t := t+''; end; Result := t; end; Wie portiere ich folgende Zeile "t+=String.fromCharCode(s1.charCodeAt(i)-s.substr(s.length-1,1));" Vielen Dank für eure Hilfe :) |
AW: Portierung JavaScript
Ich dachte erst an C-Escape Sequenzen (dafür wäre eine StringReplace Orgie gegangen), aber scheint bei JavaScript eine Umkehrung von Urlencode zu sein. Also mal nach Urldecode suchen.
Ob das alles ist oder doch was anderes... muss ich leider passen. ;) |
AW: Portierung JavaScript
Weißt du denn was die Funktion
Code:
in JavaScript macht?
unescape
|
AW: Portierung JavaScript
Ach ja, Substring ist Zero-Based, also das
Code:
gibt den kompletten String zurück (weis nicht, warum das gemacht wird)
var s1 = unescape( >>> s.substr(0,s.length-1) <<< );
aber das
Delphi-Quellcode:
.
s1 := Copy(s,0,Length(s)-1);
den String abzüglich des letzten Zeichens(weil ich denke, das Copy aus der 0 automatisch eine 1 macht), vergleichbar wäre wohl
Delphi-Quellcode:
.
s1 := Copy(s,1, Length(s));
Hab' aber noch nicht zu Mittag gegessen, also kann auch gerade falsch liegen. |
AW: Portierung JavaScript
Erstmal vielen Dank für die Antworten :)
Also das unescape habe ich jetzt über IdURI und URLDecode gelöst. Zum substr:
Code:
ergibt
var s='1234567890';
document.write(s.substr(0,s.length-1)); 123456789 also wird das letzte Zeichen weggelassen. Jetzt fehlt mir also nur noch ![]() und ![]() |
AW: Portierung JavaScript
Ich habe es jetzt hinbekommen :)
Hier die komplette Funktion, für die es interessiert:
Delphi-Quellcode:
function Decoder(s:String): String;
var s1,t: String; i: Integer; begin s1 := UTF8ToString(TIdURI.URLDecode(Copy(s,0,Length(s)-1))); for i := 0 to Length(s) - 1 do begin t := t+CHR(Ord(s1[i])-StrToInt(Copy(s,length(s),1))); end; Result := TIdURI.URLDecode(t); end; |
AW: Portierung JavaScript
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 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