Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Dateien mit Platzhaltern öffnen (https://www.delphipraxis.net/77110-dateien-mit-platzhaltern-oeffnen.html)

pilic 14. Sep 2006 18:18


Dateien mit Platzhaltern öffnen
 
Na ihr?

also ich hätt' da mal wieder ein kleines Problem. Ich soll ein kleines Programm schreiben, das Adressdaten von Bestellungen (in Form von Inis, die per e-mail geschickt werden von einem Formmailer, der im Online-Shop integriert ist). In eine Temp-Datei für ein weiteres Programm, das die Daten aus der temporären Datei ausliest und Sie auf Paketscheine druckt. Also das mit dem reinschreiben wird kein Problem.

Also jetzt meine eigentliche Frage :wiejetzt: ? Wie kann ich Inis nacheinander auslesen, obwohl ich die Dateinamen nicht kenne.
Beispiel für Dateinamen:
19684475729.ini

Auf diese Dateien soll mit Hilfe von Platzhaltern nacheinander zugegriffen werden.

Cheerio

stz 14. Sep 2006 18:23

Re: Dateien mit Platzhaltern öffnen
 
Such mal nach Delphi-Referenz durchsuchenFinFirst und Delphi-Referenz durchsuchenFindNext.

Um zu prüfen, ob eine Datei z.B. zu 12??13*.ini passt kann ich PathMatchSpec empfehlen.

Gruß
Malte

pilic 14. Sep 2006 18:34

Re: Dateien mit Platzhaltern öffnen
 
das ist schon mal nicht schlecht! ICh habe jetzt aber noch nicht so ganz verstanden, wie das laufen soll, wenn das Programm herausfinden soll, wie viele Dateien ausgelesen werden. Ich würde jetzt mal vermuten, dass das mit "if exist" und for-Schleifen geht. Könntet ihr mir bitte sagen, ob das so funktioniert, weil ich im Moment immer noch beim Brainstorming :gruebel: bin.

himitsu 14. Sep 2006 18:44

Re: Dateien mit Platzhaltern öffnen
 
PathMatchSpec ist garnicht nötig ... sowas hat FindFirst ja schon eingebaut.

z.B. einfach im nach Path + '*.ini' suchen lassen.

[add]
wenn du bei FindForst die Maske angibst, dann werden nur die passenden Dateien gefunden :zwinker:

stz 14. Sep 2006 18:53

Re: Dateien mit Platzhaltern öffnen
 
Aus Faulheit kopier ich dir jetzt einfach mal, wie ich das schon ein paar mal gemacht habe in der Hoffnugn, das dir das hilft:
Delphi-Quellcode:
function PathMatchSpec; external 'shlwapi.dll' name 'PathMatchSpecA';

procedure Search;
var
  Path, Filter: String;
  F: TSearchRec;
begin
Path := 'C:\Pfad\zu\deinen\Dateien\';
Filter := '*.ini;??-??-??.txt';

if FindFirst(Path + '*.*', faAnyFile, F) = 0 then
  repeat
    if (F.Attr and faDirectory) = 0 then
      if PathMatchSpec(PChar(F.Name), PChar(Filter)) then
        TuIrgendwasIntelligentes(Path + F.Name);
  until FindNext(F) <> 0;

end;
Gruß
Malte

PS: Sehe gerade den roten Kasten: Für so einfache Filter gehts so natürlich auch, aber ich dachte, es sollen die echten Windows-Wildcards her...

//Edit: Mist, Deklarationen nicht ordentlich angepasst

himitsu 14. Sep 2006 18:59

Re: Dateien mit Platzhaltern öffnen
 
FindFirst kennt ? und *, also kein Problem :zwinker:

pilic 14. Sep 2006 19:03

Re: Dateien mit Platzhaltern öffnen
 
Okay danke.

Das wars dann mal für heut denk ich.

Cheerio :dancer:

stz 17. Sep 2006 13:25

Re: Dateien mit Platzhaltern öffnen
 
Zitat:

Zitat von himitsu
FindFirst kennt ? und *, also kein Problem :zwinker:

Oh, stimmt tatsächlich. :oops:
Delphi-Quellcode:
Filter := '*.ini;??-??-??.txt';
geht dann nicht mehr, aber das wird hier wohl auch gar nicht gebraucht. Dann ist meine Lösung natürlich ein bischen kompliziert.

Gruß
Malte


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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-2025 by Thomas Breitkreuz