• ベストアンサー

COBOLでCSVをインプットにして読むには・・・。

Windows環境においてCSV(可変長)ファイルをインプットにしてシーケンシャルファイル(カンマなし固定長)にしたいのですがCSVをそのまま読み込むことは可能なのでしょうか? CSVファイルがどこにあるかフォルダの指定などはどこでおこなうのでしょうか?読み込みはSFファイルと同様に行うことができるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • epson01
  • ベストアンサー率12% (120/933)
回答No.1

どこにあるかは、あらかじめ「検索」で探しておいてフォルダを特定しておきます。 「JCL」でフォルダ指定を行います。 SFファイルでいいですが、ハンドリングが大変ですから、フリーソフトで、一旦は固定長にしてから、COBOLで扱うようにします。 ハンドリングが大変な理由: CSVはカンマ区切りですが 「データにカンマが必要な場合は前後に”を付ける」ということになっています。 「データに”が必要な場合は”を2つ続ける(余分に1個つける)ということになっています。 などの規則がありませから一概に「カンマ」だけの意識ではダメです。 (念のため)

関連するQ&A

  • CSVをVB(input)で読み込んだ場合に数値を文字列として読込みたい。

    初めまして。個人的にVB6.0を勉強しています。教えてください。 【概要】 VBを使用し、CSVの読込(input #)→編集→TXTで出力(White #) する場合、inputの読込段階でデータが自動変換されてしまう。 【内容】 CSV(カンマ区切)のデータです。 (例) シメイ,住所(都道府県),市街局番,番号 小林○○,千葉県○市○○,011,111-1111 佐藤○○,埼玉県○市○○,009,999-9999 input #で読込むと、市外局番の頭0(ゼロ)が省略され【11】や【9】と読込まれてしまう。 なんとか文字列として【011】や【009】と読込みたいです。 【奮闘記】 input #を使用し上記ファイルを+読込んでいます。 (line inputで読み込むと1列全てが結合された文字列となってしまうので、電話番号を結合するなど、編集ができなくなってしまうので) input #として読込んだ段階で、数値として自動変換されてしまっているので、どうすればよいものなのか。。。 どんなアドバイスでも助かります!!よろしくお願いします。

  • <input>で送信するfileのMIMEチェック

    <input type="file">でcsvのみを送信できるようにするために、jQueryでtypeチェックしているのですが、csvのMIMEがPC(ブラウザ)環境によっていろいろあるみたいですが調べても出てこないのでお教えください。 html ------------------------------ <input type="file" accept=".csv" onChange="checkFile();"> ---------------------------------- javascript ------------------------- function checkFiles(){  var files = $('input').prop('files');  for (file in files){   console.log(files[file].type);  } } ---------------------------------- これを実行すると、環境によってfiles[file].typeが以下の4種類あることがわかりました。 text/csv text/comma-separated-values application/csv application/force-download 最初はここまでcsvの種類があるのが知らずに上から2つまでチェックしていたのですが、他の環境だと上記の4つまで出てきました。 もしかしたらさらに多くの種類があるのでは・・・?と思ってしまいますが、そもそも送信するのにcsvかどうかチェックするのにMIMEではダメなのでしょうか? ちなみにcsvファイルはExcelで出力したり、テキストエディタなどで作ったファイルです。 送信する人が作るのでどのアプリで作ってくださいと指定はできません。 どうぞよろしくお願い致します。

  • マクロでのcsv読み込みについて

    エクセルのマクロにてcsvファイル(カンマ区切り)のデータを読み込むマクロを制作しているのですが、そのcsvファイルが1行めを2行目がデータ本体ではない為カンマの数が違い、openを使って読み込みを行うとうまくいきません。何かいい方法はないでしょうが。よろしくお願いいたします。

  • EXCELからCSVにすると余計なカンマがつきます

    こんにちは。 EXCELから固定テキストでデータの利用をするために ファイルをCSVにしました(件数約1万)。 その後テキストエディタで確認すると 最初の数千件は 1,2,3,4,5(改行) 6,7,8,9,0 のように目的とした文字列になってくれているのですが ある所から急に 1,2,3,4,5,(改行) 6,7,8,9,0, と、お尻にカンマがついてしまいます。 固定長で利用したいので、このカンマは余計なのですが、 カンマがつくならつくで、すべてのレコードについていれば 構いません。 なお、何回か試しているのですが、そのつどカンマが 現れる場所が違います。 時には最初カンマなし、途中カンマあり、また途中から カンマなしなどというファイルも作られます。 どちらかに統一できる方法をご存知の方はいらっしゃいます でしょうか。 お知恵を拝借したく存じます。 よろしくお願い致します。

  • 可変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

  • CSVファイルの読み込み

    お世話になります。 VBAでCSVファイルを読み込んで処理をしたいのですが、 たとえば下記のようなCSVファイルの場合 2つめの項目が金額セットされており、あらかじめ通貨編集(カンマ編集) がされていて 金額を1つの項目として読み込む事が出来ません。 金額は""でくくってあるのですが、 カンマ区切りのデータと""でくくってあるデータを うまく区別して3つの項目をそれぞれ抽出する事は可能でしょうか? -----以下CSVの内容------ 日付,金額,データ 2007/03/09,"1,200",TEST1 2007/03/09,"12,200",TEST2 2007/03/09,"76,00",TEST3 2007/03/09,"4,5600",TEST4 --------------------------- ちなみに現在はこのようにカンマ区切り指定でデータを抽出してるので うまく出来ません。   'FileNameにはオープンするファイル名がセットされています   Open FileName For Input As   'textlineに1行を読み込む   Line Input #ch1, textline   csvline() = Split(textline, ",") VBAがまだ不慣れな為質問やサンプルが分かりずらいと思いますが よろしくお願いします。

  • CSVをExcelに変換したい

    お世話になります。 CSVファイルをExcelファイルに変換する場合、CSVファイルをExcelで開いて拡張子を「xls」もしくは「xlsx」を指定して保存すればよいかと思いますが、PCにExcelがインストールされてない環境の場合、Excelに変換することは不可能でしょうか。 今回、Accessにてツールを作成し、CSV(カンマ区切り)のデータを読み込もうとしておりますが、そのデータの中には単語の中にカンマが含まれているものがある為、普通にCSVをインポートしようとすると、ズレてしまいます。 なので、インポートする前準備としていったんExcelに変換したいと考えているのですが。。そのPCにExcelがインストールされてないと、やはり変換することは出来ないでしょうか。 もしくは、カンマ区切りのCSVファイルをタブ区切りに変換したりすることは出来ますでしょうか。 ご教授の程、宜しくお願い致します。

  • VB6.0 CSVファイル読み込みについて

    VB6.0について質問です。 CSVファイルの読み込みを行いたいのですがうまくいきません。。。 以下のソースのどこに問題ありますでしょうか?>< 14個のカンマ区切りのCSVファイルを読み込んでいますが ファイルのデータを変更するとインデックスが有効範囲にありませんというエーラーがでます。。。 ファイルは3行で構成しているのですがヘルプを参照したら複数行の場合はLINE Input #1, MyString(i)と書いてありました。 しかしやってみると行ごとのデータを取得してカンマ区切りで取得してくれませんでした。。。 以下のソースで実行すると改行部でエラーになるようです。 改行を無視するようなロジックを入れる必要があるのでしょうか? Dim MyString(), i Open App.path & "\" & CSV_filename For Input As #1 ReDim MyString(13) Do While Not eof(1) Input #1, MyString(i) Label4(i).caption = MyString(i) i = i + 1 Loop Close #1

  • CSVファイル読み込み

    VC++でCSVファイルの読み込みを作っています。 ファイル名「abc.csv」というファイルがあり CSVファイルの内容は、 "id","food" "1","バナナ" "2","オレンジ" となっています。 ソース上はファイルをオープンして 読み込むところまでは分かりましたが、 CSVファイルのコンマの分解とその後の処理が分かりません。読み込んだ後、コンボボックスで、CSVファイルのname一覧を表示する予定でいます。 例では、バナナ     オレンジ とコンボボックスで表示して選択できるようにします。 今のソースは以下の通りです。 CStdioFile file; CString name; int flag;  if(!file.Open("abc.csv",CFile::modeRead)){ AfxMessageBox("File Open failed"); } while(flag){ if(file.ReadString(name)==FALSE) //nameにデータ読み込み break; //CSVコンマを分解 //テキスファイルで読み込み?表示? } file.Close(); //file close 初心者なので間違いだらけかもしれませんが よろしくお願いしますm(__)m

  • CSVファイルのダウンロード

    <環境> PHP4.3.2 Windows2000 PostgreSQL RedHat Linux <求めていること> DBのデータをCSVファイルに書き出し、 ダウンロードボタン押下で ダイアログがアップしファイル保存ディレクトリ選択、保存。 <現在のソース> サーバーにtest.csvファイル作成後、 現在HTMLでダウンロードボタン押下でdownload.phpを呼び出し <input type=button value="ダウンロード" onClick="location.href='download.php'"> ---------------- download.php ------------------- <?php // 1.ディレクトリ指定 //$filename="/test/test.csv"; // 2.ディレクトリ指定なし $filename = "test.csv"; header("Content-disposition: attachment; filename=$filename"); header("Content-type: application/octet-stream"); ?> ---------------- download.php ------------------- 現在、 1番のディレクトリ指定だと downloadというファイルがダウンロードされるダイアログがアップし ダウンロードされます。 2番のディレクトリ指定なしだと もちろん空のtest.csvファイルがダウンロードされます。 実現したいのは/test/test.csvのファイルをダウンロードすることです。 色々なサイトで探してみて試しているのですが 初心者なもので、行き詰まってしまいました。 申し訳ありませんが ご教授よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう