![]() |
Suche in .txt
folgendes ein Programm das schreibt Postleitzahl und Ort in eine .txt datei und speichert diese beim start lädt es sie wieder. So jetzt habe ich eine Suche implementiert so das ich wenn ich PLZ eingebe mit der Ort genannt wird. Nur leider habe ich keine Ahnung wie ich das Machen kann. Hoffe jemand weiß wie
|
Re: Suche in .txt
Wie ist die Datei denn aufgebaut... Wenn so:
67655=Kaiserslautern 60123=Kein Ahnung Würd ich die ganze Datei in ein TStringList laden und über Values['67655'] die korrespondierende Stadt suchen, am besten wenn die Liste noch nach Postleitzahlen sortiert ist. |
Re: Suche in .txt
Du könntest die Datei so anlegen:
Code:
Jetzt lädst du die Dateiin eine Stringlist o.ä. und suchst mit pos den passeden STring und kopierst den Text nach dem Leerzeichen.
123456 Delphi-City
654321 KleinesKaff // Ein bischen auf die Grammatik in den Fragen zu achten ist auch nicht schlecht :mrgreen: |
Re: Suche in .txt
Code:
Mein Code fürs speichern
procedure TForm1.Button1Click(Sender: TObject);
var Zeichenanzahl:integer; Datei: Textfile; s_text: string; begin AssignFile (Datei, 'info_neu.txt'); Rewrite (Datei); Zeichenanzahl:=1; s_text:= edit1.text + edit2.text; while (Zeichenanzahl <= length (s_text)) do begin write (Datei, s_text[Zeichenanzahl]); inc (Zeichenanzahl) end; CloseFile (Datei); end; end.
Code:
Der Code fürs laden möchte ich ins Formcreate stellen damit beim Prog start die Daten geladen werden nur halt funnktioniert dieser Code nicht
var Datei: Textfile;
s_Text: string[50]; zeichen: char; Zeichenanzahl: integer; begin AssignFile (Datei, ’info’); Reset (datei); Zeichenanzahl:= 0; s_Text:= ’ ’; while (not Eof (datei) ) do read (Datei, zeichen); s_text:= s_text + Zeichen; inc (Zeichenanzahl); end; Edit1.text:= s_text; // hier das funzt net end; Gruß und Hoffnung auf Hilfe |
Re: Suche in .txt
Hallo tobiasw,
am einfachsten wäre es, aus der txt-Datei eine ini zu machen. Die erste Zeile muss dann einfach
Code:
lauten (oder etwas anderes, wichtig aber ein Text in eckigen Klammern.
[PLZ
Anschließend kannst du mit ![]()
Delphi-Quellcode:
Wenn du in der Ini statt PLZ was anderes schreibst, dann musst du auch den entsprechenden Text in IniFile.ReadString ändern. Mehr dazu sagt dir die Online-Hilfe.
uses IniFiles;
//... function GetLocByZIP(ZIP: String): String; var IniFile: TIniFile; begin Result := ''; IniFile := TIniFile.Create(<DeinDateiPfad>); try Result := IniFile.ReadString('PLZ',ZIP,''); finally IniFile.Free; end; end; Greetz alcaeus |
Re: Suche in .txt
aber leider muss es in einer .txt Datei abgespeichert werden
|
Re: Suche in .txt
Hallo tobiasw,
du kannst der ini auch die Endung .txt geben. Wichtig ist nur die erste Zeile mit den eckigen Klammern, da (jedenfalls soweit ich weiß) eine Section in der Ini-Datei vorhanden sein muss. Greetz alcaeus |
Re: Suche in .txt
Zitat:
Die Daten sind vom Jan/2005. Es sind 39705 Datensätze. |
Re: Suche in .txt
Zu inis noch was:
![]() |
Re: Suche in .txt
Zitat:
Da sind viele faule sachen drin, zum einen mal die Deklaration von s_Text ... wieso nur 50 Zeichen? und das andere was mal auf den ersten Blick auffällt, wenn man mal übersieht, dass nichts abgesichert ist durch try finally oder try except, die datei wird auch nicht zugemacht. (closefile) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 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