View Full Version : fopen() codepage für ANSI
Da man sich damit aber auch Feinde in der normalen Anwendung machen kann (bei uns auch CCSID Normal auf 65535) würde ich für den Zugreifenden Job einfach die CCSID auf 273 ändern.
Damit erspart man sich andere Baustellen aufzumachen :)
Lg
Rince
CCSID auf 65535 halte ich für einen konzeptionellen Fehler.
Da ich ja die 5250-Sitzungen, Drucker usw. ja nicht ohne CCSID fahren kann, sollte dies passen.
Gerade wenn mann mehrsprachig fährt und Datenaustausch betreibt (und wer macht heute noch Insellösungen) MUSS die System-CCSID auf einen korrekten Wert gestellt werden.
Je nach Hauptsprache des Systems haben auch die Systemdateien immer eine CCSID.
Ohne CCSID hat man mehr Baustellen als mit CCSID !!!!!
Dann klappts auch mit den Umlauten.
Okay, bei mir funktioniert jetzt alles bestens. Ich verwende iconv() und als Eingabe-CCSID habe ich 273 und als Ausgabe-CCSID 1252 angegeben. Die Ausgabedatei öffne ich ebenfalls mit codepage=1252. Lediglich mit der Übergabe der Parameter aus einem ILE/RPG-Programm zum C-Programm habe ich Probleme. Aber das ist wohl ein anderes Thema.
Titus
Vom Grundsatz musst du folgendes Bedenken:
char*
a) als Parameter: options(*string)
b) als Rückgabe: Zeichenkette, allerdings musst du per %scan(x'00':var) die Länge ermitteln, falls sie nicht der Returnwert ist
int immer 10I 0 value
int* immer 10I 0
usw.
Wird ein * angegeben, so handelt sich es um eine Adresse, fehlt der *, ist es immer value.
Es gibt allerdings manchaml C-Beschreibungen mit [ ], diese sind dann als Adresse auf ein Array zu verstehen.
Hilfreich ist auch manchmal die Deklaration als "* value", also als Adresse.
Dann kann ich den Funktionsaufruf mittels %addr(var) dynamisch versorgen und bin an die harten Prototypdeklaration nicht gebunden. Allerdings ist das mit Vorsicht anzuwenden.