![]() |
Re: String an Position x ausgeben lassen
Der Code von mir oben liefert dir doch direkt die Zeile, in der die PLZ gefunden wurde. Diese ist noch in der Variablen aline gespeichert, wenn die Schleife verlassen wird. Das einzige was du noch machen müsstest ist, aus der Zeile den Stadtnamen zu isolieren. Dafür würd ich mir z.B. mal ansehen, mit welchem Zeichen die PLZ etc. getrennt sind in der Datei. Ich schätze mal, es ist ein Tabulator. Dann trennst du die Zeile anhand des Tabulators auf, und schon hast du deinen Stadtnamen.
Ist vielleicht nicht die performanteste Lösung, aber auf jedenfall einfacher zu verstehen als der Code, den du eben gepostet hast. @ himitsu: Okay, wir haben ja alle genug speicher dafür, aber im Grunde ist die Datei doch ein bisschen sehr groß, um sie komplett in den Speicher zu laden... //edit: Okay, es sind keine Tabulatoren als Trennzeichen, sondern Leerzeichen. Aber die Position (Anzahl der Zeichen vom Start der Zeile) der einzelnen Einträge ist immer gleich. Den Stadtnamen kannste also z.B. so erhalten:
Delphi-Quellcode:
function PLZtoStadt(afilename:string;gesuchte_PLZ:string):string;
var T:Textfile; found_PLZ:boolean; aline:string; begin found_PLZ:=false; assignfile(T,afilename); reset(T); while (not eof(T)) and (not found_PLZ) do begin readln(T,aline); if pos(gesuchte_PLZ,aline)>0 then found_PLZ:=true; end; closefile(T); result:=trim(copy(aline,0,45)); //Liefert den Stadtnamen zurück. end; |
Re: String an Position x ausgeben lassen
Delphi-Quellcode:
Naja wenn ich das so mache weis der Code doch immer noch nicht in welcher Zeile die PLZ stehtvar T:Textfile; found_PLZ:boolean; gesuchte_PLZ:string; aline:string; begin gesuchte_PLZ:='52067'; found_PLZ:=false; assignfile(T,'bla.txt'); reset(T); while (not eof(T)) and (not found_PLZ) do begin readln(T,aline); if pos(gesuchte_PLZ,aline)>0 then found_PLZ:=true; end; closefile(T); end; |
Re: String an Position x ausgeben lassen
Die steht doch dann in aline.
|
Re: String an Position x ausgeben lassen
Zitat:
2. Habe ich dir gerade die Funktion fertig programmiert. Siehe Post #11 //edit: Danke für deine Unterstützung @DeddyH Außerdem möchte ich noch eine Anregung einwerfen: Bei meiner schönen Stadt erstrecken sich die Postleitzahlen über einen ganzen PLZ-Bereich. In der txt steht dann: Stadt XYZ XXXXX-YYYYY Wenn du eine Postleitzahl suchst, die zwischen diesen beiden Werten liegt, wirst du sie nicht finden. D.h. hier müsste man noch etwas fine-tuning machen. |
Re: String an Position x ausgeben lassen
Wenn ich mir aline in einem edit ausgeben lasse bekomme ich immer die Daten der ersten Zeile angezeigt
|
Re: String an Position x ausgeben lassen
Zitat:
|
Re: String an Position x ausgeben lassen
Jetzt hab ich es nochmal neu geschrieben und siehe da es funzt. Danke
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 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