COBOLのUNSTRING文についての質問です。
CSVを読んで項目を分解するためにUNSTRING文を使用したんですが、
最後の項目だけ取得できないのです。
どうすれば取得できますか。教えてください。
例)
CSV
CSV-RECD
A001,B002,C003,D004
UNSTRING CSV-RECD DELIMITED BY ","
INTO WK-A WK-B WK-C WK-D.
この例の場合、
WK-A には A001
WK-B B002
WK-C C003
とちゃんとセットされるのですが、
WK-D には何もセットされずに初期値にままです。
期待するのは、D004 とセットしてほしいのです。
ちなみにCSV-RECDを以下のようにするとうまくWK-D にセットされます。
A001,B002,C003,D004,
最後尾に","をつけたら期待する結果になるのですが、
その最後尾につけるのは仕様上問題があるのです。
なにかいい方法があったら教えてください。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
大昔のコボラーです。
UNSTRING命令などには疎いので、的はずれであれば、ごめんなさい。CSV-RECDのデータって、D004の後ろに空白がありませんか?変数WK-Dが4文字分で定義されている場合、空白分が入りきらず、オーバーフロー扱いになり、WK-Dへの転記が中断された可能性はないでしょうか?
WK-Dを十分な大きさで定義すれば、いけるような気がします。
また、最終位置にカンマを付けることは仕様的に不可とのことですが、確かに、実際のデータ上にカンマを付けるのは、他のプログラムにも影響するので無理だと思います。しかし、このプログラムの内部的(変数上のみ)に付加することはできますよね?よって、事前にSTRING命令などを使って、カンマを付けることもできると思います。
ママチャリさん
貴重なヒントになりました。
後ろに空白が入ってたので、指定した桁数にセットできなかったのが判明しました。
なので、プログラムの内部的にカンマを付加することにしました。
それで解決しました。
ヒントをくださりありがとうございました。
No.2
- 回答日時:
> 確認方法にも間違いがあると思えません。
コンパイラにバグがあるとも思えないので、確認方法が間違っているというケースしかあり得ないです。
プログラム全体と実行結果を書いてみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQLの書き方について 1 2023/04/13 09:54
- ジャズ 渡辺貞夫さんで1番好きな曲を教えて下さい。 https://youtu.be/wk-H0A9mVS8 3 2022/07/16 02:19
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- その他(プログラミング・Web制作) Windowsのバッチファイルについてご教示ください 5 2023/07/25 20:23
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- 哲学 《自性清浄心》と《聖なる甘え》――ブッダとは目が覚めたという意味である―― 0 2023/05/23 04:15
- Visual Basic(VBA) vbaマクロについて 次のようなマクロを組みたいです。 自分は初心者なので全くわかりません。 詳しく 8 2023/05/18 18:38
- 簿記検定・漢字検定・秘書検定 満期保有目的債券の償却原価法の計算について(簿記2級) 1 2022/06/18 15:40
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あるプログラムのコマンドライ...
-
Excelで4096点以上のFFTの方法
-
XnViewにwebpを「いつも開く」...
-
読み込み中にアクセス違反が発...
-
VBAでユーザーフォームが自動的...
-
VC++でプログラムの多言語化を...
-
少ない順 昇順 降順
-
エクセルとワードをデスクトッ...
-
PICマイコンのコピー(クローン...
-
基本的なC言語のプログラム
-
VBAにてメール作成した際、一部...
-
1. 仮想CPU「exmini」を使用し...
-
C#での台形の面積を求めるプロ...
-
閉じるを押してもデバッグが終...
-
Excelに埋め込んだVBAのプログ...
-
NC旋盤の原点設定
-
テキストファイルを間違えて保...
-
VB.netで自作プログラムがウイ...
-
エクセルVBA 検索時に除外を設...
-
TK-85においてプログラム作成に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで4096点以上のFFTの方法
-
あるプログラムのコマンドライ...
-
VBAにてメール作成した際、一部...
-
PICマイコンのコピー(クローン...
-
長距離・マラソンをやりながら...
-
Excelに埋め込んだVBAのプログ...
-
「Outlookが他のプログラムによ...
-
自動クエリとはどういうもので...
-
未使用の変数を一括検索する方法
-
読み込み中にアクセス違反が発...
-
VBAでユーザーフォームが自動的...
-
エクセルとワードをデスクトッ...
-
モジュール、アプリケーション...
-
テキストボックスのエンターキ...
-
画像を読み込むのと取り込むの...
-
Vba 実数および実数タイプの変...
-
インクリメント演算子のみを用...
-
main関数を先頭に置くデメリット
-
C言語でのaccess violationに...
-
Application.ScreenUpdatingが...
おすすめ情報
artooさん
プログラムには間違いないですか。
確認方法にも間違いがあると思えません。
こちらの環境ですが、NetExpress5.1です。
最後尾に","を付加してなくても期待とおりでしたのですね。