-
Mit dem DOFOR hab ich bis jetzt noch nichts gemacht. Aber du könntest dieses Programm von einem anderen mehrmals aufrufen lassen, jedes Mal mit anderen Werten. Die CHGVARs mußt du natürlich entfernen wenn die Werte beim Aufruf übergeben werden. Eine Verbindung zu einer Datenstromdatei kann mit den Befehlen DEL, ERASE oder RMVLNK aufgehoben werden.
-
Ich hab mal folgendes fabriziert:
PHP-Code:
DCL VAR(&PFAD) TYPE(*CHAR) LEN(1024) VALUE('/home/') DCL VAR(&TOCCSID) TYPE(*DEC) LEN(5) VALUE(1208)
DCL VAR(&LIB1) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE1) TYPE(*CHAR) LEN(10) VALUE(ARSTAP)
DCL VAR(&LIB2) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE2) TYPE(*CHAR) LEN(10) VALUE(ARSTKP)
DCL VAR(&LIB3) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE3) TYPE(*CHAR) LEN(10) VALUE(FBSPOP)
DCL VAR(&LIB4) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE4) TYPE(*CHAR) LEN(10) VALUE(KDSTAP)
DCL VAR(&LIB5) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE5) TYPE(*CHAR) LEN(10) VALUE(KGSTAP)
DCL VAR(&LIB6) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE6) TYPE(*CHAR) LEN(10) VALUE(KOSTAP)
DCL VAR(&LIB7) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE7) TYPE(*CHAR) LEN(10) VALUE(KUKONP)
DCL VAR(&LIB8) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE8) TYPE(*CHAR) LEN(10) VALUE(LISTAP)
DCL VAR(&LIB9) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE9) TYPE(*CHAR) LEN(10) VALUE(PRSTAP)
DCL VAR(&LIB10) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE10) TYPE(*CHAR) LEN(10) VALUE(RASTAP)
DCL VAR(&LIB11) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE11) TYPE(*CHAR) LEN(10) VALUE(SOSTAP)
DCL VAR(&LIB12) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE12) TYPE(*CHAR) LEN(10) VALUE(TRSTAP)
DCL VAR(&LIB13) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE13) TYPE(*CHAR) LEN(10) VALUE(TSSTAP)
DCL VAR(&LIB14) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE14) TYPE(*CHAR) LEN(10) VALUE(TTPOSP)
DCL VAR(&LIB15) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE15) TYPE(*CHAR) LEN(10) VALUE(TTSTAP)
DCL VAR(&LIB16) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE16) TYPE(*CHAR) LEN(10) VALUE(VPSTAP)
DCL VAR(&LIB17) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE17) TYPE(*CHAR) LEN(10) VALUE(VSSTAP)
DCL VAR(&LIB18) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE18) TYPE(*CHAR) LEN(10) VALUE(VSSTPP)
DCL VAR(&LIB19) TYPE(*CHAR) LEN(10) VALUE(DBLDTA) DCL VAR(&DBFILE19) TYPE(*CHAR) LEN(10) VALUE(VTSTAP)
DCL VAR(&LIB20) TYPE(*CHAR) LEN(10) VALUE(DBLDKD) DCL VAR(&DBFILE20) TYPE(*CHAR) LEN(10) VALUE(XDINFPU)
DCL VAR(&LIB) TYPE(*CHAR) LEN(10) DCL VAR(&DBFILE) TYPE(*CHAR) LEN(10) DCL VAR(&STMF1) TYPE(*CHAR) LEN(1024) DCL VAR(&STMF2) TYPE(*CHAR) LEN(1024) DCL VAR(&LOOP) TYPE(*INT) LEN(2) VALUE(0)
DOFOR VAR(&LOOP) FROM(1) TO(20)
CHGVAR VAR(&LIB) VALUE(&LIB *TCAT &LOOP) CHGVAR VAR(&DBFILE) VALUE(&DBFILE *TCAT &LOOP) CHGVAR VAR(&STMF1) VALUE(&PFAD *TCAT &DBFILE *TCAT '.as400.csv') CHGVAR VAR(&STMF2) VALUE(&PFAD *TCAT &DBFILE *TCAT '.pc.csv') CPYTOIMPF FROMFILE(&LIB/&DBFILE) TOSTMF(&STMF1) + MBROPT(*REPLACE) STMFCODPAG(*STMF) + RCDDLM(*CRLF) FLDDLM(';')
CPY OBJ(&STMF1) TOOBJ(&STMF2) FROMCCSID(37) + TOCCSID(&TOCCSID) DTAFMT(*TEXT)
CHGAUT OBJ(&STMF1) USER(*PUBLIC) DTAAUT(*RWX) OBJAUT(*ALL) CHGAUT OBJ(&STMF2) USER(*PUBLIC) DTAAUT(*RWX) OBJAUT(*ALL)
ENDDO
Will leider nicht so ganz kompilieren:
PHP-Code:
7200- CHGVAR VAR(&LIB) VALUE(&LIB *TCAT &LOOP) * CPD0712 30 Art von Operand für Operator ungültig. * CPD0711 30 Art der Ausdrucksoperanden unterschiedlich. 7300- CHGVAR VAR(&DBFILE) VALUE(&DBFILE *TCAT &LOOP) * CPD0712 30 Art von Operand für Operator ungültig. * CPD0711 30 Art der Ausdrucksoperanden unterschiedlich.
-
Über dynamisch erzeugte Variablennamen kann man soweit ich weiß in CL nicht auf Variablen zugreifen.
Aber pack das eigentliche Kopierprogramm doch in ein eigenes Programm (Programm CPYTOCSV2) und mach ein paar CALLs anstelle des DOFORs:
PHP-Code:
CALL PGM(CPYTOCSV2) PARM(&LIB1 &DBFILE1)
CALL PGM(CPYTOCSV2) PARM(&LIB2 &DBFILE2)
CALL PGM(CPYTOCSV2) PARM(&LIB3 &DBFILE3)
CALL PGM(CPYTOCSV2) PARM(&LIB4 &DBFILE4)
CALL PGM(CPYTOCSV2) PARM(&LIB5 &DBFILE5)
...
-
Jep. So machichs. Danke für deine Hilfe.
Problem gelöst. Zwar nicht so elegant wie ich mir das erhofft hatte, aber meh.
Beggars cant be choosers 
MfG
SJürges
-
Lib ist char,
und Loop ist int.
Das geht nicht. Mußt du vorher umwandeln.
GG
Similar Threads
-
By Sony in forum IBM i Hauptforum
Antworten: 27
Letzter Beitrag: 20-07-09, 21:48
-
By schatte in forum NEWSboard Programmierung
Antworten: 19
Letzter Beitrag: 10-01-07, 11:32
-
By RLPforum in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 04-01-07, 14:58
-
By bo1 in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 23-06-06, 15:00
-
By becama in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 23-06-06, 14:46
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks