View Full Version : QNTC verarbeiten
Ich habe eine Verzeichnis eingebunden auf das die SPS Steuerungen alle paar Minuten Dateien ablegen.
Format DATEINAME-ZEITSTEMPEL.txt
Der Dateiname ist immer gleich!
Kann mir jemand einen Tipp geben, wie ich am einfachsten herausbekomme welche Dateien vorhanden sind und diese dann in eine PF bekomme. (oder die Inhalte in einem RPG verarbeiten kann)
Die Dteien im QNTC sollen dann gelöscht werden.
Klaus
Wie immer gibts viele Möglichkeiten:
CRTPF MYLIB/STDOUT RCDLEN(256)
OVRDBF FILE(STDOUT) TOFILE(MYLIB/STDOUT)
QSH CMD('ls /QNTC/Pfad/*.txt')
Anschliessend die Datei STDOUT abarbeiten. Aus dem QNTC kopierst du am Besten wieder per QSH mit dem cp-Befehl ins lokale IFS und von dort dann per CPYFRMSTMF/CPYTOIMPF in eine PF.
Per DEL '/QNTC/Pfad/Datei.txt' löscht du die Datei.
Danke Fuerchau das war genau der richtige Tipp.
Gibt es einen Befehl der mir mehrer im Dateien noch im QNTC zu einer zusammenkopiert.
ungfähr wie DOS : copy aaaa*.txt bbb.txt
der cpy nimmt immer nur eine Datei.
damit kann ich aber leben wen ich Informationen zu den vorhanden Dateien habe.
Klaus
Das kann am besten die QSH:
QSH CMD('cat /QNTC/Verz/*.txt >/Home/Verz/NeueDatei.txt')
Alternativ geht auch der cp-Befehl:
cp Datei1 Ziel
cp Datei1 Datei2 Ziel
cp *.txt Ziel
Das letzte Argument des cp-Befehls ist die Zieldatei, also:
QSH CMD('cp /QNTC/Verz/*.txt /Home/Verz/NeueDatei.txt')
Danke Fuerchau,
das hat alles geklappt.
Man lernt nie aus. Und da hat diese Woche jemand zu mir gesagt, diese "doofe schwarze Kiste stirbt doch sowieso bald"
:-)
Klaus
Noch eine Frage
hat qsh beschränkungen im Dateinamen?
die namen sind leider Lang
rm /home/me/LackLeistung_20101007_132243.csv
bei diesem Befehl werden alle Dateien gelöscht die in den ersten Zeichen (keine Ahnung wieviel verglichen wird) gleich sind!
auch ein
QSH CMD('mv +
/qntc/xxxx/daten/mechanik/*.CSV +
/home/me')
bringt kein Ergebnis
nur
QSH CMD('mv +
/qntc/xxxx/daten/mechanik/Lack*.* +
/home/me')
funktioniert!
Klaus
Eigentlich gibts da keine nennenswerte Beschränkung.
Aber probier vorher einen "cd /Pfad".
Du kannst mehrere Befehle mit ";" trennen, als:
QSH CMD('cd /QNTC/Pfad;ls *.csv')
Beachte dabei, dass dann der Dateiname ohne Pfad ausgegeben wird.
Ich habe nur festgestellt, dass der "rm" casesensitive scheint.
Du kannst die QSH auch im Dialog startet und die Befehle manuell ausprobieren.
Danke Baldur, das war es.
Groß/Kleinschreibung beachten dann gehts.
als ls *.CSV
Klaus