GET_CP_CONVERT_TABLE

Kata kerja GET_CP_CONVERT_TABLE membuat dan mengembalikan tabel konversi 256 byte untuk menerjemahkan string karakter dari halaman kode sumber ke halaman kode target.

Struktur berikut menjelaskan blok kontrol kata kerja (VCB) yang digunakan oleh kata kerja GET_CP_CONVERT_TABLE .

Sintaksis

  
struct get_cp_convert_table {  
    unsigned short       opcode;  
    unsigned char        opext;  
    unsigned char        reserv2;  
    unsigned short       primary_rc;  
    unsigned long        secondary_rc;  
    unsigned char        reserv3[8];  
    unsigned short       source_cp;  
    unsigned short       target_cp;  
    unsigned char FAR *  conv_tbl_addr;  
    unsigned char        char_not_fnd;  
    unsigned char        substitute_char;  
};  

Anggota

Opcode
Parameter yang disediakan. Kata kerja yang mengidentifikasi kode operasi, SV_GET_CP_CONVERT_TABLE.

opext
Bidang yang dipesan.

reserv2
Bidang yang dipesan.

primary_rc
Parameter yang dikembalikan. Menentukan kode pengembalian utama yang ditetapkan oleh APPC pada penyelesaian kata kerja. Kode pengembalian yang valid bervariasi tergantung pada kata kerja APPC yang dikeluarkan. Lihat Mengembalikan Kode untuk kode kesalahan yang valid untuk kata kerja ini.

secondary_rc
Parameter yang dikembalikan. Menentukan kode pengembalian sekunder yang ditetapkan oleh APPC pada penyelesaian kata kerja. Kode pengembalian yang valid bervariasi tergantung pada kata kerja APPC yang dikeluarkan. Lihat Mengembalikan Kode untuk kode kesalahan yang valid untuk kata kerja ini.

reserv3
Bidang yang dipesan.

source_cp
Parameter yang disediakan. Menentukan halaman kode sumber tempat karakter dikonversi. Halaman kode yang diizinkan (nilai desimal) adalah sebagai berikut:

  • ASCII 437, 850, 860, 863, 865

  • EBCDIC 037, 273, 277, 278, 280, 284, 285, 297, 500

Halaman kode yang ditentukan pengguna dalam rentang dari 65280 hingga 65535 juga diizinkan.

Halaman kode ASCII terkadang disebut sebagai halaman kode PC; Halaman kode EBCDIC terkadang disebut sebagai halaman kode host.

target_cp
Parameter yang disediakan. Menentukan halaman kode target tempat karakter dikonversi. Untuk halaman kode yang diizinkan, lihat definisi sebelumnya untuk source_cp.

conv_tbl_addr
Parameter yang disediakan. Menentukan alamat buffer untuk berisi tabel konversi 256 byte. Buffer harus berada dalam segmen bisa-tulis dan cukup lama untuk memuat tabel.

char_not_fnd
Parameter yang disediakan. Menentukan tindakan yang akan diambil jika karakter di halaman kode sumber tidak ada di halaman kode target:

  • Gunakan SV_ROUND_TRIP untuk menyimpan nilai unik dalam tabel konversi untuk setiap karakter halaman kode sumber.

  • Gunakan SV_SUBSTITUTE untuk menyimpan karakter pengganti (ditentukan oleh substitute_char) dalam tabel konversi.

substitute_char
Parameter yang disediakan. Menentukan karakter yang akan disimpan dalam tabel konversi ketika karakter dari halaman kode sumber tidak memiliki yang setara di halaman kode target.

Kode Pengembalian

SV_OK
Kode pengembalian utama; kata kerja berhasil dijalankan.

SV_PARAMETER_CHECK
Kode pengembalian utama; kata kerja tidak dijalankan karena kesalahan parameter.

SV_INVALID_CHAR_NOT_FOUND
Kode pengembalian sekunder; parameter char_not_fnd berisi nilai yang tidak valid.

SV_INVALID_DATA_SEGMENT
Kode pengembalian sekunder; area 256-byte yang ditentukan untuk tabel konversi yang diperluas di luar batas segmen, atau segmen tidak dapat ditulis.

SV_INVALID_SOURCE_CODE_PAGE
Kode pengembalian sekunder; halaman kode yang ditentukan oleh source_cp tidak didukung.

SV_INVALID_TARGET_CODE_PAGE
Kode pengembalian sekunder; halaman kode yang ditentukan oleh target_cp tidak didukung.

SV_COMM_SUBSYSTEM_NOT_LOADED
Kode pengembalian utama; komponen yang diperlukan tidak dapat dimuat atau dihentikan saat memproses kata kerja. Dengan demikian, komunikasi tidak dapat terjadi. Hubungi administrator sistem untuk tindakan korektif.

SV_INVALID_VERB
Kode pengembalian utama; parameter opcode tidak cocok dengan kode operasi kata kerja apa pun. Tidak ada kata kerja yang dijalankan.

SV_INVALID_VERB_SEGMENT
Kode pengembalian utama; VCB diperluas di luar akhir segmen data.

SV_UNEXPECTED_DOS_ERROR
Kode pengembalian utama; salah satu kondisi berikut terjadi:

  • Sistem Microsoft® Windows® mengalami kesalahan saat memproses kata kerja. Kode pengembalian sistem operasi dikembalikan melalui kode pengembalian sekunder. Jika masalah berlanjut, hubungi administrator sistem untuk tindakan korektif.

  • CSV dikeluarkan dari perulangan pesan yang dipanggil oleh aplikasi lain yang mengeluarkan panggilan fungsi Windows SendMessage , daripada panggilan fungsi Windows PostMessage yang lebih umum. Pemrosesan kata kerja tidak dapat dilakukan.

  • CSV dikeluarkan ketika SendMessage memanggil aplikasi Anda. Anda dapat menentukan apakah aplikasi Anda telah dipanggil dengan SendMessage dengan menggunakan panggilan fungsi Api Windows InSendMessage .

Komentar

Kumpulan karakter tipe A terdiri dari:

  • Huruf besar.
  • Angka 0 sampai 9.
  • Karakter khusus $, #, @, dan spasi.

Kumpulan karakter ini didukung oleh tabel konversi tipe A yang disediakan sistem.

Karakter pertama dari string sumber harus berupa huruf besar atau karakter khusus $, #, atau @. Spasi hanya diperbolehkan dalam posisi berikutnya. Huruf kecil ASCII diterjemahkan ke huruf besar EBCDIC ketika arahnya adalah ASCII ke EBCDIC.

Jenis set karakter AE terdiri dari:

  • Huruf besar.
  • Huruf kecil.
  • Angka 0 sampai 9.
  • Karakter khusus $, #, @, titik, dan spasi.

Kumpulan karakter ini didukung oleh tabel konversi AE jenis yang disediakan sistem.

Karakter pertama string sumber dapat berupa karakter apa pun dalam set karakter kecuali spasi.

Selama konversi, kosong yang disematkan (termasuk kosong di posisi pertama) dikonversi ke 0x00. Meskipun konversi semacam itu akan selesai, CONVERSION_ERROR dikembalikan sebagai kode pengembalian sekunder, yang menunjukkan bahwa pustaka CSV telah menyelesaikan konversi yang tidak dapat diubah pada data yang disediakan.

Untuk Windows, deskripsi COMTBLG harus menunjuk ke registri Windows di bawah \SnaBase\Parameters\Client. Untuk sistem operasi OS/2, direktori dan file yang berisi tabel harus ditentukan oleh variabel lingkungan COMTBLG. (Jika file tidak ditemukan, sistem mengembalikan pemeriksaan parameter SV_TABLE_ERROR.).

Nilai SV_ROUND_TRIP untuk char_not_fnd hanya berguna jika Anda membangun tabel konversi kedua untuk mengonversi antara dua halaman kode yang sama ke arah terbalik. Jika Anda menentukan nilai SV_ROUND_TRIP dalam membangun kedua tabel konversi, karakter apa pun yang diterjemahkan dari satu halaman kode ke yang lain dan kemudian kembali tidak akan berubah.

Saat menggunakan nilai SV_SUBSTITUTE untuk char_not_fnd, mengonversi string karakter yang diterjemahkan kembali ke halaman kode asli tidak harus membuat ulang string karakter asli.

Gunakan substitute_char hanya jika char_not_fnd diatur ke SV_SUBSTITUTE.

Nilai yang disimpan dalam tabel konversi adalah nilai ASCII yang terkait dengan karakter . Jika tabel digunakan untuk konversi dari ASCII ke EBCDIC, karakter yang muncul dalam string yang dikonversi adalah karakter yang terkait dengan nilai EBCDIC numerik daripada ASCII.

Misalnya, jika Anda menyediakan karakter garis bawah () (nilai ASCII F6) saat membuat TABEL konversi ASCII ke EBCDIC, karakter yang muncul dalam string yang dikonversi akan menjadi 6, karakter yang terkait dengan nilai F6 di EBCDIC. Untuk menggunakan karakter \ sebagai karakter pengganti dalam tabel konversi ASCII ke EBCDIC, Anda harus menyediakan nilai E1 (nilai yang terkait dengan karakter _ di EBCDIC) daripada karakter aktual.

Halaman kode adalah tabel yang mengaitkan nilai ASCII atau EBCDIC tertentu dengan karakter tertentu. Jika karakter dari halaman kode sumber tidak ada di halaman kode target, string yang diterjemahkan (target) berbeda dari string asli (sumber).