Dateien an C Programm übergeben
-
Hallo zusammen,
ich habe ein Programm geschrieben, dass die Eingabe aus einer Datei liest...
um das Programm zu testen, stehen mir mehrere tausend Dateien zur Verfügung. Es ist ja allerdings sehr umständlich, es mehrere tausend male zu starten und jedes mal eine andere Datei mitzugeben. Gibt es eine Möglichkeit ein Skript zu schreiben, dass ein Verzeichnis bekommt und das Programm dann mehrere male nacheinander mit allen Dateien in diesem Verzeichnis testet..? Falls ja: Ist es schwierig und wie geht es? Danke schonmal an alle die sich auskennen.
-
Das kannst du mit einem Shell-Script bzw. einer Batchdatei machen.
Hängt von deinem Betriebssystem ab.Bei Windows hast du eine Batchdatei (.bat oder .cmd)
Da musst du dir mal das for Kommando ansehen.Hilfe dazu findest du auch bei Windows selber.
-
DirkB schrieb:
Das kannst du mit einem Shell-Script bzw. einer Batchdatei machen.
Hängt von deinem Betriebssystem ab.Bei Windows hast du eine Batchdatei (.bat oder .cmd)
Da musst du dir mal das for Kommando ansehen.Hilfe dazu findest du auch bei Windows selber.
Ich benutze Linux... weißt du wo ich da ein Beispiel finden kann?
-
Such mal nach opendir, readdir ... dirent.h.
-
Bei Linux macht die Shell schon die Wildcardexpansion.
Wenn du dein Programm z.B. mit
./deinproramm *.dat
aufrufst, setzt die Shell selber alle Dateienamen in den Aufruf, die auf *.bat passen.
Bei Windows ist das nicht so.
Evtl reicht es daher bei deinem Programm das Handling mit argv etwas anzupassen.Zur ersten Übersicht evtl. http://de.wikibooks.org/wiki/Linux-Kompendium:_Shellprogrammierung
-
Wenn du dein Programm lieber mehrmals nacheinander mit jeweils einer Datei als Argument aufrufen willst, anstatt mit allen gleichzeitig (wie in DirkBs Vorschlag), würde das hingegen so funktionieren:
for datei in /verzeichnis/*; do deinprogramm "$datei" done
btw: bin ich blind oder gibt es hier tatsächlich spezielle Codetags mit Syntaxhighlighting für XAML, C++/CLI und Delphi, aber nicht für die Unix-Shell?