AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Suche in .txt

Ein Thema von tobiasw · begonnen am 9. Feb 2005 · letzter Beitrag vom 9. Feb 2005
Antwort Antwort
tobiasw

Registriert seit: 11. Nov 2004
156 Beiträge
 
Delphi 2005 Architect
 
#1

Suche in .txt

  Alt 9. Feb 2005, 16:20
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
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Suche in .txt

  Alt 9. Feb 2005, 16:32
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.
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Suche in .txt

  Alt 9. Feb 2005, 16:34
Du könntest die Datei so anlegen:

Code:
123456 Delphi-City
654321 KleinesKaff
Jetzt lädst du die Dateiin eine Stringlist o.ä. und suchst mit pos den passeden STring und kopierst den Text nach dem Leerzeichen.

// Ein bischen auf die Grammatik in den Fragen zu achten ist auch nicht schlecht
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
tobiasw

Registriert seit: 11. Nov 2004
156 Beiträge
 
Delphi 2005 Architect
 
#4

Re: Suche in .txt

  Alt 9. Feb 2005, 16:38
Code:
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.
Mein Code fürs speichern

Code:
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;
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

Gruß und Hoffnung auf Hilfe
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: Suche in .txt

  Alt 9. Feb 2005, 16:40
Hallo tobiasw,

am einfachsten wäre es, aus der txt-Datei eine ini zu machen. Die erste Zeile muss dann einfach
Code:
[PLZ
lauten (oder etwas anderes, wichtig aber ein Text in eckigen Klammern.
Anschließend kannst du mit Delphi-Referenz durchsuchenTIniFile drauf zugreifen:

Delphi-Quellcode:
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;
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.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
tobiasw

Registriert seit: 11. Nov 2004
156 Beiträge
 
Delphi 2005 Architect
 
#6

Re: Suche in .txt

  Alt 9. Feb 2005, 16:47
aber leider muss es in einer .txt Datei abgespeichert werden
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#7

Re: Suche in .txt

  Alt 9. Feb 2005, 16:48
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: Suche in .txt

  Alt 9. Feb 2005, 16:55
Zitat von tobiasw:
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.
Wenn du magst kann ich dir alle Postleitzahlen und Orte in Deutschland in einer Datei schicken.
Die Daten sind vom Jan/2005. Es sind 39705 Datensätze.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#9

Re: Suche in .txt

  Alt 9. Feb 2005, 17:08
Zu inis noch was: www.dsdt.info/tutorials/ini
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Suche in .txt

  Alt 9. Feb 2005, 17:25
Zitat von tobiasw:
Code:
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.
Mein Code fürs speichern

Code:
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;
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

Gruß und Hoffnung auf Hilfe

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)
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz