- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:perlを使って、CSVデータからテキストデータを作りたいです。)
perlを使用してCSVデータからテキストデータを作成
このQ&Aのポイント
- perlを使用して、CSVデータからテキストデータを作成する方法について教えてください。
- 同じIDのアイテムと商品だけを表示する方法についても教えてください。
- ファイル名とファイルの中身はどのように生成すれば良いですか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
CSVはそれを出力するアプリケーションによって異なりますが、それはきちんと2次元配列に入っているとします。 #CSVはそれを出力するアプリケーションによって異なりますが、それはきちんと2次元配列に入っているとします。 my @DATA=( ["ID","アイテム","商品名"], ["1111","AAAAAAAA","aaaaaaaa"], ["1111","BBBBBBBB","bbbbbbbb"], ["1111","CCCCCCCC","cccccccc"], ["2222","AAAAAAAA","aaaaaaaa"], ["2222","DDDDDDDD","dddddddd"], ); これを for(1..$#DATA){}でループさせて、IDだけのリストと、ハッシュ(ID)のハッシュ(アイテム,商品名)に代入して、最後にIDをキーにしてハッシュを呼び出す。 複雑なデータならリファレンスを使って処理するのでしょうが、ここは順当に初心者でもわかりやすい方法で・・
お礼
$user_id[$k] = $split_data[1]; for($j = 0; $j < @csv_data; $j++){ @split_data = split("\,",$csv_data[$j]); if($split_data[1] == $user_id[$k]) { print FH … こうやって書いたら上手く行きました! ありがとうございました!
補足
今、こんな感じで書いています。 for($j = 0; $j < @csv_date; $j++){ @split_date = split("\,",$csv_date[$j]); if(※ユーザーIDが一緒だったらという条件を加えたい){ print FH "■ID${split_date[0]}\n\n"; print FH "アイテム/${split_date[1]}\n"; print FH "商品/${split_date[2]}\n"; print FH "------------------------------------\n\n"; } } ここの※印のところの書き方が分かりません、、 ここの書き方って教えていただけないでしょうか、、 すみません。