Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Buchstaben-Ermittlung A-F / G-Z mit Char?


whitef - Do 18.03.10 21:14
Titel: Buchstaben-Ermittlung A-F / G-Z mit Char?
Hallo,

wollte mal anfragen wie man Buchstaben aus einem Buchstaben-String ermitteln kann.

egal, wie ich jetzt meine frage schildere, glaub ich kaum dass die jetzt einer noch versteht...^^

hier mal ein bild was ich letztendlich machen möchte. das sollte dann jeder verstehen können.

Screenshot

also ich dachte schon an Char, wobei ich damit noch nicht soviel gemacht hab und außerdem bezieht sich dies ja auf ein Buchstaben.
Da ich das Alphabet ja auch mit mehreren Wörtern trenne, wie z.B. mit "Sch" fällt dies denk ich mal schon weg.
Die Edit-Felder sind für absicht, sie sollen zeigen, dass diese werte variabel änderbar sein sollten. dass man bei änderung halt nichts mehr umschreiben muss.

gibts dafür sowas wie ne case anweisung?

mfg

Moderiert von user profile iconNarses: Bild als Anhang hochgeladen.
Moderiert von user profile iconNarses: Topic aus VCL (Visual Component Library) verschoben am Fr 19.03.2010 um 11:00


delfiphan - Do 18.03.10 21:40

Schreib die Daten in ein Array und vergleiche in einer Schleife zu welchem Arrayelement das am besten passt.


FinnO - Do 18.03.10 22:05

geht auch mit


Delphi-Quelltext
1:
if (ord('a'in [ord('a')..ord('z')]) then ...                    


platzwart - Do 18.03.10 22:19


Delphi-Quelltext
1:
if ('a' in ['a'..'z']) then ...                    


???


delfiphan - Do 18.03.10 22:29

Damit kannst du "Sch" nicht unterstützen. Ausserdem würde ich Daten/Konfiguration von Logik/Code trennen.


FinnO - Do 18.03.10 22:34

user profile iconplatzwart hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
if ('a' in ['a'..'z']) then ...                    


interessant ^^


platzwart - Do 18.03.10 23:16

uuuuups, sorry... ch: char; ... ch in [... ^^


Xearox - So 21.03.10 16:03

hmm, ich würde das in deinem Fall wirklich mit Arrays machen.

für 001 halt ein Array von A - F
002 von G - O

usw.

und wie schon vorgeschlagen, die mit einer Abfrage zu machen.
Jedoch kenne ich nur solche Methoden, mit Ord usw. hab ich bisher noch nicht gearbeitet.
Auch weiß ich nicht wirklich, wie man in einem Wort, einzelne Buchstaben ermittelt.


delfiphan - So 21.03.10 23:13

Mit Arrays einfach die Infos die du hast abspeichern. Dann in einer Schleife die Arrayelemente durchgehen und das passende Arrayelement rausschreiben. Wie du das (besonders mit dem Sch) implementieren willst kann ich dir nicht sagen. Mir scheint deine Definition inkonsistenz. Wörter zwischen S und Sch gehören in keine Kategorie (?).

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
type
  TCategory = record
    Value: string;
    First: string;
    Last: string;
  end;

const
  CategoryCount = 5;

  Categories: array[0..CategoryCount - 1of TCategory =
  ((Value: '001'; First: 'A'; Last: 'F'),
   (Value: '002'; First: 'G'; Last: 'O'),
   (Value: '003'; First: 'P'; Last: 'S'),
   (Value: '004'; First: 'Sch'; Last: 'U'),
   (Value: '005'; First: 'V'; Last: 'Z'));