PDA

View Full Version : CL & Hochkomma



SE
18-02-03, 15:23
Hallo,

Ich suche ein Möglichkeit bei der ein CL-Programm eine definierten Variable nicht in Hochkommas setzt:

Folgendes passiert mit den Datenträger-ID's bei dem Befehl SAV

CL:
SAV DEV('/qsys.lib/tapmlb01.devd') OBJ((&LOGFILE)) VOL(&TAPES)

der Inhalt von &TAPES wird aus einer DTAARA gelesen , aber beim Ausführen des Programms leider irgendwie mit Hochkomma's versehen:

Joblog:
SAV DEV '/qsys.lib/tapmlb01.devd') OBJ(('/verzeichnis/*.Q10302*')) VOL('NU0033 NU0035 NU0036 NU0038 NU0039 NU0041 NU0044 NU0045 NU0047 NU0048')

Die Datenträger müssen aber ohne Hochkommas eingetragen werden, da es sonst einen Syntax-Error gibt.

Kennt jemand eine Möglichkeit, wie man da ohne Hochkommas da rein bekommen kann ?

rmittag
18-02-03, 15:34
Meine Kristallkugel ist gerade ausgefallen ...

a) was steht in der DtaAra ?

b) wie wird der Inhalt gelesen ?

Gruß
Rolf

Fuerchau
18-02-03, 15:59
Hochkommata werden automatisch dann genommen, wenn die Zeichenkonstante mehrere Worte enthält, was ja hier der Fall ist.

Übrigens, ob ein Zeichenparameter in Hochkomma oder nicht angegeben wird, ist vollkommen egal, Hauptsache die Länge wird nicht überschritten.
An das Programm wird der Wert immer ohne Hochkomma weitergegeben.

Der Parameter VOL enthält aber eine Werteliste !

Diese Werteliste kann nicht in EINEM Feld übergeben werden sondern muss so:

...VOL(&F1 &F2 &F3 &F4 ....)

angegeben werden.

Wenn die Anzahl nicht bekannt ist, mußt du das Kommando in einer Variablen mit CHGVAR zusammenbauen und dann per CALL QCMDEXC ausführen.

SE
18-02-03, 23:08
In der DTAARA stehen auch nur ab einer bestimmten Postition die Datenträger-ID's mit Leerzeichen (wie oben im Joblog) drin - ohne Hochkomma's.
Sie wird einfach mit RTVDTAARA (und berechneten Offsetpositionen) in einem Stück ausgelesen (gibt es denn noch eine andere Möglichkeit ?).

<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>
Der Parameter VOL enthält aber eine Werteliste !

Diese Werteliste kann nicht in EINEM Feld übergeben werden sondern muss so:

...VOL(&F1 &F2 &F3 &F4 ....)

angegeben werden.
[/quote]

Daher wird es wohl mit den Hochkommas nicht gehen ? Schaut erstmal logisch aus - werde es morgen mal ausprobieren. Ist zwar etwas umständlicher als es in einem Stück zu verwenden, aber wenn es damit klappt ist mir damit sehr geholfen.

Vielen Dank !

http://www.as400-forum.de/ubb/smile.gif