Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

ASCII Code ermitteln?


3 replies to this topic

ICE3D

ICE3D
  • Members
  • 12 posts

Posted 05 November 2003 - 12:51

Hallo allerseits!

Ich muss einen String in eine INI-Datei schreiben. Allerdings nicht den String selbst, sondern die jeweiligen ASCII-Codes der einzelnen Zeichen.
Bsp:
"Hallo" -> INI: "72 97 108 108 111"

Wie kann ich von einzelnen Zeichen den ASCII-Code ermitteln? Hab in der Installshield Hilfe leider nichts gefunden sad.gif

tia smile.gif

Edited by ICE3D, 05 November 2003 - 12:52.

..:: there is no place like 127.0.0.1 ::..

ICE3D

ICE3D
  • Members
  • 12 posts

Posted 05 November 2003 - 14:18

ok, wie ich den ASCII-Code ermitteln kann, weiß ich jetzt

chr = str[i];

...wenn ich jetzt den String zusammenbaue, den ich anschließend in die ini-Datei schreiben will:
inistr = inistr + chr;
...regt sich der Compiler auf, dass er einen numerischen Wert benötigt.
Dies umgehe ich mit Sprintf:
Sprintf(inistr, "%s%c", inistr, chr);
...allerdings kann ich nicht 2x inistr angeben, weil dieser nach dem Aufruf unverändert bleibt....
Wenn ich statt inistr, einen anderen String angebe, in dem das Ergebnis gespeichert werden soll, funktionierts...
..:: there is no place like 127.0.0.1 ::..

Perotin

Perotin
  • Full Members
  • 407 posts

Posted 05 November 2003 - 14:23

Wie wäre es mit einer eigenen Funktion dazu? Sowas wie
CODE

function Test( sText )

string     sAscii, sTemp;
number  i;

begin

for i = 0 to StrLength( sText )
 StrSub( sTemp, sText, i, 1 );
 switch ( sTemp )
  case "0": sAscii += "30 ";
  case "1": sAscii += "31 ";
  ...
  case "A": sAscii += "41 ";
  ...
  case "a": sAscii += "61 ";
  ...
  default:
 endswitch;
endfor;
return sAscii;


end;

Gruß / regards
Thomas

ICE3D

ICE3D
  • Members
  • 12 posts

Posted 05 November 2003 - 14:28

hm...danke für den Vorschlag smile.gif

habs jetzt folgendermaßen gelöst:
CODE

function OnBegin()
STRING encr;
long   i;
STRING temp;
STRING erg;
CHAR   chr;
begin
erg = "";
encr = "Test";
for i = 0 to StrLength(encr)
  chr = encr[i];
  Sprintf(temp, "%s%d", erg, chr);
  erg = temp;
endfor;
WriteProfString(...)

..:: there is no place like 127.0.0.1 ::..