忘れないうちに記録。

//csvにエクスポートしたけど実はデータにカンマが入っていた!!

//しかし、元ネタはなくなってしまってもうエクスポートできない!!
//だから暫定的にnull化してとりあえずインポートできるようにしよう!!

//読み込み対象ファイルが存在するディレクトリ
var path = ‘./’;
//読み込み対象ファイル名
var fName = ‘test.csv’;
//書き出すファイル名
var writeName = ‘replace.csv’
//残念ながらカンマを含んでいた列
var rejectcol = 15
//成形後の全列数
var targetcol = 20
//csvファイルの区切り文字
var separator = ‘,’

//以下、一旦csvファイル内の全データを配列化するルーチン。
//読み込んだファイルの一時格納先
var dat = new Array();
//ファイルオブジェクト作成
var object = WScript.CreateObject( ‘Scripting.FileSystemObject’ );
var file = object.OpenTextFile( path + fName, 1 );
//ファイルの終わりまで読み込む
while( !file.AtEndofStream ){
    var temp = new Array();
    //1行読み込み
    var line = file.ReadLine();
    //行をカンマで配列化
    temp = line.split( separator );
    dat.push(temp);
}
//ファイルを閉じる
file.close();

//以下、問題の列を読み飛ばしてファイルに書き出すルーチン
//出力用ファイルオブジェクト作成
var writeFile = object.CreateTextFile( path + writeName);
//メモ:データとカンマを交互に配列にほりこんで、最後文字列化して吐き出す。
for(var i = 0;i < dat.length;i++){
    var newrow = new Array();
    //1列目~問題の列まで
    for(var j = 0;j < rejectcol – 1 ;j++){
        newrow.push(dat[i][j]);
        newrow.push(‘,’);
    }
    //問題の列の次~最後まで
    for(var j = dat[i].length – (targetcol – rejectcol);j < dat[i].length ; j++){
        newrow.push(‘,’);
        newrow.push(dat[i][j]);
    }
    //要素を結合させた内容をファイルに書き出す
    writeFile.WriteLine(newrow.join(”));
}

//書き込みファイルを閉じる
writeFile.close();

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA