VBScriptで複数の項目をソートして別ファイルに出力するようなコードを作成したいと思っております。

ベストアンサー

0

ご連絡遅くなりました、ありがとうございます。頂いたプログラムで確認できました。すいません、もし宜しければ教えていただきたいのですが、VBSのデバッガはお使いになられてますでしょうか?もしお勧めのデバッガなどございましたら教えて頂けたら幸いです。サンプルのCSVですがもしかしたら表題が無くなったり、項目の比較が5項目になる可能性があり自分でも修正してできるようにしておきたいと思い質問させて頂いた次第です。よろしくお願いいたします。

ThanksImg質問者からのお礼コメント

ありがとうございました。

お礼日時:10/23 19:35

その他の回答(2件)

0

1,Aさん,50,60,70,80,90 2,Bさん,60,70,80,90,100 3,Cさん,60,80,80,90,100 4,Dさん,60,80,85,90,95 5,Eさん,60,80,85,95,100 ↑これを ↓こう置換して 050,060,070,080,090,1,Aさん 060,070,080,090,100,2,Bさん 060,080,080,090,100,3,Cさん 060,080,085,090,095,4,Dさん 060,080,085,095,100,5,Eさん 全体を文字列とみなし普通に簡単なソートアルゴリズムで並べ替えて元に戻せばいいんじゃないでしょうか。

ありがとうございます。参考になります、ソート順を意識した状態にして戻す感じですね。ただ、VBScriptがど素人でもしサンプルコード的なものがございましたら助かります。ちょっとしたことでエラーになって困るレベルの素人でもしよろしければ。

0

VBScriptには基本的にソートに関する関数などは実装されていません 自作して実装することになるわけですが知恵袋の許容文字数では足りません 対してPythonには質問を実現する優秀なソートがあります このような場合はPythonを利用することを考えてみてはどうでしょうか

pythonだと以下のコードで済みます f=open('InputData.txt', 'r') lst=[] fst=True for data in f: _if(fst==True): __fst=False __lstT=data.strip().split(",") _else: __lst.append(data.strip().split(",")) f.close() slst=sorted(lst,key=lambda x:(x[2],x[3],x[4],x[5]),reverse=True) f=open("OutputData.txt","w") f.write(",".join(lstT)+"\n") for data in slst: _f.write(",".join(data)+"\n") f.close()