![]() |
String-Problem
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:
Wie gesagt, das funktioniert.
var
PLZ: String; begin PLZ:= Copy(fMain.DatenSatz.Ort, 0,5); {Funktion extrahiert alle Buchstaben von der 0.-5. Position} Caption:= PLZ; end; 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
Delphi-Quellcode:
suchen. Mir gelingt dies nicht, da ja immer noch die restlichen Zeichen des String[50] übrigbleiben, versteht Ihr?
Datensatz.Ort
Ich hatte Folgendes versucht, hat aber nicht funktioniert:
Delphi-Quellcode:
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.
Read(fMain.Datei, fMain.DatenSatz);
PLZ:= Copy(fMain.Datensatz.Ort, 6, 50-6 - Length(leSuchbegriff.Text)); 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 |
Re: String-Problem
Sollte doch so gehen:
Delphi-Quellcode:
Aus der Hilfe:
Read(fMain.Datei, fMain.DatenSatz);
Ort:= Copy(fMain.Datensatz.Ort, 6,Length(leSuchbegriff.Text)); function Copy(S; Index, Count: Integer): string; oder
Delphi-Quellcode:
Trim entfernt die Leerzeichen vor und hinter dem String.
Read(fMain.Datei, fMain.DatenSatz);
Ort:= Trim(Copy(fMain.Datensatz.Ort, 6,50)); Grüße Klaus |
Re: String-Problem
... Danke, funktioniert Super!
MfG hansklok |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz