Freigeben über


CONVERT

Das CONVERT-Verb übersetzt eine ASCII-Zeichenfolge in EBCDIC oder eine EBCDIC-Zeichenfolge in ASCII. Die zu konvertierende Zeichenfolge wird als Quellzeichenfolge bezeichnet. Die konvertierte Zeichenfolge wird als Zielzeichenfolge bezeichnet.

Die folgende Struktur beschreibt den Vom CONVERT-Verb verwendeten Verbsteuerungsblock (VCB).

Syntax

  
struct convert {  
    unsigned short       opcode;  
    unsigned char        opext;  
    unsigned char        reserv2;  
    unsigned short       primary_rc;  
    unsigned long        secondary_rc;  
    unsigned char        direction;  
    unsigned char        char_set;  
    unsigned short       len;  
    unsigned char FAR *  source;  
    unsigned char FAR *  target;  
};  

Member

opcode
Angegebener Parameter. Das Verb, das den Vorgangscode identifiziert, SV_CONVERT.

opext
Ein reserviertes Feld.

reserv2
Ein reserviertes Feld.

primary_rc
Zurückgegebener Parameter. Gibt den primären Rückgabecode an, der von APPC nach Abschluss des Verbs festgelegt wird. Die gültigen Rückgabecodes variieren je nach ausgegebenem APPC-Verb. Gültige Fehlercodes für dieses Verb finden Sie unter „Rückgabecodes“.

secondary_rc
Zurückgegebener Parameter. Gibt den sekundären Rückgabecode an, der von APPC nach Abschluss des Verbs festgelegt wird. Die gültigen Rückgabecodes variieren je nach ausgegebenem APPC-Verb. Gültige Fehlercodes für dieses Verb finden Sie unter „Rückgabecodes“.

direction
Angegebener Parameter. Gibt die Richtung der Konvertierung an. Verwenden Sie zum Konvertieren von ASCII in EBCDIC SV_ASCII_TO_EBCDIC. Verwenden Sie zum Konvertieren von EBCDIC in ASCII SV_EBCDIC_TO_ASCII.

char_set
Angegebener Parameter. Gibt den Zeichensatz an, der beim Konvertieren der Quellzeichenfolge verwendet werden soll. Zulässige Werte sind SV_A (Zeichensatz vom Typ A), SV_AE (Typ AE-Zeichensatz) und SV_G (benutzerdefinierter Zeichensatz vom Typ G).

len
Angegebener Parameter. Gibt die Anzahl der zu konvertierenden Zeichen an.

Diese Länge plus der Offset vom Anfang des Quell- oder Zielpuffers darf die Segmentgrenze nicht überschreiten.

source
Angegebener Parameter. Gibt die Adresse des Puffers an, die die zu konvertierende Zeichenfolge enthält.

Ziel
Angegebener Parameter. Gibt die Adresse des Puffers an, der die konvertierte Zeichenfolge enthalten soll.

Dieser Puffer kann sich überlappen oder mit dem Puffer übereinstimmen, auf den der Quellparameter verweist. In diesem Fall überschreibt die konvertierte Datenzeichenfolge die Quelldatenzeichenfolge.

Rückgabecodes

SV_OK
Primärer Rückgabecode; das Verb wurde erfolgreich ausgeführt.

SV_PARAMETER_CHECK
Primärer Rückgabecode; das Verb wurde aufgrund eines Parameterfehlers nicht ausgeführt.

SV_CONVERSION_ERROR

Sekundärer Rückgabecode; mindestens ein Zeichen in der Quellzeichenfolge wurde in der Konvertierungstabelle nicht gefunden. Diese Zeichen wurden in NULL (0x00) konvertiert. Das Verb wird weiterhin ausgeführt.

SV_INVALID_CHARACTER_SET

Sekundärer Rückgabecode; der char_set Parameter enthielt einen ungültigen Wert.

SV_INVALID_DATA_SEGMENT

Sekundärer Rückgabecode; Der Datenpuffer, der die Quell- oder Zielzeichenfolge enthält, passte nicht in ein Segment, oder das Zielsegment war kein Lese-/Schreibsegment.

SV_INVALID_DIRECTION

Sekundärer Rückgabecode; die Richtung enthielt einen ungültigen Wert.

SV_INVALID_FIRST_CHARACTER

Sekundärer Rückgabecode; das erste Zeichen eines Typs A-Quellzeichenfolge war ungültig.

SV_TABLE_ERROR

Sekundärer Rückgabecode; einer der folgenden Punkte ist aufgetreten:

  • Die Datei mit der vom Benutzer geschriebenen G-Konvertierungstabelle wurde nicht durch die Umgebungsvariable CSVTBLG angegeben.

  • Die Tabelle hatte nicht das richtige Format.

  • Die von der CSVTBLG-Variable angegebene Datei wurde nicht gefunden.

    SV_COMM_SUBSYSTEM_NOT_LOADED
    Primärer Rückgabecode; eine erforderliche Komponente konnte während der Verarbeitung des Verbs nicht geladen oder beendet werden. Folglich konnte die Kommunikation nicht stattfinden. Wenden Sie sich an den Systemadministrator, um Korrekturmaßnahmen zu ergreifen.

    SV_INVALID_VERB
    Primärer Rückgabecode; der opcode-Parameter stimmte nicht mit dem Vorgangscode eines Verbs überein. Kein Verb ausgeführt.

    SV_INVALID_VERB_SEGMENT
    Primärer Rückgabecode; der VCB wurde über das Ende des Datensegments hinaus erweitert.

    SV_UNEXPECTED_DOS_ERROR
    Primärer Rückgabecode; eine der folgenden Bedingungen ist aufgetreten:

  • Das Microsoft Windows-System hat beim Verarbeiten des Verbs einen Fehler festgestellt. Der Rückgabecode des Betriebssystems wurde über den sekundären Rückgabecode zurückgegeben. Wenn das Problem weiterhin besteht, wenden Sie sich an den Systemadministrator, um Korrekturmaßnahmen zu ergreifen.

  • Eine CSV-Datei wurde von einer Nachrichtenschleife ausgegeben, die von einer anderen Anwendung aufgerufen wurde, welche einen Windows-SendMessage-Funktionsaufruf statt des häufigeren Windows-PostMessage-Funktionsaufrufs ausgegeben hat. Die Verbverarbeitung kann nicht durchgeführt werden.

  • Eine CSV-Datei wurde ausgegeben, als Ihre Anwendung von SendMessage aufgerufen wurde. Sie können ermitteln, ob der Aufruf Ihrer Anwendung mit SendMessage durch Verwendung des Windows-API-Funktionsaufrufs InSendMessage erfolgt ist.

Hinweise

Der Zeichensatz vom Typ A besteht aus Folgendem:

  • Großbuchstaben.

  • Zahlen von 0 bis 9.

  • Sonderzeichen $, #, @ und Leerzeichen.

    Dieser Zeichensatz wird von einer vom System bereitgestellten Konvertierungstabelle für Typ A unterstützt.

    Das erste Zeichen der Quellzeichenfolge muss ein Großbuchstaben oder das Sonderzeichen $, #oder @sein. Leerzeichen sind nur an nachgestellten Positionen zulässig. ASCII-Kleinbuchstaben werden in EBCDIC-Großbuchstaben übersetzt, wenn die Richtung ASCII zu EBCDIC ist.

    Der Zeichensatz vom Typ AE besteht aus Folgendem:

  • Großbuchstaben.

  • Kleinbuchstaben.

  • Zahlen von 0 bis 9.

  • Sonderzeichen $, #, @, Punkt und Leerzeichen.

    Dieser Zeichensatz wird von einer vom System bereitgestellten Konvertierungstabelle für Typ AE unterstützt.

    Das erste Zeichen der Quellzeichenfolge kann ein beliebiges Zeichen im Zeichensatz sein, mit Ausnahme des Leerzeichens. Leerzeichen sind nur an nachgestellten Positionen zulässig.

    Während der Konvertierung werden eingebettete Leerzeichen (einschließlich Leerzeichen an der ersten Position) in 0x00 konvertiert. Auch wenn eine solche Konvertierung abgeschlossen wird, wird CONVERSION_ERROR als sekundärer Rückgabecode zurückgegeben, um anzugeben, dass die CSV-Bibliothek eine Konvertierung der bereitgestellten Daten durchgeführt hat, die nicht rückgängig gemacht werden kann.

    Für Windows sollte eine Beschreibung von COMTBLG auf die Windows-Registrierung unter \SnaBase\Parameters\Client verweisen.

    Die Daten für eine Konvertierungstabelle vom Typ G müssen eine ASCII-Datei mit einer Länge von 32 Zeilen sein. Jede Zeile muss aus 32 Hexadezimalstellen bestehen, die 16 Zeichen darstellen, und durch einen Wagenrücklauf und Zeilenvorschub beendet werden. Die ersten 16 Zeilen (256 Zeichen) geben die EBCDIC-Zeichen an, in die ASCII-Zeichen konvertiert werden. die restlichen 16 Zeilen geben die ASCII-Zeichen an, in die EBCDIC-Zeichen konvertiert werden.

    Die Hexadezimalstellen A bis F können groß- oder klein geschrieben sein. Sie können diese Ziffern jedoch in Großbuchstaben festlegen, um die Kompatibilität mit IBM ES für OS/2 Version 1.0 sicherzustellen.

Hinweis

Sie können GET_CP_CONVERT_TABLE verwenden, um eine vom Benutzer geschriebene Konvertierungstabelle vom Typ G im Arbeitsspeicher zu erstellen und die Tabelle dann in einer Datei zu speichern.