Entwickler-Ecke

Sonstiges (Delphi) - Compiler wandelt #98+#97+#110+... in Klartext, Warum ?


GuGl - Mo 10.02.03 11:31
Titel: Compiler wandelt #98+#97+#110+... in Klartext, Warum ?
Hallo zusammen,

weiß jemand warum der Compiler die u.a. Zeichenfolge in Klartext (in diesem Fall "Banane") umwandelt und den dann auch so in die EXE-Datei schreibt ?

Der wird sogar angezeigt, wenn ich die EXE mit Wordpad editiere.

Quelltext
1:
2:
3:
4:
5:
6:
7:
begin
     Application.Initialize;
     if inputbox('Paßwort eingeben','Paßwort : ','') = #98+#97+#110+#97+#110+#101 then begin
        Application.CreateForm(TForm1, Form1);
        Application.Run;
     end
     else application.terminate;

Kann diese Umwandlung ggf abgeschaltet werden? Bin für jede Hilfe dankbar.


UGrohne - Mo 10.02.03 11:37

Der Compiler wandelt das natürlich um, denn das sind zu ersetzende Zeichen für ihn. Wenn Du eine softcodet String machen willst, also einen der nicht in der EXE sichtbar ist, dann mach das mit Chr(38)+....
dann funktionierts.

Gruß


GuGl - Mo 10.02.03 13:29

Habe ich auch schon Probiert,
hat aber den gleichen Effekt und ist in der EXE als Klartext lesbar.


Aya - Mo 10.02.03 13:49

Hi,

mach doch einfach ein paar Konstanten und Variablen... für jedn Buchstaben eine.

so:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
const
  PA = 'A';
  PN = 'N';

var
  PB: String = 'B';

procedure CheckPW(Password: String);
const
  PE = 'E';
begin
  if Password = PB+PA+PN+PA+PN+PE then
    // bla bla :)
end;


Au'revoir,
Aya~


GuGl - Mo 10.02.03 14:23

Besten Dank, funzt Prima.