AGB  ·  Datenschutz  ·  Impressum  







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

Postleitzahl mit Ort verknüpfen

Ein Thema von Steven2 · begonnen am 17. Nov 2006 · letzter Beitrag vom 18. Nov 2006
Antwort Antwort
Seite 2 von 2     12   
Steven2

Registriert seit: 17. Nov 2006
94 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Postleitzahl mit Ort verknüpfen

  Alt 17. Nov 2006, 22:12
Hallo Marabu
Zitat:
Und herzlich willkommen in der DP, Steven.
Danke für die Willkommensgrüße

Zitat:
Und noch besser, wenn du die Liste nicht bei jedem Klick auf den Button erstmal laden musst. Lade sie doch einach nur einmal zu Beginn deines Programms.
Muss ich dann zum Programmstart einfach nur die Datei so laden

Delphi-Quellcode:
var
  MyList: THashedStringList;
...
begin
  MyList := THashedStringList.Create;
  MyList.LoadFromFile(
    ExtractFilePath(Application.ExeName) + 'plzDat.txt');
...
hab's dann zum Programmende wieder freigegeben, kommt aber folgende meldung
Zitat:
---------------------------
Stack-Überlauf.
---------------------------
Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
var
  MyList: THashedStringList;
begin
 MyList.Free;
end;
Mir ist nicht ganz klar wie ich das machen muss. Ist aber auch vielleicht nicht ganz so wichtig, ist ja auch so ganz schön schnell.

Grüße
Steven
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#12

Re: Postleitzahl mit Ort verknüpfen

  Alt 17. Nov 2006, 23:52
Moin

So müsstes du das machen, um die StringList beim Programmstart einmalig zu laden und bei Programmende wieder freizugeben:
Delphi-Quellcode:
...
  private
    { Private declarations }
    MyList: THashedStringList;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  MyList := THashedStringList.Create;
  MyList.LoadFromFile(
    ExtractFilePath(Application.ExeName) + 'plzDat.txt');
...
end;

//--angepasste proc von ACE-ppc:
procedure TForm1.Button8Click(Sender: TObject);
var
  Index: Integer;
begin
    index := MyList.IndexOfName(PlzEdit.Text + ' ');
    If index > -1 Then
    OrtEdit.Text := Trim(MyList.ValueFromIndex[index]);
end;

//--jetzte erst die Liste freigeben
procedure TForm1.FormDestroy(Sender: TObject);
begin
...
   MyList.Free;
...
end;
Also im Pronzip recht simpel: MyList als private deklarieren, im FormCreate erzeugen und laden, Suchläufe beliebig oft durchführen und im FormDestroy() MyList wieder freigeben...
  Mit Zitat antworten Zitat
Steven2

Registriert seit: 17. Nov 2006
94 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Postleitzahl mit Ort verknüpfen

  Alt 18. Nov 2006, 13:10
Hallo Raiguen. Dankeschön für die Hilfe.


Eine letzte Frage habe ich doch noch zu dem Thema,
können auch andere Trenner verwendet werden anstatt
01054 = Dresden auch sowas 01054;Dresden?
ich habs versuch, bekomme aber nichts angezeigt.

Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var
  MyList: THashedStringList;
  Index: Integer;
begin
   MyList := THashedStringList.Create;
   MyList.LoadFromFile(
   ExtractFilePath(Application.ExeName) + 'plzdat.txt');
  try
    index := MyList.IndexOfName(Plz_edit.Text + ' '); // hier hab ich schon einiges ausprobiert
    If index > -1 Then
    Ort_edit.Text := Trim(MyList.ValueFromIndex[index]);
 finally
     MyList.Free;
  end;
end;
Grüsse, Steven
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#14

Re: Postleitzahl mit Ort verknüpfen

  Alt 18. Nov 2006, 15:49
Hallo Steven,

das Trennzeichen ist standardmäßig ein Gleichheitszeichen, aber du kannst über die Eigenschaft NameValueSeparator auch fast jedes andere Zeichen einstellen. Die Tatsache, dass es sich um ein einziges Zeichen handelt, ist auch Schuld daran, dass ich beim Suchen eine Leerstelle anhängen und beim gefundenen Eintrag die führende Leerstelle mit Trim() entfernen musste.

Freundliche Grüße
  Mit Zitat antworten Zitat
Steven2

Registriert seit: 17. Nov 2006
94 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Postleitzahl mit Ort verknüpfen

  Alt 18. Nov 2006, 19:01
Hallo marabu
und schon wieder was gelernt.
[EDIT]
funktioniert super

Danke
Steven
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 13:32 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