Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie kann man den Asciiwert errechnen (https://www.delphipraxis.net/186554-wie-kann-man-den-asciiwert-errechnen.html)

LingNeu 10. Sep 2015 17:20

Wie kann man den Asciiwert errechnen
 
hallo zusammen,
ich hab gelesen, dass man ja ganz einfach den Asciiwert über die funktion ord() holen kann.

Das hier scheint zu funktionieren

x := ord('A') ; //rückgabe 65

Aber wie mache ich das die Werte aus einem String ausgelesen werden ?
Da kommt ein Error: inkompatible typen
Was muss ich machen, damit der String passt?
Danke für jede Hilfe!
Lingneu

Delphi-Quellcode:
Procedure HF.btn_testclick(Sender: TObject);
var asc: integer;
text: string;
begin
text := 'ABC';
asc := ord(copy(text,1,1));
//asc := ord(text[1]);

end;

nahpets 10. Sep 2015 17:40

AW: Wie kann man den Asciiwert errechnen
 
ungetestet ungefähr so?
Delphi-Quellcode:
var
  s : String;
  i : Integer;
  ch : Char;
  asc : Integer;
begin
  s := 'ABCDEF';
  for i := 1 to Length(s) do begin
    ch := s[i];
    asc := Ord(ch);
  end;
  // oder
  for i := 1 to Length(s) do begin
    asc := Ord(s[i]);
  end;
end;
Ord kann nur mit einem Zeichen umgehen, nicht jedoch mit einem String oder Substring, wie ihn Copy liefert, daher hilft hier das Konstrukt mit [x], als Positionsangabe für das ausgewählte Zeichen innerhalb eines Strings.

LingNeu 11. Sep 2015 06:25

AW: Wie kann man den Asciiwert errechnen
 
@nahpets,
DANKE! Funktioniert wunderbar!

Was ich jetzt noch bräuchte wäre die Möglichkeit, diesen Asciiwert, der ja ein Integer ist in einer For-Schleife zu verwenden

Delphi-Quellcode:
var
  s : String;
  i : Integer;
  ch : Char;
  asc : Integer;
begin
  s := 'ABCDEF';
  for i := 1 to Length(s) do begin
    asc := Ord(s[i]);
  end;
  // ZUSATZ
  for i := 1 to asc do begin
      // mach was
  end;
end;
Leider krieg ich hier die Meldung

"FOR Schleifenvariable muss eine einfache Variable sein"
Die Variable asc ist doch auch eine Integer?


Gruß LingNeu

Jasocul 11. Sep 2015 06:37

AW: Wie kann man den Asciiwert errechnen
 
Keine Ahnung, was du da gemacht hast.
Wenn du es genauso benutzt, wie es da steht, kann höchstens die Meldung kommen, das "asc" nicht initialisiert ist und "ch" nicht benutzt wird.

Die For-Schleifen Variable ist "i" und hat schon in der Schleife davor funktioniert.

Abgesehen davon, wird der Source vermutlich nicht das machen, was du gerne haben möchtest.
asc hat nach der ersten Schleife den ASCII-Code von F. Alle anderen ASCII-Codes spielen in der zweiten Schleife keine Rolle.

LingNeu 11. Sep 2015 06:39

AW: Wie kann man den Asciiwert errechnen
 
Danke!
Fehler gefunden. Es lag an mir, habe mich vertippt!

Es stimmt also ...
das Problem sitzt vorm Bildschirm :-D

gruß
LingNeu

mkinzler 11. Sep 2015 06:41

AW: Wie kann man den Asciiwert errechnen
 
Der Fehler muss wo anderst sein, den die Schleifenvariable ist i nicht asc.

Aber ich vermute mal, Du benötigst 2 verschachtelte Schleifen, den du hast ja für jedes Element des Strings einen ASCII-Wert und in Deinem Fall wird ja die 2. Schleife nur für den letzten ASCII-Wert durchgeführt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:16 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