ASCII Zahl für Buchstaben auslesen und anzeigen lassen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
darkdantedante
Beiträge: 9
Registriert: Fr 12. Okt 2012, 15:37

ASCII Zahl für Buchstaben auslesen und anzeigen lassen

Beitrag von darkdantedante »

Hey,
ich habe hier ein Problem.
Ich möchte aus einem Editfeld einen Buchstaben auslesen und diesen als Zahl (Zahl der ASCII Tabelle) ausgeben lassen.
Genau umgekehrt soll das auch geschehen. Dieses habe ich jedoch schon gelöst.

Ihr könnt euch ja meinen Quelltext mal anschauen und mir einen Tipp geben, was ich falsch gemacht habe. :roll:

Vielen Dank schon mal im Vorraus!!
Dateianhänge
Bisherige
Bisherige

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: ASCII Zahl für Buchstaben auslesen und anzeigen lassen

Beitrag von Euklid »

Hallo,

probier mal inttostr, um die Zahl wieder in ein Zeichen umzuwandeln.

Zudem musst Du beachten, dass ord(zahlzeichen) nicht gleich der Zahl ist - ord gibt nur zurück, das wievielte Ascii-Zeichen die Zahl ist.

Aber wie gesagt - ich würde mit StrToInt arbeiten, um eine Zeichenfolge in eine Zahl zu wandeln und IntToStr, um eine Zahl in eine Zeichenfolge zu wandeln.

Viele Grüsse, Euklid

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: ASCII Zahl für Buchstaben auslesen und anzeigen lassen

Beitrag von Heinrich Wolf »

Code: Alles auswählen

var z : char;
z := edit1.text;
Das akzeptiert der Copiler nicht, weil edit1.text mehrere Zeichen lang sein kann. Du musst schreiben

Code: Alles auswählen

var z : char;
    s : string;
s := edit1.text;
if s > '' then
  begin
    z := s[1];
Heiner

darkdantedante
Beiträge: 9
Registriert: Fr 12. Okt 2012, 15:37

Re: ASCII Zahl für Buchstaben auslesen und anzeigen lassen

Beitrag von darkdantedante »

Heinrich Wolf hat geschrieben:

Code: Alles auswählen

var z : char;
z := edit1.text;
Das akzeptiert der Copiler nicht, weil edit1.text mehrere Zeichen lang sein kann. Du musst schreiben

Code: Alles auswählen

var z : char;
    s : string;
s := edit1.text;
if s > '' then
  begin
    z := s[1];
Heiner
Kann ich das nicht viel einfacher mit dem Objektinspektor beschränken (maxlength)?

dann sag ich da: maxlength 1
und somit ist klar, dass nur ein z.B. "A" eingegeben werden kann

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: ASCII Zahl für Buchstaben auslesen und anzeigen lassen

Beitrag von Heinrich Wolf »

darkdantedante hat geschrieben: Kann ich das nicht viel einfacher mit dem Objektinspektor beschränken (maxlength)?

dann sag ich da: maxlength 1
und somit ist klar, dass nur ein z.B. "A" eingegeben werden kann
MaxLength = 1 ist durchaus sinnvoll. Aber ein String der Länge 1 ist damit noch immer inkompatibel zu einem char.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: ASCII Zahl für Buchstaben auslesen und anzeigen lassen

Beitrag von mschnell »

darkdantedante hat geschrieben:und somit ist klar, dass nur ein z.B. "A" eingegeben werden kann
Oder ein "Ä" :twisted:

(Das hat keinen ASCII-Code, sondern gibt es nur bei ANSI, UTF, oder sonstigen. )

-Michael
Zuletzt geändert von mschnell am Sa 13. Okt 2012, 09:07, insgesamt 1-mal geändert.

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: ASCII Zahl für Buchstaben auslesen und anzeigen lassen

Beitrag von Heinrich Wolf »

Das eine Zeichen Ä belegt 2 Bytes im UTF8 Code

Code: Alles auswählen

var     p : PChar;
          t : String;
          l,
          i : Integer;
  begin
    p := pChar(Edit1.Text);
    t := '';
    l := UTF8CharacterLength(p);
    for i := 1 to l do
      begin
        t := t + IntToHex(ord(p[0]), 2);
        inc(p);
      end;
    Label1.Caption := t;
  end;

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: ASCII Zahl für Buchstaben auslesen und anzeigen lassen

Beitrag von mschnell »

Heinrich Wolf hat geschrieben:Das eine Zeichen Ä belegt 2 Bytes im UTF8 Code
Yep. Kann man aber in ein TEdit eingeben, wenn maxlength = 1 ist. Da wird anscheinend die Länge in "druckbaren Zeichen" berechnet (was immer das auch genau heißt und wie das realisiert ist).

-Michael

darkdantedante
Beiträge: 9
Registriert: Fr 12. Okt 2012, 15:37

Re: ASCII Zahl für Buchstaben auslesen und anzeigen lassen

Beitrag von darkdantedante »

Vielen Dank für Eure Mühe! Habe das Problem nun gelöst :)

Antworten