• 締切済み

COBOL85でのCSVファイルの取扱方法について

progmasa9999の回答

回答No.2

FD CSV-F RECORDING V. 01 CSV-REC. 03 REC-1. 05 CSV-LENGTH PIC 9(nn) COMP-3. <----???マニュアルで確認して下さい。 05 CSV PIC X(最大長). 03 REC-2 REDEFINES REC-1. 05 FILER X(nn). <---CSV-LENGTHのバイト数 05 CSV-BYTE PIC X(1) OCCURS 最大長. READ CSV-Fの後でCSV-LENGTHを参照すると現在の行の文字数が入っています。 後は、CSV-BYTEの中を1バイトずつ検査しながら、CSV-LENGTHになるまで処理をする。

関連するQ&A

  • COBOL、項目末尾に空白がある場合削除の方法その他

    汎用でCOBOL85で開発しています。 入力Fは固定長、 出力Fは可変長のCSV形式ファイルです。 質問なのは、 値と値の間にカンマを入れる(値がなくても必ず固定数入れる)にはどうすればいいか。 項目の末尾に半角空白が入っていた場合削除するにはどうすればよいか。 項目ごとにMOVE文を書くのではなく、LOOPさせるようにする(項目が多いので) の書き方です。 半角空白は確か、項目の後ろから1バイトずつ数えて値があった時点で編集するというような プログラムを見た記憶があるのですが、詳しい書き方がわかりません。 どなたか少しでもお分かりになりましたら教えてもらえないでしょうか。

  • EXCELからCSVファイルの出力方法について

    EXCELについて質問です。 エクセルのシートに入力した内容をCSVファイルで出力したいです。 当方の希望としまして、いくつかあるシートの中で、希望のシートだけCSVファイルを出力し、出力する際は「CSVファイルを出力」のようなボタンをクリックすれば、CSVファイルが出力されるものです。 初心者ですので、できるだけ詳しく教えて頂きたいです。

  • COBOLでの可変長定義について

    unix環境下でCOBOL85を使用しています。 あるデータを可変長でWRITEしていくのですが、 データにヘッダー情報みたいなものが付加されてしまい困っています。 ヘッダー情報を付加しないようにするにはどうすればいいのでしょうか? 定義:  FD Aファイル RECORD IS VARYING 1 TO 100 DEPENDING ON A-CNT.  01 A-DATA PIC X(100). とか  FD Aファイル RECORD IS VARYING IN SIZE DEPENDING ON A-CNT.  01 A-DATA PIC X(100). というパターンで試しています。 Aファイルにaaaという3バイトデータをWRITEすると、 COBOL85020315020304・・・・・aaaというデータが出力されます。 あるコボラーに聞くと「定義がおかしいからでしょう」と言ってたのですが、 どうおかしいかは本人もわからないようです。 どうすればヘッダー情報(COBOL85020315020304・・・・・)がつかず、 可変長でWRITEできるのでしょうか?教えて下さい。

  • CSVファイルの出力

    こんにちは。 ただいまアクセスで商品の検索プログラムを作っていまして、入力した商品名に一致する商品コードと商品名をテーブルから抽出し、CSVファイルに出力したいのですが、どういった方法で出力すればいいのでしょうか?

  • csvファイルでの出力について

    C言語初心者です。 プログラミングにおいて質問なのですが、csvファイルを読み込み、 そのデータを用いて計算し、csvファイルで出力するという問題なのですが、C言語においてcsvファイル形式で出力するにはどのような方法がありますか? 補足:ラベル行に全角文字を入力しないといけません。

  • エクセルのCSVファイルについて。

    こんにちは。 エクセルのCSVファイルの扱いで質問です。 数値を入力した際、 通常の.xlsファイルだと、セルから大きくはみ出した数字は、セルの幅を調節すれば、入力した通りに出力されますよね? 現在、CSVファイルを扱っているのですが、 入力値が「44444444444444400000」のように大きくはみ出した場合、 セルの中には「4.44444E+19」と出力されてしまいます。 あらかじめセルの幅を広くしても、結局、桁の多い数値を入力すると同じような結果になります。 どうすれば、入力した通りの数値を出力させることができるのでしょうか? よろしくお願い致します。

  • cobolプログラムをCSV出力しても空白に...

    2度目の質問です。 宜しくお願いします。 COBOLを勉強し始めて間もないのですが、プログラムを何とか参考書を見ながら書いており、 エラーが出なくなったのですが、CSVファイルで出力しても空白になってしまい、原因がわからず困惑しております。 以下、プログラムを記載します。 何が原因がわかる方おりましたらアドバイスをいただけると幸いです。 IDENTIFICATION DIVISION. PROGRAM-ID. REI-01. ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INFILE ASSIGN TO "C:\COBOL\kamokuUT2.txt" ORGANIZATION LINE SEQUENTIAL. SELECT OUTFILE ASSIGN TO "C:\COBOL\UT2.csv" ORGANIZATION LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD INFILE. 01 INREC. 02 I-NUMBER PIC 9(2). 02 I-NAME PIC X(20). 02 I-KAMOKU-SYURUI PIC 9(3). 02 I-KAMOKU-TEN PIC X(3). FD OUTFILE. 01 OUTREC PIC X(32). 01 W-MIDASHI. 02 W-ID PIC X(8) VALUE "社員番号". 02 W-COMMA PIC X(1) VALUE ",". 02 W-NAME PIC X(4) VALUE "名前". 02 W-COMMA PIC X(1) VALUE ",". 02 W-KAMOKU PIC X(4) VALUE "科目". 02 W-COMMA PIC X(1) VALUE ",". 02 W-TEN PIC X(4) VALUE "点数". 02 W-COMMA PIC X(1) VALUE ",". 01 W-MEISAI. 02 O-NUMBER PIC 9(2). 02 O-COMMA PIC X(1) VALUE ",". 02 O-NAME PIC X(20). 02 O-COMMA PIC X(1) VALUE ",". 02 O-KAMOKU-SYURUI PIC 9(3). 02 O-COMMA PIC X(1) VALUE ",". 02 O-KAMOKU-TEN PIC X(3). 02 O-COMMA PIC X(1) VALUE ",". WORKING-STORAGE SECTION. 77 W-FLAG PIC X(1). PROCEDURE DIVISION. PERFORM MAE-SHORI THRU MAE-SHORI-EXIT PERFORM SHU-SHORI THRU SHU-SHORI-EXIT UNTIL W-FLAG = "1" PERFORM ATO-SHORI THRU ATO-SHORI-EXIT STOP RUN. MAE-SHORI. OPEN INPUT INFILE OUTPUT OUTFILE MOVE "0" TO W-FLAG READ INFILE AT END MOVE "1" TO W-FLAG END-READ. MAE-SHORI-EXIT. EXIT. SHU-SHORI. WRITE OUTREC FROM W-MIDASHI. IF I-KAMOKU-TEN >= 70 THEN MOVE I-NUMBER TO O-NUMBER MOVE I-NAME TO O-NAME MOVE I-KAMOKU-SYURUI TO O-KAMOKU-SYURUI MOVE I-KAMOKU-TEN TO O-KAMOKU-TEN WRITE OUTREC FROM W-MEISAI ELSE CONTINUE END-IF. READ INFILE AT END MOVE "1" TO W-FLAG END-READ. SHU-SHORI-EXIT. EXIT. ATO-SHORI. CLOSE INFILE OUTFILE. ATO-SHORI-EXIT. EXIT. 【出力ファイル.csv】の完成系ですが、 ________________ 社員番号 名前 科目 点数 01 ○○ 010 073   ・     ・   ・    ・   ・     ・   ・    ・ ________________ 【入力ファイル.txt】はこのような形です。 ________________ 01あああああいいいいい010070 ________________ ※入力ファイルの得点が70点以上のファイルのみ出力したいのですが・・・ 長文になってしまいましたが宜しくお願いします。

  • 可変CSVから固定CSVへのファイル加工

    perlでCSVファィルの加工するプログラムを作ろうと思っております。 プログラム初心者な為どれから手を付ければ良いのか 判りません。 宜しければ サンプル等作っていただければありがたいです。 1.指定されたフォルダの中の 最新更新日付のファイルを読み込みむ 2.5分置きに可変CSVで出力されるデータを出力を 10分単位の固定CSVへ出力する 3.出力の際には以下の固定数字、時間、文字、数字等を入れ 加工した上で固定系CSVの出力をしたいです。 ・固定の数字20450△△△, ・固定の数字 01,   ・年月日時間    YYMMDDhhmm, ・固定数字 01, ・固定文字 TP, ・固定数字 01, ・固定文字 +か-,  元データが△△△19.2の場合は+を出力  -19.2の場合は-を出力   4カラム目を19.5 の場合△△195 ・固定文字 TA, ・固定数字 01, ・固定文字 +か-,  元データが△△△12.2の場合は+を出力  -12.2の場合は-を出力   4カラム目を19.5 の場合△△195 入力のファイル名 20110301.csv ファイルの中身 17549,2011/3/25,0:00:00,19.5,12.2 17550,2011/3/25,0:05:00,19.6,12.2 17551,2011/3/25,0:10:00,19.5,12.2 17552,2011/3/25,0:15:00,19.5,12.2 17553,2011/3/25,0:20:00,19.4,12.2 17554,2011/3/25,0:25:00,19.4,12.2 17555,2011/3/25,0:30:00,19.4,12.2 17556,2011/3/25,0:35:00,19.3,12.2 17557,2011/3/25,0:40:00,19.3,12.2 17558,2011/3/25,0:45:00,19.2,12.2 17559,2011/3/25,0:50:00,-19.2,12.2 ↓ 出力のファイル名 10_200203.dat 20450 , 01,201103250010,1,TP,1,+ 195,TA,1,+ 122 20450 , 01,201103250010,1,TP,1,+ 195,TA,1,+ 122 20450 , 01,201103250020,1,TP,1,+ 194,TA,1,+ 122 20450 , 01,201103250030,1,TP,1,+ 194,TA,1,+ 122 20450 , 01,201103250040,1,TP,1,+ 193,TA,1,+ 122 20450 , 01,201103250050,1,TP,1,+ 192,TA,1,+ 122

  • COBOLについて

    COBOLについて質問です。ド素人なんですが、明日までの課題が出てしまい、教えてください。入力ファイル(給与関係の課題、例えば社員氏名・基本給・残業手当などの項目がある)を読み込んで、それを給料支給一覧表に出力するプログラムを設計せよ。要は、エクセルでまとめの表をつくるような感覚なんですが、oracob?SQL?ってレベルなので、分かる方いたら流れだけでもいいから教えて下さい。全然わからないのです。。]

  • ExcelのCSVファイル出力について

    Excelが出力したCSVファイルを扱うプログラムに関する質問です。 Windwosの[コントロールパネル]⇒[地域と言語のオプション]で、 小数点の記号を「.(ピリオド)」から「,(カンマ)」に変更しました。 するとExcelからCSVファイルを出力したときの各データの区切り文字が 「,(カンマ)」から「;(セミコロン)」に変わるようなのですが、 これに対応できるプログラムを作りたいと考えています。 CSVファイルの区切り文字は、Windowsのロケール情報として プログラム上から取得可能なのでしょうか?