Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Dateien FindNext (https://www.delphipraxis.net/189120-dateien-findnext.html)

SaFu 5. Mai 2016 21:58

Dateien FindNext
 
Guten Abend,

ich versuche eine Sender"Datenbank" mit Hilfe von .ini Dateien aufzubauen, soweit funktioniert auch alles nur die Suche mit Hilfe des Edits funzt noch nicht so wirklich.

Wenn Ich z.B. ard eingebe wird auch arte gefunden was mache ich hier falsch?

Code:
procedure THauptseite.SendersucheEditKeyPress(Sender: TObject; var Key: char);
var RueckgabeFile: TSearchRec;
begin

  begin
   Dateiname:= SendersucheEdit.text;
   SenderIniFile:= TMemIniFile.Create(Ordner + '\'+ Dateiname + '.ini');
   Senderladen;
  end;

 begin
  SenderAuswahlListe.Clear;
  SetCurrentDir((ExtractFilePath(ParamStr(0)) + 'Senderdatenbank\' ));
    FindFirst(SendersucheEdit.Text + '*.ini', faDirectory , RueckgabeFile);
    SenderAuswahlListe.Items.Append(ChangeFileExt(RueckgabeFile.Name, ''));

    while FindNext(RueckgabeFile) = 0 do
      SenderAuswahlListe.Items.Append(ChangeFileExt(RueckgabeFile.Name, ''));
      FindClose(RueckgabeFile);

     end;

    if SenderSucheEdit.Text = '' then
    begin
     SenderSucheEdit.Clear;
     SenderAuswahlListe.Clear
    end;
end;
Gruß

Dalai 5. Mai 2016 22:54

AW: Dateien FindNext
 
Wieso
Zitat:

Zitat von SaFu (Beitrag 1337578)
Code:
    FindFirst(SendersucheEdit.Text + '*.ini', faDirectory , RueckgabeFile);

? Hast du für jeden Sender ein Verzeichnis mit der Extension .ini?

MfG Dalai

SaFu 6. Mai 2016 06:43

AW: Dateien FindNext
 
Nein die liegen alle in einem Verzeichnis.

jaenicke 6. Mai 2016 07:04

AW: Dateien FindNext
 
FindClose darfst du erst am Ende aufrufen, nicht nach jedem FindNext. Damit brichst du die Suche ab indem du die Ressourcen für den Suchvorgang freigibst.
Außerdem ignorierst du den Rückgabewert von FindFirst.

Hier findest du ein korrektes Beispiel:
http://www.delphibasics.co.uk/RTL.asp?Name=findfirst

Dalai 6. Mai 2016 14:18

AW: Dateien FindNext
 
Zitat:

Zitat von SaFu (Beitrag 1337601)
Nein die liegen alle in einem Verzeichnis.

Warum suchst du dann nach Verzeichnissen mit der Extension .ini?

MfG Dalai

DeddyH 6. Mai 2016 15:44

AW: Dateien FindNext
 
Ohne Eigenwerbung betreiben zu wollen: http://torry.net/quicksearchd.php?St...cher&Title=Yes (viel einfacher dürfte es nicht gehen, zumindest war das damals mein Bestreben)

Luckie 6. Mai 2016 20:09

AW: Dateien FindNext
 
Zitat:

Zitat von DeddyH (Beitrag 1337656)
Ohne Eigenwerbung betreiben zu wollen: http://torry.net/quicksearchd.php?St...cher&Title=Yes (viel einfacher dürfte es nicht gehen, zumindest war das damals mein Bestreben)

TCAD - component for writing vector graphics applications
Sicher, dass du das meinst?

DeddyH 6. Mai 2016 22:01

AW: Dateien FindNext
 
Nö, das sollte eigentlich TFileSearcher sein, ist es auf meinen Geräten auch.

Erdbär 6. Mai 2016 22:54

AW: Dateien FindNext
 
Zitat:

Zitat von DeddyH (Beitrag 1337677)
Nö, das sollte eigentlich TFileSearcher sein, ist es auf meinen Geräten auch.

Ja, passt hier auch.

Luckie 7. Mai 2016 00:15

AW: Dateien FindNext
 
Auf dem Handy jetzt auch mit den FF. Komisch. Ah. TCAD - component for writing vector graphics applications ist nur Werbung. Ich dachte das wäre das Suchergebnis. Doof gemacht.

p80286 7. Mai 2016 06:44

AW: Dateien FindNext
 
@Deddyh
Schönes Beispiel. Aber ich habe das dumpfe Gefühl, daß dem TE einige Grundlagen fehlen, um es zu verstehen.

@SaFu
dann solltest Du Dich nicht auf faDirectory beschränken. wie wäre es mit faAnyFile?

Gruß
K-H

SaFu 9. Mai 2016 20:58

AW: Dateien FindNext
 
Danke für die Antworten,

das mit dem faDirectory und faAnyFile habe ich geändert, hab ich wirklich übersehen aber irgendwie habe ich das gefühl das eine feinere Suche erst ab dem 3 Zeichen stattfindet.

Gruß

DeddyH 9. Mai 2016 21:44

AW: Dateien FindNext
 
Was sagt denn der Debugger? Da man den Key-Parameter innerhalb des Keypress-Events noch beeinflussen kann, vermute ich, dass Dein String in dem Moment einfach ein Zeichen zu kurz ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 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