PDA

View Full Version : Sonderzeichen in Dateinamen



Cobolaner
04-06-03, 12:06
Hallo an alle,

wie kann ich in einem CBL-Pgm Dateinamen verarbeiten, die ein Sonderzeichen enthalten?
z.B Datei.: KND#PF Satzname.: KND#P.
Die Datei darf nicht umbenannt werden. Habe ich überhaupt eine Chance.?
Besten Dank

RobertMack
04-06-03, 12:26
Hallo,

lege einfach eine logische Datei mit gleichem Schlüssel darüber und verarbeite die dann im CBLPGM ...

viel Erfolg,

Robert

Cobolaner
04-06-03, 12:40
Hallo Robert,
die Idee ist gut, aber das Problem ist dann der Satzname (KND#P). Da die Datei ca. 150 Felder hat und ich die nicht alle in eine neue LF eingeben möchte (habe nur das Objekt) suche ich noch eine bessere Lösung, wenn es die dann gäbe.
Besten Dank für Deine schnelle Antwort

RobertMack
04-06-03, 12:50
... ich würde es trotzdem tun (statt irgendwelcher Kopier-Aktionen):

K KNDP PFILE(*LIBL/KND#PF)
FELD1 R
FELD2 R

Die Feldnamen würde ich mir via DSPFFD, CPYSPLF und QRY "ausschneiden" und in die DDS kopieren,

viel Erfolg,

Robert

akorb
04-06-03, 12:52
Hallo,

schon mal versucht die Datei in Cobol mit COPY-DDSR-ALL-FORMATS OF Dateiname in das Programm einzubinden?
Dann sollten unbekannte Zeichen von Compiler in für Cobol lesbare Zeichen umgesetzt werden.

Fuerchau
04-06-03, 16:22
SELECT MYFILE
ASSIGN TO DATABASE-MY#FILE
:
:
FD MYFILE.
01 MYFILE-REC.
/copy-ddr-all-formats .....

Cobolaner
05-06-03, 07:28
Hallo Fuerchau,

geht leider nicht.
Wenn ich das so angebe:

SELECT MYFILE
ASSIGN TO DATABASE-MY#FILE

bekomme ich die Fehlermeldung:
Leerzeichen vor # in Spalte 50 einfügen. Zeile nicht akzeptiert.

noch'ne Idee?

Gruß Cobolaner

Fuerchau
05-06-03, 14:41
In der Assign-Klausel kann auch

ASSIGN TO "DATABASE-MY#FILE"

verwendet werden.

COPY-DDR funktioniert allerdings nicht, der Satzpuffer muss manuell definiert werden.
Die Datei kann auch verarbeitet werden, es gibt allerdings KEINE LevelCheck-Prüfung, will heißen, wenn die Datei sich ändert, fällt das Programm ggf. auf die Nase.

PS:
Das mit der LF funktioniert auf jeden Fall, da der Formatname in einer PF für COBOL keine Rolle spielt bzw als Literal angegeben wird, oder hast du LF's mit mehreren Formaten ?
Dann funktioniert auch COPY-DDR-ALL-FORMATS


[Dieser Beitrag wurde von Fuerchau am 05. Juni 2003 editiert.]