Hallo,
ich habe ein Record in einer Art Adress-Datenbank, in dem eine Variable "Ort" vom Typ String[50] deklariert ist. Nun wird in dieser Variable die PLZ und der Ortsname gespeichert. Nun habe ich in meinem Programm eine Suche eingebaut. Wird in ein Edit-Feld eine 5 stellige PLZ eingegeben, so wird zunächst die PLZ aus der Datensatzvariablen "Ort" extrahiert und zwar so:
Delphi-Quellcode:
var
PLZ: String;
begin
PLZ:= Copy(fMain.DatenSatz.Ort, 0,5); {Funktion extrahiert alle Buchstaben von der 0.-5. Position}
Caption:= PLZ;
end;
Wie gesagt, das funktioniert.
Der Ortsname beginnt demnach an Position 6 (mit Leerzeichen). Nun soll folgendes geschehen: Vom Ortsnamen, den der User ins Suchfeld eingibt, soll zunächst die Länge (Length) des Strings ermittelt werden. Nun soll eine Funktion, die ich noch nicht kenne (auf die Erkenntnis warte ich ja nun) nach Ortsnamen aber Position 6 des
Datensatz.Ort
suchen. Mir gelingt dies nicht, da ja immer noch die restlichen Zeichen des String[50] übrigbleiben, versteht Ihr?
Ich hatte Folgendes versucht, hat aber nicht funktioniert:
Delphi-Quellcode:
Read(fMain.Datei, fMain.DatenSatz);
PLZ:= Copy(fMain.Datensatz.Ort, 6, 50-6 - Length(leSuchbegriff.Text));
50-6 bedeutet, dass der String aus 50 Zeichen besteht und leider auch so gespeichert wird und 50-6 bedeutet, dass ja die PLZ noch abgezogen werden muss. Minus die Länge das Ortsnamen um auf die Position des letzten Buchstaben des Ortsnamen im besagten String[50] zu kommen. Aber es funktioniert einfach nicht.
Ich hoffe Irgendjemand hat das Problem verstanden, ich weiß, dass es sehr unverständlich beschrieben ist. Es geht darum, dass z.B. jemand in ein Suchfeld Berlin eingibt und wir gehen mal davon aus, dass Berlin in der Datenbank gespeichert ist. Nun muss also aus dem Datensatz und dessen Variable Ort der Ortsname extrahiert werden:
z.B. "12209 Berlin
______________________________________"
____: Diese Zeichen müssten sozusagen entfernt werden und natürlich die PLZ und das Leerzeichen vor dem Ortsnamen. Das Ganze müsste nun in einer Stringvariable gespeichert werden, die auf die Gleichheit mit dem Ortsnamen im Suchfeld zu prüfen wäre. Bitte gebt mir nen Tipp, wie ich das hinbekommen kann.
Danke, MfG
hansklok