2016-09-20 6 views
0

Ich habe DateiCobol Schreib Form-Feed char Datei

definiert
  select bankd-file assign to f-bankd-file 
       file status is wx-fstat 
       organization line sequential. 
    fd bankd-file. 
    **************** 
    01 bankd-rec    pic x(80). 

Und ich für Zeile in diese Datei Zeile schreibe, nur einfach mit Schreibbefehl. Und in einer Zeile muss ich auch den Zeichenvorschub schreiben. Dieses Zeichen habe ich definiert als

Aber in der Ausgabedatei habe ich vor Form-Feed Char NUL char. Bitte, wie kann ich diesen NUL-Char entfernen? Andere Zeichen werden ohne Probleme geschrieben. enter image description here

+1

Könnten Sie tri Ich bitte um dieses Bild? Haben Sie in Ihrer Dokumentation ADVANCING unter WRITE angeschaut? Sehen Sie sich die Beschreibung einer "sequentiellen" Datei an. Sie können keine "Nicht-Text" -Daten darin schreiben. –

Antwort

2

Die Frage gibt nicht den verwendeten COBOL-Compiler an, daher können wir nur raten. Verschiedene Compiler enthalten eine x'00' vor "Nicht-Text-Daten", um sicherzustellen, dass es richtig eingelesen werden kann (dies geschieht hauptsächlich, wenn jemand versucht, ein COMP Artikel zu schreiben, der Zeilenumbrüche und/oder Formular-Feeds enthalten kann).

Diese kann nicht möglich sein, mit dem Compiler aber normalerweise würden Sie tun:

WRITE bankd-rec FROM SPACES BEFORE ADVANCING PAGE 

(keine Notwendigkeit für die FROM SPACES, wenn Sie tun, um diese BEFORE/AFTER den Datensatz, den Sie tatsächlich die form- haben wollen einspeisen)

0

Für Micro Focus COBOL, Sie ausschalten x "00" vor dem nicht-Test-Daten, die durch die INSERTNULL=OFF im extfh.cfg mit