Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schleifen Problem (https://www.delphipraxis.net/130763-schleifen-problem.html)

Shinoda16 12. Mär 2009 22:22


Schleifen Problem
 
Hallo,
Mein Plan ist es einen String in die ASCII Zahlenwerte umzuwandeln. Also wenn ich z.B. in das Edit1.text "AA" eingebe soll mir im Edit2.text 6565 ausgegeben werden.

Aber es funktioniert nicht wegen diesem Fehler:

[Fehler] Unit1.pas(36): Inkompatible Typen: 'Char' und 'Integer'


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var text: string;
u: byte;

begin
text:= edit1.text;
for u:=1 to length(text) do begin
text[u]:=ord(text[u]);
edit2.text := text
end;

end;

 end.

Matze 12. Mär 2009 22:25

Re: Schleifen Problem
 
Hallo, herzlich Willkommen!

text[u] ist ein String bzw. Char und dem kannst du direkt keinen Integer-Wert zuweisen. Evtl. geht das:

Delphi-Quellcode:
text[u] := IntToStr(Ord(text[u]));
Bzw. so wird es nicht gehen. Speicher den Ord-Wert in einer String-Variablen und weise den 1. Buchstaben zu:

Delphi-Quellcode:
OrdStr := IntToStr(Ord(text[u]));
text[u] := OrdStr[0];
Oder irgendwie sowas. ;)

Grüße, Matze

Shinoda16 12. Mär 2009 22:36

Re: Schleifen Problem
 
Vielen Dank Matze!
Nun sind wir schon einen Schritt weiter.
Das Programm lässt sich starten und ich kann Buchstaben eingeben und umwandeln.

ABER ;)

Wenn ich z.B. A eingebe, wird mir anstatt "65" nur "6" ausgegeben. Bei "a" wird mir nur die "9" anstatt "97" ausgegeben.Also irgendwo streicht er immer automatisch die zweite Ziffer vom Zahlenwert weg. Das Problem besteht bei allen Zeichen. Immer gibt Delphi nur eine Zahl aus.

Matze 12. Mär 2009 22:40

Re: Schleifen Problem
 
Hallo,

ja string[0] ist nur das erste Zeichen. Mich hat es verwirrt, dass du einem einzelnen Zeichen etwas zuweist, daher dachte ich nicht daran, dass das so gar nicht gehen kann. habe dein Beispiel nicht gelesen. *g*

Ich würde es so lösen:

Delphi-Quellcode:
var
  text, textASCI: string;
  u: Byte;
begin
  text := Edit1.Text;
  textASCI := '';

  for u := 1 to length(text) do
    textASCI := textASCI + IntToStr(Ord(text[u]));

  Edit2.Text := textASCI;
end;
ungetestet.

Grüße, Matze

Shinoda16 12. Mär 2009 22:45

Re: Schleifen Problem
 
Klappt wunderbar Matze ! :) Vielen dank für die schnelle Hilfe ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz