CIB merge technischer Leitfaden
6. Aufrufparameter im Detail
6.25. Parameter --directory-write
Der Befehl --directory-write=<virtueller Dateiname>=<Dateiname> schreibt den Inhalt von <virtueller Dateiname> aus dem virtuellen Verzeichnis in die Datei <Dateiname>. Etwa angegebene Schalter +/-/! usw. werden nicht in den Namen übernommen.
Syntax
--directory-write=<virtueller Dateiname>=<Dateiname>
Beispiele
--directory-set=out=out.log --directory-write=out.log=!out.log
Die virtuelle Datei mit dem Namen out.log wird genommen und der Inhalt in out.log geschrieben
- Gegenüberstellung: dateibehaftete und dateilose
Dateneingabe
Ausgehend von einem klassischen dateibehafteten Beispiel werden Alternativen mit den eben genannten Mitteln vorgestellt.
Die Ausgabe des RTF kann dateilos mit in anderen Dokumenten beschriebenen Mitteln erfolgen und wird hier nicht erwähnt!
- Java Mischauftrag (Merge-Job) und Abholung des
Fehlertextes und der Fehlernummer
Dateneingabe mit Datei:
Die daten.csv soll in die Eingabe input.rtf gemischt werden. Die Ausgabe heißt output.rtf. Fehler kommen in merge.log. Alle Dateien befinden sich im Dateisystem unter Verzeichnis test.
JCibMergeJob t_Job = new JCibMergeJob(); t_Job.initialize(); t_Job.setProperty(ICibMergeJob.PROPERTY_WORKSPACE, "test\\"); t_Job.setProperty(ICibMergeJob.PROPERTY_ERRORFILE, "merge.log"); t_Job.setProperty(ICibMergeJob.PROPERTY_DATAFILE, "daten.csv"); t_Job.setProperty(ICibMergeJob.PROPERTY_INPUTFILE, "input.rtf"); t_Job.setProperty(ICibMergeJob.PROPERTY_OUTPUTFILE, "output.rtf"); t_Job.execute(); int error = ((Integer)t_Job.getProperty(ICibMergeJob.PROPERTY_ERROR)).intValue(); if(error > 0) { String errortext = (String)t_Job.getProperty(ICibMergeJob.PROPERTY_ERRORTEXT); }
Dateneingabe ohne Datei:
Nur daten.csv soll im ersten Schritt dateilos übergeben werden. Der Inhalt sei in der String Variable csv_data. Hierfür wird folgende zusätzliche Property gesetzt. (Der Rest bleibt unverändert)
t_Job.setProperty(ICibMergeJob.PROPERTY_DICTIONARY_SET, "daten.csv=" + csv_data);
- Mischauftrag über Parameterdatei (Java, C++ oder
COModSuite)
Dateneingabe mit Datei:
Inhalt der Datei merge.par:
-L!merge.log -V -Ddaten.csv -Iinput.rtf -O!output.rtf -M@ -@1 -MEnde
Logdatei bestimmen
Version melden
Daten-, Ein- und Ausgabedateien bestimmen
Dateinamen melden
Einzeldokument mischen
Rufen Sie „cibmrg32.exe -@merge.par“ auf, um den Auftrag zu starten.
Dateneingabe ohne Datei:
Analog zum Fall in Java ist das in der Parameterdatei auch möglich:
Die Parameterdatei merge.par muss um folgende Angabe ergänzt werden (Rest bleibt unverändert)
--dictionary-set-inline=daten.csv Var1;Var2;Var3…
Wert1.1;Wert1.2;Wert1.3… Wert2.1;Wert2.2;Wert2.3… … end-of-file
- Auftrag aus C++
Dateneingabe mit Datei:
const char *const arguments[]= { „cibmerge“, „-L!merge.log“, „-Ddaten.csv“, „-Iinput.rtf“, „-O!output.rtf“, 0 }; cibmerge(sizeof(arguments)/sizeof(*arguments) – 1, arguments);
Dateneingabe ohne Datei:
Hier werden die Daten in Stringkonstanten übergeben. Eine bessere Möglichkeit wäre es, sie über stringstreams der STL dynamisch zusammenzustellen:
Die Argumente müssen um folgende Angabe erweitert werden (Rest bleibt unverändert):
„--dictionary-set=daten.csv\n“ „Var1;Var2;Var3…\n“ „Wert1.1;Wert1.2;Wert1.3…\n“ „Wert2.1;Wert2.2;Wert2.3…\n“ „…\n“