- Beiträge: 1
Dateipfad ohne Dateinamen
- Anika
- Autor
- Offline
- Benutzer
-
Weniger
Mehr
4 Tage 6 Stunden her #5493
von Anika
Dateipfad ohne Dateinamen wurde erstellt von Anika
Hallo Herr Stark,kann ich den Pfad auf der Read Seite (links) auch mit *.csv anlegen?Leider bekommen ich die Rückmeldung „TextFileAdapter:Datei [*.csv] nicht vorhanden.Im Verzeichnis befindet sich nur eine .csv Datei, die ich gerne direkt nutzen würde.Kann ich einen Pfad anlengen, ohne mich auf einen Dateinamen festzulegen?
VG Anika
VG Anika
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
-
- Offline
- Administrator
-
Weniger
Mehr
- Beiträge: 2142
4 Tage 4 Stunden her #5494
von FlowHeater-Team
gruß
Robert Stark
FlowHeater-Team antwortete auf Dateipfad ohne Dateinamen
Hallo Anika,
der TextFile Adapter kann in der Konfiguration im Designer keine Wildcards verarbeiten. Über dem Batch Modul wäre es möglich die Definition für alle CSV-Dateien eines Verzeichnisses ausführen zu lassen.
z.B.
FHBatch.exe /ReadFileName C:\Temp\*.csv Import.fhd
Mit diesem Befehl würden alle CSV-Datei im Verzeichnis C:\Temp mit der FlowHeater Definition „Import.fhd“ verarbeitet werden.
Workaround) Wenn Ihre Eingabedatei immer wieder unterschiedliche Namen hat und Sie diese ohne Änderung der Definition ausführen möchten, können Sie folgendermaßen vorgehen.
Sie ziehen einen .NET Script Heater auf den Designer ein, kopieren untenstehendes C# Skript hinein und stellen die Option „Ausführen bei“ auf „Start“. Im Skript müssten Sie noch in der zweiten Zeile (siehe Kommentar) den Pfad anpassen, wo nach der CSV-Datei gesucht werden soll, das war´s.
Das Skript wird dann vor der Ausführung einmalig aufgerufen, sucht nach einer CSV-Datei im angegebenen Verzeichnis und ersetzt die erste gefunden CSV-Datei im TextFile Adapter auf der READ-Seite.
Achtung: Es wird nur die erste gefundene CSV-Datei verarbeitet. Der Aufbau der CSV-Datei muss hier natürlich auch den ursprünglich gemachten angaben entsprechen!
Im Anhang finden Sie ein kleines Beispiel.
C# Skript um erste CSV Datei eines Verzeichnisses zu verarbeiten
der TextFile Adapter kann in der Konfiguration im Designer keine Wildcards verarbeiten. Über dem Batch Modul wäre es möglich die Definition für alle CSV-Dateien eines Verzeichnisses ausführen zu lassen.
z.B.
FHBatch.exe /ReadFileName C:\Temp\*.csv Import.fhd
Mit diesem Befehl würden alle CSV-Datei im Verzeichnis C:\Temp mit der FlowHeater Definition „Import.fhd“ verarbeitet werden.
Workaround) Wenn Ihre Eingabedatei immer wieder unterschiedliche Namen hat und Sie diese ohne Änderung der Definition ausführen möchten, können Sie folgendermaßen vorgehen.
Sie ziehen einen .NET Script Heater auf den Designer ein, kopieren untenstehendes C# Skript hinein und stellen die Option „Ausführen bei“ auf „Start“. Im Skript müssten Sie noch in der zweiten Zeile (siehe Kommentar) den Pfad anpassen, wo nach der CSV-Datei gesucht werden soll, das war´s.
Das Skript wird dann vor der Ausführung einmalig aufgerufen, sucht nach einer CSV-Datei im angegebenen Verzeichnis und ersetzt die erste gefunden CSV-Datei im TextFile Adapter auf der READ-Seite.
Achtung: Es wird nur die erste gefundene CSV-Datei verarbeitet. Der Aufbau der CSV-Datei muss hier natürlich auch den ursprünglich gemachten angaben entsprechen!
Im Anhang finden Sie ein kleines Beispiel.
C# Skript um erste CSV Datei eines Verzeichnisses zu verarbeiten
Code:
// Hier den Pfad anpassen
string pfad = @"C:\temp\";
public object DoWork()
{
// Alle Dateien passend zum Wildcard suchen
string[] files = Directory.GetFiles(pfad, "*.csv");
if (files.Length < 1)
throw new Exception("Keine passende Datei gefunden!");
// Erste gefundene Datei im TextFile Adapter der READ Seite setzen
// Achtung: Muss dem gelichen Aufbau wie angegeben entsprechen!
TextFileAdapter adapter = (TextFileAdapter)AdapterRead;
adapter.Filename = files[0];
// Rückgabe wird bei Ausführen bei nicht benötigt
return null;
}
gruß
Robert Stark
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
-
- Offline
- Administrator
-
Weniger
Mehr
- Beiträge: 2142
3 Tage 14 Stunden her #5495
von FlowHeater-Team
gruß
Robert Stark
FlowHeater-Team antwortete auf Dateipfad ohne Dateinamen
Hallo Anika,
hier ein angepasstes C# Skript, das den aktuellen Pfad inkl. Erweiterung aus dem TextFile Adapter der READ-Seite verwendet. So müssen keine weiteren Änderungen am Skript vorgenommen werden, einfach nur auf dem Designer platzieren
hier ein angepasstes C# Skript, das den aktuellen Pfad inkl. Erweiterung aus dem TextFile Adapter der READ-Seite verwendet. So müssen keine weiteren Änderungen am Skript vorgenommen werden, einfach nur auf dem Designer platzieren
Code:
public object DoWork()
{
// Erste gefundene Datei im TextFile Adapter der READ Seite setzen
// Achtung: Muss dem gelichen Aufbau wie angegeben entsprechen!
TextFileAdapter adapter = (TextFileAdapter)AdapterRead;
string pfad = Path.GetFullPath(adapter.Filename);
string ext = "*" + Path.GetExtension(pfad);
pfad = Path.GetDirectoryName(pfad);
// Alle Dateien passend zum Wildcard suchen
string[] files = Directory.GetFiles(pfad, ext);
if (files.Length < 1)
throw new Exception("Keine passende Datei gefunden!");
else if (files.Length > 1)
throw new Exception("Mehr als eine passende Datei gefunden!");
adapter.Filename = files[0];
// Rückgabe wird bei Ausführen bei nicht benötigt
return null;
}
gruß
Robert Stark
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.183 Sekunden