Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.000 Datensätze verarbeitet werden!
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Willkommen im FlowHeater Support Forum!

Hier werden Fragen zum Umgang mit dem FlowHeater beantwortet.

THEMA: alle Files eines Ordners einlesen

alle Files eines Ordners einlesen 4 Jahre 8 Monate her #838

  • Tim
  • Tims Avatar
  • Offline
  • Junior Member
  • Beiträge: 32
Ich bin mir fast sicher, eine ähnliche Fragestellung schonmal hier gesehen zu habe, kann sie jedoch nicht finden

Um alle *.html files eines Ordners auszuwerten, muss ich eine Mimik erstellen, die sämtliche files aus einem bestimmten Ordner liest.

Über einen FileHeater versuche ich das bereits ohne Erfolg.

Muss ich dafür tatsächlich ein Net-Heater nehmen oder ist diese Möglichkeit bereits anderweitig implementiert und ich finde sie nur nicht?

Danke
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: alle Files eines Ordners einlesen 4 Jahre 8 Monate her #839

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Tim,

ich vermute mal Sie möchten nicht einzelne HTML Dateien nacheinander über eine Definition verarbeiten? Hierzu könnten Sie die Batch Option /ReadFileName mit Wildcards verwenden.

z.B.
FHBatch.exe /ReadFileName C:\Temp\*.html import_html_files.fhd

Ansonsten führt hier kein Weg am .NET Script vorbei. Das Skript ist aber relativ klein und überschaubar :-)
string content = String.Empty;

public object DoWork()
{
  // Dateien nur einmalig einlesen
  if (content.Length == 0)
  {
    // hier Pfad und Wildcard anpassen
    string[] files = Directory.GetFiles("C:\\Temp\\", "*.html");

    if (files == null)
      return String.Empty;

    foreach (string f in files)
    {
      if (content.Length != 0)
        content += System.Environment.NewLine;

       content += File.ReadAllText(f);
    }
  }

  return content;
}

In der Anlage ist ein Beispiel wie das über Parameter optimiert werden kann.

Anhang read_html_files.zip nicht gefunden

Anhang:
gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: alle Files eines Ordners einlesen 4 Jahre 6 Monate her #935

  • Mario
  • Marios Avatar
  • Offline
  • Junior Member
  • Beiträge: 22
Hallo Herr Stark,

zu diesem Thema hätten wir nun auch eine Frage.
Wir haben letzte Woche eine Lizenz erworben und wollen nun
Batches für unsere Definitionen erstellen.

Wir laden Daten von verschiedenen FTP-Servern unserer Partner in einen TEMP Ordner. D.H. es gilt auf der Read Seite mehrere Dokumente automatisch einzulesen.
Diese Dateien haben aber leider keine Dateiendung, sie sind lediglich vom Typ "Datei". In der Definition können Sie als Textdatei behandelt werden.

Wie gehen wir nun am besten vor?
Ich habe Ihr .NET Beispiel aus diesem Thread angeschaut, wobei ich sagen muss dass ich das nicht ganz nachvollziehen kann.

Sie haben auch die Möglichkeit erwähnt das über eine Batch Option zu regeln.

Wie müsste diese aussehen um die Dateien ohne Endung einzulesen? (evtl. *.* ?)

An welcher Stelle muss das dann eingegeben werden?
In der DOS Box oder wenn wir die CMD Datei erstellen?

Vielen Dank vorab für Ihre Hilfe!

Mit freundlichem Gruss

Mario Brunner
Spedition Fink
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: alle Files eines Ordners einlesen 4 Jahre 6 Monate her #936

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Herr Brunner,

das Beispiel in diesem Beitrag ist sehr speziell. Sie müssen lediglich den Aufruf über FHBatch.exe anpassen.
z.B.
FHBatch.exe /ReadFileName C:\Temp\*.* IHRE-IMPORT-DEFINITION.fhd

So werden alle Dateien im Verzeichnis C:\Temp\ mittels der angegebenen Definition verarbeitet/importiert.
Diesen Aufruf können Sie entweder direkt im DOS Fenster (cmd.exe) eingeben oder aber in ein CMD/BAT Skript einbauen. Das Skript könnte dann zuerst Ihre Dateien vom FTP Server herunterladen und anschließend rufen Sie im Skript noch das Batch Modul auf. Wenn Sie dieses Skript über den Windows Aufgabenplaner aufrufen läuft Ihr Import vollkommen automatisiert.
gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: alle Files eines Ordners einlesen 4 Jahre 6 Monate her #939

  • Mario
  • Marios Avatar
  • Offline
  • Junior Member
  • Beiträge: 22
...danke schon mal, werde ich jetzt mal versuchen!
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: alle Files eines Ordners einlesen 4 Jahre 5 Monate her #1019

  • Mario
  • Marios Avatar
  • Offline
  • Junior Member
  • Beiträge: 22
Hallo Herr Stark,

das mit der Batch Automatisierung funktioniert bei uns noch nicht. Folgende CMD Datei habe ich angelegt:

@echo off

C:\Program Files\FlowHeater V2\BIN\FHBatch.exe
D:\SAM\Daten_DPD\*.* DPD.fhd

Zur Erläuterung:

*die FHBatch.exe liegt an exakt der Stelle wie oben angegeben

*Unter D:\SAM\Daten_DPD\ liegen mehrere .csv Dateinen, deswegen die *.* formulierung - korrekt?!

*die DPD.fhd haben wir auch in exakt diesem Ordner abgelegt - korrekt?!

*Mir ist nicht ganz klar ob man den Ort der zu lesenden Dateien angibt oder den Ablageort der .fhd Datei.
Im Video sah es so aus als gehe es um den Ort der .fhd Datei, wenn ich aber Ihren Beitrag hier im Thread richtig verstehe, muss an der Stelle auch angegeben werden welche Dateien gelesen werden sollen (*.*)
Von daher ist mir das unklar...

*Wenn ich die .cmd Datei in der DOS BOX aufrufe erhalte ich den Hinweis das "C:Program falsch geschrieben ist oder nicht aufgerufen werden kann"


*Noch ein Hinweis: Ich habe mir das Tutorial Video Batchautomatisierung angesehen. Ich konnte die
fhbatch.exe in der DOS BOX nur ausführen wenn die angesprochene .fhd datei ebenfalls im FlowHeater V2\BIN\ Ordner abgelegt war.
Ist das normal so???


Danke schon mal für ihre Hilfe!

Gruß

Mario Brunner
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: alle Files eines Ordners einlesen 4 Jahre 5 Monate her #1020

  • Mario
  • Marios Avatar
  • Offline
  • Junior Member
  • Beiträge: 22
Hallo Herr Stark,

bin mittlerweile schon ein Stück weiter!
Die .cmd lässt sich nun ausführen nachdem ich die
Pfadangabe mit " " versehen habe (Leerzeichen im Pfad!)

Sieht nun folgendermaßen aus:

@echo off

C:"Program Files"\"FLowheater V2"\bin\FHBATCH.EXE D:\SAM\Daten_DPD\*.* DPD.fhd



Was aber immer noch nicht funktioniert ist das importieren mehrerer CSV Dateien.

Wie Eingangs erwähnt müssen aus einem Order immer mehrere CSV Dateien ausgelsen werden da pro Tag ca 5 neue hinzukommen.

An welcher Stelle wird das umgesetzt?
In der .fhd Definition musste ich ja auf der Read Seite eine Datei angeben. Muss an dieser Stelle etwas geändert werden?
Habe auch schon versucht hier Order/ *.csv anzugeben
das scheint aber nicht zu funktionieren.

Wenn ich Ihren letzten Beitrag richtige lese, muss das in der .cmd Datei geregelt werden. Wie sie sehen können, habe ich das wie o.g. versucht umzusetzten, funktioniert aber nicht. -> D:\SAM\Daten_DPD\*.* DPD.fhd
Nach wie vor wird nur die eine Datei gelesen die in der Definition auf der READ seite angegeben ist.

Danke schon mal für Ihre Hilfe...

Gruß

Mario Brunner
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: alle Files eines Ordners einlesen 4 Jahre 5 Monate her #1021

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Herr Brunner,

ich habe Ihnen mal ein Batch CMD Skript erstellt, das in Ihrer Umgebung laufen sollte.
@echo off
set FHBATCH="C:\Program Files\FlowHeater V2\BIN\FHBatch.exe"
%FHBATCH% /ReadFileName D:\SAM\Daten_DPD\*.csv D:\SAM\Daten_DPD\DPD.fhd
Mit set FHBATCH=…. wird ein Platzhalter definiert der dann über %FHBACHT% die eigentliche EXE aufruft. So wird das Skript etwas übersichtlicher.

Zu Ihren Fragen)
*Unter D:\SAM\Daten_DPD\ liegen mehrere .csv Dateinen, deswegen die *.* formulierung - korrekt?!

*die DPD.fhd haben wir auch in exakt diesem Ordner abgelegt - korrekt?!
Wenn Sie nur CSV Dateien einlesen wollen sollten Sie auch *.csv angeben. Wenn die FlowHeater Defintion (.fhd Datei) im gleichen Verzeichnis liegt wird mit *.* auch versucht die Definition zu importieren was dann zu einem Fehler führt! Mit *.csv schließen Sie das aus, oder Sie müssen die FlowHeater Definition in einem anderen Verzeichnis speichern.
*Noch ein Hinweis: Ich habe mir das Tutorial Video Batchautomatisierung angesehen. Ich konnte die
fhbatch.exe in der DOS BOX nur ausführen wenn die angesprochene .fhd datei ebenfalls im FlowHeater V2\BIN\ Ordner abgelegt war.
Ist das normal so???
Generell müssen Sie für alle Dateiangaben immer Relative oder Absolute Pfadangaben verwenden. Wenn Sie die Definition ohne Pfadangabe angeben ist das eine relative Angabe zum aktuellen Verzeichnis. Das bedeutet, die .FHD Datei muss in diesem Fall im gleichen Verzeichnis sein wie die FHBatch.exe.
In meinem CMD Batch Beispiel oben werden absolute Pfadangaben verwendet. Hier ist es egal aus welchem aktuellen Verzeichnis Sie das CMD Batch Skript aufrufen.
Sie könnten z.B. auch im Batch CMD Skript vorher ins Import CSV Verzeichnis wechseln, dann bräuchten Sie für die CSV Dateien sowie für die Definition keine Pfad angeben.
z.B.
@echo off
cd d:\SAM\Daten_DPD
set FHBATCH="C:\Program Files\FlowHeater V2\BIN\FHBatch.exe"
%FHBATCH% /ReadFileName *.csv DPD.fhd
Was aber immer noch nicht funktioniert ist das importieren mehrerer CSV Dateien.

Wie Eingangs erwähnt müssen aus einem Order immer mehrere CSV Dateien ausgelsen werden da pro Tag ca 5 neue hinzukommen.

An welcher Stelle wird das umgesetzt?
In der .fhd Definition musste ich ja auf der Read Seite eine Datei angeben. Muss an dieser Stelle etwas geändert werden?
Habe auch schon versucht hier Order/ *.csv anzugeben
das scheint aber nicht zu funktionieren.
Das wird über das Batch Modul (FHBatch.exe) umgesetzt. Von hier aus wird die Definition mit der gerade aktuellen CSV Datei bestückt und ausgeführt, so oft wie CSV Dateien im Ordner vorhanden sind. In der Definition selbst brauchen Sie nichts zu ändern. Lediglich die zu importierenden CSV Dateien müssen alle das gleiche Format haben.
gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: alle Files eines Ordners einlesen 4 Jahre 4 Monate her #1024

  • Mario
  • Marios Avatar
  • Offline
  • Junior Member
  • Beiträge: 22
Guten Morgen Herr Stark,

Sie sind der Beste, nun funktioniert alles! Ich hoffe nun Sie in Zukunft nicht mehr belästigen zu müssen ;-)

Nochmal vielen Dank für Ihre Mühen. Ich musste dises Datenbank Projekt im Rahmen meiner Ausbildung realisieren und Sie waren mir dabei eine große Hilfe!

Grüße

Mario Brunner
Spedition Fink
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.090 Sekunden