Mengkonversi Cobol PIC ke SAS informats Dari: Dianne Rhodes pada 14 Sep 2006 13:12 Pada Thu, 14 Sep 2006 09:57:00 -0700, sdlenter ltsdlentert (a) AOLgt wrote: gtthat benar-benar tidak membantu. Gtis itu seperti PD gt gt Tidak, bukankah sepertinya kita memungut kebiasaan buruk agar tidak berguna. Jika Anda berada di MF, Anda menginginkan PD dan BPR. Dari dokumentasi on-line: Tabel berikut membandingkan notasi desimal yang dikemas dalam beberapa bahasa pemrograman: Notasi Bahasa SAS PD4. COBOL COMP-3 PIC S9 (7) IBM 370 assembler PL4 PLI TETAP DEC Tabel berikut membandingkan nama notasi biner real dalam beberapa bahasa pemrograman: Bahasa 4 Bytes 8 Bytes SAS RB4. RB8. FORTRAN REAL4 REAL8 C float double COBOL COMP-1 COMP-2 IBM 370 assembler E D Saya percaya pada COBOL Comp sama dengan comp-1. Aku belum pernah melihat comp-2 sendiri. Jika Anda tidak menggunakan mainframe, gunakanlah format S370 yang sesuai yang disebutkan di atas. Dianne Rhodes BLS bagian dari komandan COBOL Dari: quotTerjeson, Markquot pada 14 Sep 2006 13:26 Bagian lain yang ikut bermain adalah platform apa yang akan Anda maksud. Apakah ini mainframe atau platform mini, misalnya EBCDIC atau ASCII atau apakah file ini dari EBCDIC ke sistem ASCII Pertanyaan sebenarnya adalah keadaan (atau rasa) apakah data saat ini dalam Apakah EBCDIC dan tetap EBCDIC, atau EBCDIC didownload ke sebuah Platform ASCII dan berkasnya sudah dikonversi dari EBCDIC ke ASCII Jika kita mulai dengan yang kemudian, sudah dikonversi ke ASCII maka byte dan camilan untuk medan PD atau ZD sudah rusak. Anda tidak ingin nilai byte EBCDIC dipetakan ke set karakter ASCII. Anda ingin mereka tetap utuh jika pergi ke platform ASCII. Untuk melakukan download ini dari platform EBCDIC ke platform ASCII dengan FTP dan ubah mode dari ASCII menjadi BINARY yang memberi tahu FTP untuk tidak berkonversi tapi meninggalkan semua byte seperti pada file. Kemudian format S370xxx bekerja dengan hebat, dan untuk meraih potongan teks lainnya cukup gunakan ebcdic. Informat untuk beralih (memetakan) potongan teks karakter. Yang paling penting, jika Anda bisa melakukan dump atau entah bagaimana menulis sebuah utilitas kecil untuk menampilkan nilai byte pada platform aslinya, Anda dapat melihat digit serentak (setengah byte) dan melihat nomor sebenarnya dan tanda huruf untuk tanda yang digigit, Dll. Anda dapat mengikuti ini sampai ke mesin tujuan dan melihat apakah Anda memiliki byte asli atau jika konversi yang tidak diinginkan telah terjadi. Tentu saja, mungkin ada hal lain yang bisa Anda mainkan di sini untuk Anda, tapi biasanya, jika Anda menyimpan rasa file itu dengan benar dan menggunakan informan kalengan, biasanya bisa berfungsi dengan baik. Semoga ini bisa membantu. Mark Terjeson Senior Programmer Analyst, IMampR Russell Investment Group Russell Global Leaders di Multi-Manager Investing ----- Pesan Asli ----- Dari: SAS (r) Diskusi mailto: SAS-L (a) LISTSERV. UGA. EDU Pada Behalf Dari sdlenter Dikirim: Kamis, 14 September 2006 9:57 AM To: SAS-L (a) LISTSERV. UGA. EDU Subjek: Re: Mengkonversi Cobol PIC ke SAS yang benar-benar tidak membantu. Apakah seperti PD quotTerjeson, Markquot menulis: gt Hai, gt gt Lihat SAS Informat S370FPDw. d untuk COBOL 9 (n) Lihat SAS Informat gt S370FZDw. d untuk COBOL S9 (n) gt gt gt gt Semoga ini bisa membantu. Gt gt gt Mark Terjeson gt Analis Programmer Senior, IMampR gt Russell Investment Group gt gt gt Russell gt Pemimpin Global dalam Multi-Manajer Berinvestasi gt gt gt gt gt gt ----- Pesan Asli ----- gt Dari: SAS (R) Diskusi mailto: SAS-L (a) LISTSERV. UGA. EDU Pada status gt sdlenter gt Dikirim: Rabu, 13 September 2006 15:00 gt Ke: SAS-L (a) LISTSERV. UGA. EDU gt Perihal: Mengkonversi Cobol PIC ke SAS menginformasikan gt gt Bagaimana cara mengubah yang berikut: gt PICTURE S9 (05) V99 COMP-3 gt PICTURE S9 (11) V99 COMP-3. Gt PICTURE S9 (11) COMP-3. Gt PICTURE S9 (13) COMP-3. Gt PICTURE S9 (05) COMP-3. Gt PICTURE S9 (03) COMP-3. Gt PICTURE S9 (15) COMP-3. Gt gt PICTURE S9 (04) COMP. Gt PICTURE S9 (18) COMP. Dari: quotTerjeson, Markquot pada 14 Sep 2006 13:29 PS: Jika file data asli Anda bukan EBCDIC, Anda mungkin perlu memeriksa informasi SAS PDw. d dan ZDw. d karena notasi S370 menambahkan konversi EBCDIC ke proses . ----- Pesan Asli ----- Dari: Terjeson, Mark Terkirim: Kamis, 14 September 2006 10:26:00 Ke: 039sdlenter039 SAS-L (a) LISTSERV. UGA. EDU Subjek: RE: Re: Konversi Cobol PIC to SAS informats Bagian lain yang ikut bermain adalah platform apa yang akan Anda maksud. Apakah ini mainframe atau platform mini, misalnya EBCDIC atau ASCII atau apakah file ini dari EBCDIC ke sistem ASCII Pertanyaan sebenarnya adalah keadaan (atau rasa) apakah data saat ini dalam Apakah EBCDIC dan tetap EBCDIC, atau EBCDIC didownload ke sebuah Platform ASCII dan berkasnya sudah dikonversi dari EBCDIC ke ASCII Jika kita mulai dengan yang kemudian, sudah dikonversi ke ASCII maka byte dan camilan untuk medan PD atau ZD sudah rusak. Anda tidak ingin nilai byte EBCDIC dipetakan ke set karakter ASCII. Anda ingin mereka tetap utuh jika pergi ke platform ASCII. Untuk melakukan download ini dari platform EBCDIC ke platform ASCII dengan FTP dan ubah mode dari ASCII menjadi BINARY yang memberi tahu FTP untuk tidak berkonversi tapi meninggalkan semua byte seperti pada file. Kemudian format S370xxx bekerja dengan hebat, dan untuk meraih potongan teks lainnya cukup gunakan ebcdic. Informat untuk beralih (memetakan) potongan teks karakter. Yang paling penting, jika Anda bisa melakukan dump atau entah bagaimana menulis sebuah utilitas kecil untuk menampilkan nilai byte pada platform aslinya, Anda dapat melihat digit serentak (setengah byte) dan melihat nomor sebenarnya dan tanda huruf untuk tanda yang digigit, Dll. Anda dapat mengikuti ini sampai ke mesin tujuan dan melihat apakah Anda memiliki byte asli atau jika konversi yang tidak diinginkan telah terjadi. Tentu saja, mungkin ada hal lain yang bisa Anda mainkan di sini untuk Anda, tapi biasanya, jika Anda menyimpan rasa file itu dengan benar dan menggunakan informan kalengan, biasanya bisa berfungsi dengan baik. Semoga ini bisa membantu. Mark Terjeson Senior Programmer Analyst, IMampR Russell Investment Group Russell Global Leaders di Multi-Manager Investing ----- Pesan Asli ----- Dari: SAS (r) Diskusi mailto: SAS-L (a) LISTSERV. UGA. EDU Pada Behalf Dari sdlenter Dikirim: Kamis, 14 September 2006 9:57 AM To: SAS-L (a) LISTSERV. UGA. EDU Subjek: Re: Mengkonversi Cobol PIC ke SAS yang benar-benar tidak membantu. Apakah seperti PD quotTerjeson, Markquot menulis: gt Hai, gt gt Lihat SAS Informat S370FPDw. d untuk COBOL 9 (n) Lihat SAS Informat gt S370FZDw. d untuk COBOL S9 (n) gt gt gt gt Semoga ini bisa membantu. Gt gt gt Mark Terjeson gt Analis Programmer Senior, IMampR gt Russell Investment Group gt gt gt Russell gt Pemimpin Global dalam Multi-Manajer Berinvestasi gt gt gt gt gt gt ----- Pesan Asli ----- gt Dari: SAS (R) Diskusi mailto: SAS-L (a) LISTSERV. UGA. EDU Pada status gt sdlenter gt Dikirim: Rabu, 13 September 2006 15:00 gt Ke: SAS-L (a) LISTSERV. UGA. EDU gt Perihal: Mengkonversi Cobol PIC ke SAS menginformasikan gt gt Bagaimana cara mengubah yang berikut: gt PICTURE S9 (05) V99 COMP-3 gt PICTURE S9 (11) V99 COMP-3. Gt PICTURE S9 (11) COMP-3. Gt PICTURE S9 (13) COMP-3. Gt PICTURE S9 (05) COMP-3. Gt PICTURE S9 (03) COMP-3. Gt PICTURE S9 (15) COMP-3. Gt gt PICTURE S9 (04) COMP. Gt PICTURE S9 (18) COMP. Dari: quotTerjeson, Markquot pada 14 Sep 2006 13:30 PPS: Permisi, cara yang lebih baik untuk menyatakannya adalah jika Anda menggunakan EBCDIC dan tetap berada di EBCDIC, atau Anda berada di ASCII dan tetap berada di ASCII, kemudian periksa informats PD Dan ZD ----- Pesan Asli ----- Dari: Terjeson, Mark Terkirim: Kamis, 14 September 2006 10:29 AM To: 039sdlenter039 039SAS-L (a) LISTSERV. UGA. EDU039 Subjek: RE: Re : Mengkonversi Cobol PIC ke SAS informats PS: Jika file data asli Anda bukan EBCDIC, Anda mungkin perlu memeriksa informasi SAS PDw. d dan ZDw. d karena notasi S370 menambahkan konversi EBCDIC ke prosesnya. ----- Pesan Asli ----- Dari: Terjeson, Mark Terkirim: Kamis, 14 September 2006 10:26:00 Ke: 039sdlenter039 SAS-L (a) LISTSERV. UGA. EDU Subjek: RE: Re: Konversi Cobol PIC to SAS informats Bagian lain yang ikut bermain adalah platform apa yang akan Anda maksud. Apakah ini mainframe atau platform mini, misalnya EBCDIC atau ASCII atau apakah file ini dari EBCDIC ke sistem ASCII Pertanyaan sebenarnya adalah keadaan (atau rasa) apakah data saat ini dalam Apakah EBCDIC dan tetap EBCDIC, atau EBCDIC didownload ke sebuah Platform ASCII dan berkasnya sudah dikonversi dari EBCDIC ke ASCII Jika kita mulai dengan yang kemudian, sudah dikonversi ke ASCII maka byte dan camilan untuk medan PD atau ZD sudah rusak. Anda tidak ingin nilai byte EBCDIC dipetakan ke set karakter ASCII. Anda ingin mereka tetap utuh jika pergi ke platform ASCII. Untuk melakukan download ini dari platform EBCDIC ke platform ASCII dengan FTP dan ubah mode dari ASCII menjadi BINARY yang memberi tahu FTP untuk tidak berkonversi tapi meninggalkan semua byte seperti pada file. Kemudian format S370xxx bekerja dengan hebat, dan untuk meraih potongan teks lainnya cukup gunakan ebcdic. Informat untuk beralih (memetakan) potongan teks karakter. Yang paling penting, jika Anda bisa melakukan dump atau entah bagaimana menulis sebuah utilitas kecil untuk menampilkan nilai byte pada platform aslinya, Anda dapat melihat digit serentak (setengah byte) dan melihat nomor sebenarnya dan tanda huruf untuk tanda yang digigit, Dll. Anda dapat mengikuti ini sampai ke mesin tujuan dan melihat apakah Anda memiliki byte asli atau jika konversi yang tidak diinginkan telah terjadi. Tentu saja, mungkin ada hal lain yang bisa Anda mainkan di sini untuk Anda, tapi biasanya, jika Anda menyimpan rasa file itu dengan benar dan menggunakan informan kalengan, biasanya bisa berfungsi dengan baik. Semoga ini bisa membantu. Mark Terjeson Senior Programmer Analyst, IMampR Russell Investment Group Russell Global Leaders di Multi-Manager Investing ----- Pesan Asli ----- Dari: SAS (r) Diskusi mailto: SAS-L (a) LISTSERV. UGA. EDU Pada Behalf Dari sdlenter Dikirim: Kamis, 14 September 2006 9:57 AM To: SAS-L (a) LISTSERV. UGA. EDU Subjek: Re: Mengkonversi Cobol PIC ke SAS yang benar-benar tidak membantu. Apakah seperti PD quotTerjeson, Markquot menulis: gt Hai, gt gt Lihat SAS Informat S370FPDw. d untuk COBOL 9 (n) Lihat SAS Informat gt S370FZDw. d untuk COBOL S9 (n) gt gt gt gt Semoga ini bisa membantu. Gt gt gt Mark Terjeson gt Analis Programmer Senior, IMampR gt Russell Investment Group gt gt gt Russell gt Pemimpin Global dalam Multi-Manajer Berinvestasi gt gt gt gt gt gt ----- Pesan Asli ----- gt Dari: SAS (R) Diskusi mailto: SAS-L (a) LISTSERV. UGA. EDU Pada status gt sdlenter gt Dikirim: Rabu, 13 September 2006 15:00 gt Ke: SAS-L (a) LISTSERV. UGA. EDU gt Perihal: Mengkonversi Cobol PIC ke SAS menginformasikan gt gt Bagaimana cara mengubah yang berikut: gt PICTURE S9 (05) V99 COMP-3 gt PICTURE S9 (11) V99 COMP-3. Gt PICTURE S9 (11) COMP-3. Gt PICTURE S9 (13) COMP-3. Gt PICTURE S9 (05) COMP-3. Gt PICTURE S9 (03) COMP-3. Gt PICTURE S9 (15) COMP-3. Gt gt PICTURE S9 (04) COMP. Gt PICTURE S9 (18) COMP. Reading COBOL Layouts Tutorial tentang cara membaca layout COBOL ditulis khusus untuk pelanggan kami yang telah melakukan konversi yang dilakukan di Disc Interchange dan telah menerima layout COBOL dengan data. Hal ini dimaksudkan untuk memberi Anda cukup informasi untuk membaca tata letak yang paling sederhana. Ini tidak mencakup semua topik atau semua yang akan Anda temukan dalam tata letak yang rumit, dan ini dimaksudkan untuk menjelaskan tata letak COBOL saja sehingga Anda dapat menggunakan data yang dikonversi, sehingga Anda tidak dapat menulis program COBOL. Artikel ini dimulai di sini: Membaca COBOL Layouts di mana Anda juga akan menemukan indeks topik. Bagian 4: Bidang Numerik Bagian ini menjelaskan beberapa tipe data numerik dan penanganan tanda dan titik desimal. Isi dari bagian ini: Perlu mengonversi bidang numerik. Bisnis kami COBOL memiliki beberapa jenis bidang numerik. Jenis data ini termasuk bidang DISPLAY, yang terdiri dari karakter (karakter EBCDIC atau ASCII untuk 0 - 9), bidang biner, bidang yang dikemas, dan bidang floating-point. Ada juga pilihan untuk tanda tangan atau tanda yang terpisah atau tanda tunda, dan untuk desimal nyata atau tersirat. Tipe data ditentukan oleh klausa USAGE IS. PENGGUNAAN IS Klausul Ada lebih banyak pernyataan gambar daripada yang telah dijelaskan sebelumnya. Ada klausa PENGGUNAAN yang menentukan jenis penyimpanan bidang numerik - tampilan, biner, atau komputasi. Sintaks penuh, melalui sebuah contoh, adalah: Ini mengatakan untuk menyimpan field dalam format komputasi-3. Penggunaan adalah bagian yang opsional dan umumnya tidak aktif, dan komputasi dapat disingkat COMP, jadi Anda akan lebih sering melihat tulisan ini. Jenis bidang numerik yang biasanya Anda lihat di layout COBOL adalah: Display (termasuk bidang Signed) Binary Computational, atau Comp Comp-1 Comp-2 Comp-3 Display, termasuk bidang Signed atau Zoned, adalah yang paling umum, dan comp-3 adalah jenis bidang numerik kedua yang paling umum. Beberapa kompiler juga memiliki tipe data comp-4 dan comp-5, biasanya untuk meniru comp pada compiler lain. Usage adalah Display Display format adalah default untuk angka dalam COBOL. Jika tidak ada penggunaan klausa yang ditentukan, defaultnya adalah penggunaan display, artinya nilai disimpan sebagai karakter EBCDIC (digit), berbeda dengan biner. Nilai mungkin atau mungkin tidak memiliki desimal - tersirat atau nyata - dan mungkin tidak ditandatangani atau memiliki tanda tersemat atau terpisah - yang dapat berupa leading atau trailing. Bidang format tampilan default ditandai berisi tanda trailing yang disematkan, dan biasanya disebut bidang Signed, atau IBM Signed, atau Zoned. Tipe data ini dijelaskan di bawah ini. Signed Fields Ada tipe data numerik umum yang digunakan di COBOL pada mainframe IBM yang disebut Signed (disebut juga IBM Signed, atau Zoned). COBOL mewakili jenis bidang ini dengan huruf S pada klausa gambar dari bidang format tampilan, mis. PIC S9 (6). Bidang yang Ditandatangani terdiri dari karakter numerik EBCDIC biasa, satu karakter per byte, untuk semua digit kecuali yang memegang tanda, yang merupakan tanda paling signifikan (tanda masuk) atau yang paling tidak signifikan (tanda garis) - biasanya Digit paling tidak signifikan Angka yang memegang tanda itu digabungkan, atau di atas tanda tanda angka ke angka itu. Ini menghemat satu byte yang seharusnya ditempati oleh tanda tersebut. Nilai dari digit tersebut disimpan sebagai nilai biner, dan ORD dengan kode tanda, yaitu D0 hex untuk bilangan negatif, he he he he he he he he he he he untuk nilai positif, dan F0 hex untuk nilai unsigned. Karena overpunch, digit yang memegang tanda tidak akan muncul sebagai angka saat field dilihat dalam mode karakter EBCDIC. Jika Anda memiliki lapangan dan melihat nilai 1.23 dengan editor EBCDIC, itu akan membaca 0000012C. Compiler ASCII COBOL juga menggunakan tipe data Signed dengan overpunch, namun bit tandanya berbeda dan tidak distandarisasi antara kompiler. Lihat Field Signed Tech-Talk kami untuk mendapatkan informasi lebih lanjut tentang bidang Signifikan EBCDIC dan ASCII. Tanda adalah bidang COBOL yang ditandatangani secara terpisah dengan tanda tanda pada nilai secara default (lihat bidang yang ditandatangani di atas). Tapi ada ketentuan di COBOL untuk sebuah tanda yang terpisah, dan bisa juga mengarah atau tertinggal. Pernyataan untuk ini adalah Ini dapat digabungkan dengan klausa terkemuka atau trailing: Pernyataan ini dapat diterapkan pada item dasar (lapangan) atau keseluruhan catatan. Bidang Komputasi dan Biner Karena komputer melakukan penghitungan dengan bilangan biner, lebih efisien menyimpan nilai tersebut dalam file dalam bentuk biner asli daripada menyimpannya dalam basis dasar yang dapat dibaca manusia. Jika nomornya tersimpan dalam format biner aslinya maka bisa di masukan dari file dan digunakan secara langsung. Jika disimpan dalam format sepuluh dasar maka perlu dikonversi menjadi biner sebelum melakukan perhitungan di atasnya, kemudian dikonversi kembali menjadi basis sepuluh untuk penyimpanan. COBOL mendefinisikan beberapa tipe data biner. Kami akan mencantumkan ringkasan singkat di sini, dan Anda dapat menemukan lebih banyak detail di Computational Fields COBOL dan di COBOL Comp-3 Packed Fields. Sebelum kita mulai, ada satu hal penting yang harus dipahami: Standar COBOL meninggalkan implementasi sebenarnya dari kebanyakan tipe data sampai ke vendor yang menulis kompiler COBOL. Alasan untuk ini adalah karena komputer yang berbeda - CPU - menggunakan representasi biner yang berbeda secara internal, dan berfungsi paling baik dengan jenis bilangan biner mereka sendiri. Pendekatan ini menghasilkan kompiler yang lebih baik dan lebih cepat, namun juga menyebabkan kebingungan, karena tipe data comp pada satu mesin tidak harus sama dengan comp pada mesin lain. Tabel di bawah ini mencantumkan penggunaan umum tidak semua kompiler akan mengikuti jenis ini. Untuk detail lebih lanjut tentang urutan kata dan tanda lihat link di atas. Jenis data yang digunakan field untuk penyimpanan ditentukan oleh penggunaan adalah klausa dalam definisi lapangan, dan dalam kebanyakan kasus, jumlah byte penyimpanan ditentukan oleh jumlah digit pada PIC. Angka titik mengambang mengikuti format biner standar dan karena ukurannya tidak ditentukan oleh PIC, dan tidak ada PIC yang digunakan dalam definisi lapangan. Deskripsi tentang bagaimana tipe data ini disimpan Dikemas desimal biasanya diimplementasikan sebagai comp-3. Lihat comp-3. Saat membaca spesifikasi bidang biner atau comp, ukuran yang tercantum di PIC adalah jumlah digit desimal setelah nomor tersebut dikonversi dari biner menjadi basis sepuluh. Dalam kasus lapangan yang penuh sesak, ukurannya setelah membongkar. Desimal Nyata Sebagian besar pemrogram PC cenderung berpikir dalam hal desimal nyata dalam nilai numerik. Pada PC, jika Anda memiliki kolom dolar dan sen untuk, katakanlah, jumlah faktur, dalam jumlah 123,45, file akan berisi enam byte 123.45 (dan mungkin sebuah tanda). Dengan kata lain, ada titik desimal nyata dalam file. COBOL juga bisa melakukan hal berikut: ATAU: Kehadiran. Di PIC menyebabkan desimal nyata dalam file. Desimal tersirat, bagaimanapun, jauh lebih umum di COBOL. Tersirat Desimal Tersirat desimal berarti ada titik desimal tersirat di lokasi tertentu di lapangan, namun sebenarnya tidak tersimpan dalam file. Lokasi desimal tersirat ditunjukkan oleh V di PIC. Menggunakan desimal tersirat akan menghemat ruang dalam file. Desimal tersirat dapat diterapkan ke bidang numerik apa pun, termasuk bidang yang dikemas, atau comp-3. Misalnya, adalah bidang desimal tersirat. Ada 6 digit, maka desimal tersirat - V - dan 2 digit lagi, dengan total 8 digit. Bidangnya berukuran 8 byte tidak ada. Dalam file - lokasi titik desimal tersirat antara 9 (6) dan 99. Jika bidang berisi 00000123 maka saldo akunnya adalah 1,23, karena ada desimal yang tersirat antara dolar dan sen. Sinkronisasi dan Alignment Topik ini sedikit terlibat dalam tutorial ini, namun Anda harus menyadarinya. Saat menggunakan penyimpanan biner (biner dan comp), beberapa kompiler pada beberapa mesin mungkin mengharuskan bidang numerik dimulai pada beberapa batas. Misalnya, pada mesin 32 bit, mungkin diperlukan bidang kompilasi yang dimulai pada batas 32 bit. Jika Anda menentukan bidang comp di tengah catatan, dan tidak terjadi untuk memulai pada batas 32 bit (4 byte), kompilator akan menyelaraskannya dengan batas 32 bit untuk menyinkronkannya. Whats sebenarnya disimpan dalam file mungkin tidak sama dengan PICs pada tata letak menunjukkan. Ini bukan masalah yang sangat umum, sebagian karena bidang biner dan comp tidak begitu umum dalam file, namun Anda harus menyadarinya. Informasi Tambahan Untuk lebih banyak artikel tentang konversi data, lihat Indeks TechTalk kami. Perusahaan Layanan Interaksi Disc COBOL kami dapat mengubah sebagian besar jenis data numerik, termasuk semua tipe data IBM mainframe EBCDIC, dan kebanyakan tipe data ASCII dari sistem PC dan UNIX. Perpustakaan rutin konversi kita memungkinkan kita untuk menangani pekerjaan yang sulit yang tidak dapat dikompilasi kompiler COBOL standar. [9] COMP dan S9 (8) COMP S9 (9) COMP dan S9 (8) COMP Hi All, Berapa jumlah maksimum yang dapat Terjepit ke dua bidang PIC yang berbeda di atas, dan bagaimana opsi kompiler TRUNC (BINOPTSTD) memengaruhinya. Alasan saya bertanya adalah bahwa saya bekerja dengan produk yang disebut HPS yang mendefinisikan bidang Integernya sebagai S9 (8) COMP, dan kemudian memindahkannya ke bidang Integer DB2, yaitu S9 (9) COMP. Ada kekhawatiran bahwa keduanya tidak sesuai. RE: S9 (9) COMP dan S9 (8) COMP k5tm (Programmer) 23 Jul 02 11:46 Tinjau ulang pertama Thread209-205700 di mana saya telah menjawab pertanyaan tentang berapa banyak angka desimal dapat diwakili oleh 31 digit biner. Tentu saja, pemotongan standar dilakukan pada batas desimal terlepas dari representasi data yang mendasarinya. Dugaan saya adalah bahwa Anda tidak akan memiliki masalah untuk memindahkan S9 (8) ke S9 (9) di bawah opsi TRUNC manapun. Jika bergerak adalah arah yang lain, akan ada perbedaan. Bagaimanapun, tampaknya TRUNC BIN akan paling aman untuk masalah Anda, dengan asumsi itu tidak menyebabkan efek samping yang tidak diinginkan. RE: S9 (9) COMP dan S9 (8) COMP Tom, saya membaca threadnya. Dan kemudian saya membacanya lagi. Setelah mengambil beberapa tablet dan berbaring, aku kembali lagi dan aku masih belum yakin bahwa aku mengerti bahwa comp S9 (8) dan comp S9 (9) menempati tempat penyimpanan yang sama (full word) dan aku sadar itu dengan Pilihan TRUNC (BIN) dari compiler, pemotongan seharusnya tidak terjadi seperti pada TRUNC (STD). Saya mendapat kesan bahwa dengan bidang comp S9 (4) ada jumlah maksimum yang dapat dipegang lapangan, yang menurut contoh Anda di thread, adalah 32043. Apakah ini sama untuk comp S9 (89) dan apakah nilai tersebut Beda saya kira pertanyaan yang saya ajukan adalah jika saya mengisi bidang S9 (9) comp dengan nilai terbesar yang bisa diambil, dan memindahkannya ke bidang S9 (8), apakah akan tetap bernilai sama Semoga ini masuk akal , Dan tolong maafkan ketidaktahuan saya di depan matematika RE: S9 (9) COMP dan S9 (8) COMP Dimandja (Programmer) 23 Jul 02 19:50 Pemahaman saya tentang S9 (9) COMP dan S9 (8) COMP adalah COBOL akan Manipulasi angka sampai dengan -999.999.999 dan -99.999.999. Seperti membandingkan Integer untuk COBOL PIC 9s: COBOL PIC 9 (4) COMP max 9,999 COBOL PIC 9 (5) COMP max 99,999 COBOL NATIVE-2 max 65,535 16 bit Integer max 65,535 COBOL PIC 9 (8) COMP max 99,999,999 COBOL PIC 9 (9) COMP max 999,999,999 COBOL NATIVE-4 max 4,294,967,295 32 bit Integer max 4,294,967,295 RE: S9 (9) COMP dan S9 (8) COMP Dimandja (Programmer) 24 Jul 02 06:20 COBOL PIC 9 (4) COMP max 9.999 COBOL PIC 9 (5) COMP max 99,999 COBOL NATIVE-2 max 32,767 16 bit Integer max 32,767 COBOL PIC 9 (8) COMP max 99,999,999 COBOL PIC 9 (9) COMP max 999.999.999 COBOL NATIVE-4 max 2.147.483.647 32 bit Integer max 2.147.483.647 RE: S9 (9) COMP dan S9 (8) COMP k5tm (Programmer) 24 Jul 02 10:05 Saya harap saya tidak terlalu bingung. Untuk mengulangi: Anda menyatakan bahwa masalah Anda sedang memindahkan PIC S9 (8) ke PIC S9 (9). Di bawah aturan pemotongan desimal, ini seharusnya tidak menimbulkan masalah. Demikian juga, di bawah biner pemotongan, saya tidak berpikir ada masalah. Jika Anda memiliki data dengan cara lain, dari 9 (9) sampai 9 (8), maka Anda pasti memiliki pemotongan desimal. Pemotongan biner seharusnya tidak menjadi masalah, meski saya bukan ahli kompiler khusus Anda. RE: S9 (9) COMP dan S9 (8) COMP Crox (Programmer) 24 Jul 02 12:03 Cobalah untuk menggunakan COMP-5 dan bukan COMP. Ini akan bekerja sama untuk alokasi penyimpanan yang sama. Baca manual Anda tentang hal itu COMP-5 hampir selalu lebih baik daripada COMP. RE: S9 (9) COMP dan S9 (8) COMP Semua, saya tidak dapat menggunakan Comp-5 seperti pada satu telah memiliki tabel DB2 dan definisi dclgen-nya, dan di sisi lain, definisi HPS, yang tidak sama . Im di manframe dan saya menggunakan dek kompilasi xpediter yang menurut saya menggunakan cobol370, walaupun saya tidak yakin tentang ini. Jelas tidak masalah dari 9 (8) comp sampai 9 (9) dan saya mulai membentuk kesan bahwa nilai maksimum untuk 9 (9) comp sama dengan 9 (8) comp menggunakan TRUNC (BIN ) Opsi kompilasi. Saya berpikir bahwa Dimandja sudah benar dalam mengatakan bahwa maks untuk setengah kata adalah 32767 dan maks untuk kata penuh adalah 2.147.483.647. Saya berpikir bahwa baik 9 (8) dan 9 (9) comp akan bertahan maksimal ini, walaupun saya terbuka untuk dibujuk jika hal ini terjadi jika seseorang dapat menunjukkan matematika saya kepada saya. Saya kira saya mungkin harus mengetuk sebuah program yang memindahkan nilai ke bidang yang relevan dan melihat apa yang terjadi. Saya yakin telah melakukan ini dengan 32767 bertahun-tahun yang lalu, dan Anda mendapat abend. Akan mencoba besok dan melapor kembali, kecuali jika ada yang tahu sebaliknya. Marc RE: S9 (9) COMP dan S9 (8) COMP slade (Programmer) 24 Jul 02 21:44 Saya telah menyajikan hal-hal berikut sebagai fakta karena tampaknya lebih jelas tanpa semua andalan maybes dan perhapes, namun saya tidak yakin apakah itu benar. Id ingin mendengar apa yang kalian semua pikirkan. Saya tidak tahu apakah poin ini telah ditangani, namun menghitung kapasitas kata setengah, kata, atau kata ganda bergantung pada apakah lapangan digambarkan sebagai tanda tangan atau unsigned dan opsi TRUNC dipilih pada waktu kompilasi. Seingat saya, tanda itu menggunakan bit tingkat tinggi di lapangan, mengurangi kapasitasnya. Dengan asumsi TRUNC (BIN), setengah kata bidang COMP didefinisikan sebagai PIC 9 memiliki kapasitas untuk menahan nilai hingga 65.535 desimal (XFFFF) bidang yang sama, yang didefinisikan sebagai PIC S9, dapat menyimpan nilai hingga 32,767 desimal (X7FFF). RE: S9 (9) COMP dan S9 (8) COMP Dimandja (Programmer) 25 Jul 02 15:53 Ini dari manual COBOL85 saya (TandemCompaqHP): Kisaran nilai untuk tipe NATIVE-2 (16 bit), NATIVE-4 (32 bit), dan NATIVE-8 (64 bit) adalah: Tipe Lower Bound Upper Bound NATIVE-2 -32768 32767 NATIVE-4 -2147483648 2147483647 NATIVE-8 -9223372036854775808 9223372036854775807 Kisaran nilai untuk tipe COMPUTATIONAL-5 adalah: PIC S9 (1) - PIC S9 (4) setara dengan NATIVE-2 -32,768 sampai 32,767 (ditandatangani) atau 0 sampai 65,535 (unsigned) PIC S9 (5) - PIC S9 (9) NATIVE-4 -2,147,483,648 sampai 2.147.483.647 (ditandatangani ) Atau 0 sampai 4.294.967.295 (unsigned) PIC S9 (10) - PIC S9 (18) NATIVE-8 -9,223,372,036,854,775,808 sampai 9,223,372,036,854,775,807 (masuk) atau 0 sampai 18,446,744,073,709,551,615 (unsigned) Itu harus menjelaskan sedikit hal. RE: S9 (9) COMP dan S9 (8) COMP Hi all, pertama banyak terima kasih untuk kalian semua karena kalian semua membantu dengan satu atau lain cara, tapi saya merasa bahwa posting Dimandjas sangat membantu sehingga saya akan memberikan D a bintang. Hope thats ok dengan sisa dari Anda Hal yang saya suka tentang permainan ini adalah bahwa tidak peduli berapa lama Anda telah melakukannya, ada sesuatu yang baru untuk ditemukan, bahkan jika Anda mungkin pernah menyentuhnya bertahun-tahun yang lalu. Saya mendapat bug tentang pertanyaan ini ketika seseorang mengusulkannya sebagai masalah pada hari Senin. Sistem menetapkan nilai pada bidang S9 Pic (8) dan memindahkannya ke bidang comp db2 S9 (9) dalam sebuah tabel dan tabel telah diperbarui. Skenario yang saya sajikan adalah bahwa hal itu menyebabkan masalah dalam produksi karena nilai-nilai yang besar masuk ke dalam tabel yang selanjutnya tidak dapat dibaca menggunakan kolom S9 (8) sebagai kunci. Saya diberitahu bahwa TRUNC (BIN) sedang digunakan. Argumen pertama saya adalah bahwa jika SELALU bersumber dari bidang S9 (8), seharusnya tidak menjadi masalah. Saya diberitahu bahwa ini tampaknya tidak terjadi. Saya masih merasa bahwa ini seharusnya tidak menjadi masalah karena saya yakin jumlah digit yang ditentukan dalam ukuran lapangan tidak relevan saat TRUNC (BIN) ada nilai maksimal dalam setengah kata, kata, dll. Dari dipastikan pemikiran saya, khususnya Dimandjas. Jadi hari ini, saya menulis sebuah program untuk memindahkan berbagai nilai ke berbagai bidang. Hasilnya mengejutkan saya. Saya memindahkan 32768 ke bidang COMP S9 (4) dan melihat nilainya. Ini berisi -32768. Berbagai nilai yang lebih tinggi pindah ke lapangan menghasilkan berbagai angka negatif lebih rendah. Saya melaporkan temuan saya, yaitu bahwa S9 (8) COMP dan S9 (9) COMP bila digunakan dengan opsi TRUNC (BIN) akan mengandung nilai maksimum yang sama persis, hanya untuk diberitahu. Oh tidak, dek kompilasinya adalah TRUNC (STD). - Yang menyebabkan masalah Untuk meringkas semua ini: TRUNC (STD) akan mengikuti PIC yang Anda tetapkan, jadi S9 (4) COMP akan memungkinkan maksimum 9999 dan minimum -9999 TRUNC (BIN) akan memberikan: S9 sampai S9 (4) COMP -32768 sampai 32767 S9 (5) sampai S9 (9) COMP -2147483648 sampai 2147483647 yang melepaskan tanda dari opsi ini akan mengubah rentang ke: 9 sampai 9 (4) COMP0 sampai 65535 9 (5) sampai 9 9) COMP 0 sampai 4,294,967,295 Sekali lagi, terima kasih atas semua bantuan Anda. Nilai MarcA1 PIC X40841 1. A2 s940841 Comp mendefinisikan ulang A1. (Nilai hex pada A1 30 30 30 30 30 30 30 31) (Nilai hex pada A2 30 30 30 30 00 00 00 01) Contoh definisi Anda untuk A1 akan mengandung karakter 1 diikuti oleh tujuh huruf kosong. Redef A1 sebagai A2 hanya akan mendefinisikan ulang empat karakter pertama A1, bukan keseluruhan delapan byte A1. Nilai hex di A1 adalah XF140404040404040. Nilai hex di A2 adalah XF1404040. Nilai numerik A2 adalah 4047519808. Saya tidak tahu bagaimana Anda mendapatkan nilai ASCII di A1. Saya tidak tahu bagaimana Anda mendapatkan nilai 1 untuk benar membenarkan dan memimpin kekosongan yang diubah menjadi nol. Saya tidak tahu bagaimana redef Anda berhasil menggeser kanan empat byte. Seperti yang terlihat di atas nilai pada A2 tidak numerik karena memiliki x00 (yaitu NULL) nulls di A2 adalah numerik comp, bersamaan dengan trailing 01. Persyaratan saya adalah mendapatkan 30 30 30 30 30 30 30 31 di A2. Sehingga saya dapat menggunakannya untuk operasi numerik Dengan asumsi Anda memiliki desimal terurut yang valid di A1 dan benar-benar ingin A2 mengandung nilai COMP (biner) yang valid, lihat di atas Jika Anda benar-benar bermaksud A2 untuk memasukkan angka desimal kosong yang valid untuk digunakan untuk operasi numerik, hapus COMP di A2 redef. Catatan: Adalah wajib bagi saya untuk menggunakan variabel comp. Mengapa Anda tidak dapat menggunakan desimal yang dikemas atau kode ini dijalankan pada mesin yang tidak mendukung instruksi desimal desimal Pls beri tahu saya jika ada informasi lebih lanjut yang diperlukan dari sisi saya. Awalnya, hanya jawaban atas pertanyaan di atas.
Comments
Post a Comment