CONVERT
Il verbo CONVERT converte una stringa di caratteri ASCII in EBCDIC o una stringa di caratteri EBCDIC in ASCII. La stringa da convertire viene chiamata stringa di origine. La stringa convertita viene chiamata stringa di destinazione.
La struttura seguente descrive il blocco di controllo verbo (VCB) usato dal verbo CONVERT .
Sintassi
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;
};
Members
Opcode
Parametro fornito. Verbo che identifica il codice dell'operazione, SV_CONVERT.
opext
Campo riservato.
reserv2
Campo riservato.
Primary_rc
Parametro restituito. Specifica il codice restituito primario impostato da APPC al completamento del verbo. I codici restituiti validi variano a seconda del verbo APPC rilasciato. Per questo verbo, vedere Codici restituiti per i codici di errore validi.
Secondary_rc
Parametro restituito. Specifica il codice restituito secondario impostato da APPC al completamento del verbo. I codici restituiti validi variano a seconda del verbo APPC rilasciato. Per questo verbo, vedere Codici restituiti per i codici di errore validi.
direction
Parametro fornito. Specifica la direzione della conversione. Per convertire da ASCII a EBCDIC, usare SV_ASCII_TO_EBCDIC. Per convertire da EBCDIC a ASCII, usare SV_EBCDIC_TO_ASCII.
char_set
Parametro fornito. Specifica il set di caratteri da usare per convertire la stringa di origine. I valori consentiti includono SV_A (tipo Set di caratteri A), SV_AE (set di caratteri AE) e SV_G (set di caratteri G definito dall'utente).
len
Parametro fornito. Specifica il numero di caratteri da convertire.
Questa lunghezza più l'offset dall'inizio del buffer di origine o di destinazione non deve superare il limite del segmento.
source
Parametro fornito. Specifica l'indirizzo del buffer contenente la stringa di caratteri da convertire.
target
Parametro fornito. Specifica l'indirizzo del buffer per contenere la stringa di caratteri convertita.
Questo buffer può sovrapporsi o coincidere con il buffer a cui punta il parametro di origine . In questo caso, la stringa di dati convertita sovrascrive la stringa di dati di origine.
Codici restituiti
SV_OK
Codice restituito primario; il verbo eseguito correttamente.
SV_PARAMETER_CHECK
Codice restituito primario; il verbo non è stato eseguito a causa di un errore di parametro.
SV_CONVERSION_ERROR
Codice restituito secondario; una o più caratteri nella stringa di origine non sono stati trovati nella tabella di conversione. Questi caratteri sono stati convertiti in null (0x00). Il verbo è ancora stato eseguito.
SV_INVALID_CHARACTER_SET
Codice restituito secondario; il parametro char_set contiene un valore non valido.
SV_INVALID_DATA_SEGMENT
Codice restituito secondario; il buffer di dati contenente la stringa di origine o di destinazione non è adatto a un segmento o il segmento di destinazione non è stato un segmento di lettura/scrittura.
SV_INVALID_DIRECTION
Codice restituito secondario; la direzione contiene un valore non valido.
SV_INVALID_FIRST_CHARACTER
Codice restituito secondario; il primo carattere di un tipo Stringa di origine non è valida.
SV_TABLE_ERROR
Codice restituito secondario; si è verificato uno dei seguenti:
Il file contenente la tabella di conversione G del tipo scritto dall'utente non è stata specificata dalla variabile di ambiente CSV TBLG.
La tabella non era nel formato corretto.
Il file specificato dalla variabile CSVTBLG non è stato trovato.
SV_COMM_SUBSYSTEM_NOT_LOADED
Codice restituito primario; Impossibile caricare o terminare un componente obbligatorio durante l'elaborazione del verbo. Pertanto, la comunicazione non poteva essere eseguita. Contattare l'amministratore di sistema per un'azione correttiva.SV_INVALID_VERB
Codice restituito primario; il parametro opcode non corrisponde al codice dell'operazione di alcun verbo. Nessun verbo eseguito.SV_INVALID_VERB_SEGMENT
Codice restituito primario; VCB esteso oltre la fine del segmento di dati.SV_UNEXPECTED_DOS_ERROR
Codice restituito primario; si è verificata una delle seguenti condizioni:Il sistema Microsoft Windows ha rilevato un errore durante l'elaborazione del verbo. Il codice restituito dal sistema operativo è stato restituito tramite il codice restituito secondario. Se il problema persiste, contattare l'amministratore di sistema per un'azione correttiva.
Un file CSV è stato rilasciato da un ciclo di messaggi richiamato da un'altra applicazione che emette una chiamata alla funzione SendMessage di Windows anziché dalla chiamata di funzione Windows PostMessage più comune. L'elaborazione verbo non può essere eseguita.
Un file CSV è stato rilasciato quando SendMessage ha richiamato l'applicazione. È possibile determinare se l'applicazione è stata richiamata con SendMessage usando la chiamata di funzione API Windows InSendMessage .
Commenti
Il tipo Un set di caratteri è costituito da:
Lettere maiuscole.
Numeri da 0 a 9.
Caratteri speciali $, #, @e spazio.
Questo set di caratteri è supportato da una tabella di conversione di tipo A fornita dal sistema.
Il primo carattere della stringa di origine deve essere una lettera maiuscola o il carattere speciale $, #o @. Gli spazi sono consentiti solo in posizioni finali. Le lettere ASCII minuscole vengono tradotte in lettere EBCDIC maiuscole quando la direzione è ASCII in EBCDIC.
Il set di caratteri AE di tipo è costituito da:
Lettere maiuscole.
Lettere minuscole.
Numeri da 0 a 9.
Caratteri speciali $, #, @, punto e spazio.
Questo set di caratteri è supportato da una tabella di conversione AE fornita dal sistema.
Il primo carattere della stringa di origine può essere qualsiasi carattere nel set di caratteri, ad eccezione dello spazio. Gli spazi sono consentiti solo nelle posizioni finali.
Durante la conversione, gli spazi vuoti incorporati (inclusi gli spazi vuoti nella prima posizione) vengono convertiti in 0x00. Anche se tale conversione verrà completata, CONVERSION_ERROR viene restituito come codice restituito secondario, a indicare che la libreria CSV ha completato una conversione irreversibile sui dati forniti.
Per Windows una descrizione di COMTBLG deve puntare al Registro di sistema di Windows in \SnaBase\Parameters\Client.
I dati per una tabella di conversione G di tipo devono essere lunghi per un file ASCII di 32 righe. Ogni riga deve essere costituita da 32 cifre esadecimali, che rappresentano 16 caratteri e terminare con un ritorno a capo e un avanzamento riga. Le prime 16 righe (256 caratteri) specificano i caratteri EBCDIC in cui vengono convertiti i caratteri ASCII; le 16 righe rimanenti specificano i caratteri ASCII in cui vengono convertiti i caratteri EBCDIC.
Le cifre esadecimali da A a F possono essere maiuscole o minuscole. Tuttavia, è possibile creare queste cifre maiuscole per garantire la compatibilità con IBM ES per OS/2 versione 1.0.
Nota
È possibile usare GET_CP_CONVERT_TABLE per compilare una tabella di conversione scritta dall'utente G in memoria e quindi archiviare la tabella in un file.