PDA

View Full Version : TXT-Datei mit negativen Vorzeichen an AS400-File



TobiasHe
15-03-04, 13:14
Hallo zusammen!

Ich brauche mal etwas Hilfe....

Auf meinem PC habe eine Datei erstellt (Normale TXT ohne Trennzeichen), die ich per FTP auf unsere AS400 schieben möchte!
Das AS400-File hat z.B. von Stelle 61-75 ein nummerisches gezontes Feld (15,2)
Schiebe ich nur positive Werte in das Feld ist alles kein Thema...

...wie muss aber die TXT-Datei aber aussehen, wenn ich mal einen negativen Wert übertragen möchte!????
Ich habe mal eine alte Datei exportiert und gesehen, dass dort komische Zeichen wie ü, L, O usw stehen!! Was kann ich tun!? Wie muss ich das Vorzeichen setzen!??

Danke für die Hilfe...

Gruß Tobias

Fuerchau
15-03-04, 13:28
Die einfachste Methode ist, das Vorzeichen als separate Stelle vor oder hinter dem Feld zu übergeben.
Das Verarbeitungsprogramm auf der AS/400 muss natürlich angepasst werden.

Die beste Möglichkeit ist, das Vorzeichen als gleitendes Vorzeichen vor die Zahl zu stellen, Trennzeichen für die Felder (e.g. ";") zu verwenden und diese dann per CPYFRMIMPF in eine DDS/SQL-beschriebene Datei zu kopieren.
Die korrekte Umsetzung wird durch das Kommando durchgeführt.

Heinz Bretthauer
15-03-04, 13:32
Hallo Tobias,

bei gezonten Zahlen wird das Vorzeichen im linken Halbbyte des letzten Bytes gespeichert (da steht an ein "D" statt ein "F").

So steht zum Beispiel X"F1" für 1, X"D1" für -1.

Wenn also wirklich negative Zahlen per FTP übermittelt werden sollen, dann muss die letzte Ziffer das Vorzeichen enthalten. Möglich wären also die Werte X"D0" bis X"D9".

Und die ergeben nun mit einem Texteditor betrachtet die "komischen" Zeichen:

ü = x’D0’ = -0
J = x’D1’ = -1
K = x’D2’ = -2
L = x’D3’ = -3
M = x’D4’ = -4
N = x’D5’ = -5
O = x’D6’ = -6
P = x’D7’ = -7
Q = x’D8’ = -8
R = x’D9’ = -9

Ich mich Fürchau nur anschliessen. Ein separates Feld beseitigt die Probleme.

Viele Grüße
Heinz

Fuerchau
15-03-04, 14:03
@Heinz

Bei EBCDIC ist das so korrekt, bei der ASCII-Darstellung funktioniert das so nicht, da ja ASCII in EBCDIC umgesetzt wird.

Das Problem ist z.B. x'D0', dass in CCSID 273 als 'Ü' angezeigt wird. Bei CCSID 500 aber nicht !

Welches ist der richtige ASCII-Wert ?
Wird mit CP850 (DOS) oder CP1252 (ANSI) gearbeitet ?

Ein separates Vorzeichen ist auf jeden fall sicherer.