- 【.cmd】 バッチファイルスクリプト %10 【.bat】
755 :デフォルトの名無しさん[sage]:2014/09/18(木) 07:47:53.33 ID:sZWThT0L - >>751
では俺はWSHを使った方法をば @if (0)==(0) echo off cscript.exe //nologo //e:jscript "%~f0" goto :EOF @end var fs = new ActiveXObject('Scripting.FileSystemObject'); var rfile=fs.OpenTextFile('z:/old.csv', 1, true, 0); var wfile=fs.OpenTextFile('z:/new.csv', 2, true, 0); var index = 1; var data = []; while(!rfile.AtEndOfStream) { data=rfile.ReadLine().split(','); if(data.length<3 || data[0]=='B') continue; data[1]=index++; wfile.WriteLine(data.join(',')); } rfile.Close(); wfile.Close(); fs = null;
| - Regular Expression(正規表現) Part12
901 :デフォルトの名無しさん[sage]:2014/09/18(木) 08:43:59.98 ID:sZWThT0L - ^(?=.*(?:春|冬))(?=.*(?:季節|まだ寒い|もうすぐ|今は))
| - 【.cmd】 バッチファイルスクリプト %10 【.bat】
760 :デフォルトの名無しさん[sage]:2014/09/18(木) 21:52:18.43 ID:sZWThT0L - >>759
もう不要みたいだけど、数万件あるのならデータソースドライバ接続でSQLクエリした方が早いと思う csvファイルと同じフォルダにSchema.iniを作成してから次のbatを起動 Schema.iniの中身 [old.csv] ColNameHeader=False Format=CSVDelimited CharacterSet=OEM Col1=id Text Col2=index Long Col3=contents Text [new.csv] ColNameHeader=False Format=CSVDelimited CharacterSet=OEM Col1=id Text Col2=index Long Col3=contents Text
| - 【.cmd】 バッチファイルスクリプト %10 【.bat】
761 :デフォルトの名無しさん[sage]:2014/09/18(木) 21:53:46.14 ID:sZWThT0L - @if (0)==(0) echo off
type nul>z:\new.csv cscript.exe //nologo //e:jscript "%~f0" goto :EOF @end var USE_SRC_DRIVER_FOR_OUTPUT = 0; //=1でnew.csv出力もデータソースドライバを使う var oldRec,newRec; var index = 1; var db = new ActiveXObject('ADODB.Connection'); db.Open("Driver={Microsoft Text Driver (*.txt; *.csv)}; DefaultDir=z:/; ReadOnly=0"); oldRec = db.Execute("select * from old.csv where id <> 'B'"); if (USE_SRC_DRIVER_FOR_OUTPUT==1) { newRec = db.Execute('select * from new.csv'); } else { var fs = new ActiveXObject('Scripting.FileSystemObject'); newRec=fs.OpenTextFile('z:/new.csv', 2, true, 0); } while(!oldRec.EOF) { if (USE_SRC_DRIVER_FOR_OUTPUT==1) { var strSQL = "insert into new.csv (id,index,contents) values(" + "'"+oldRec.Fields('id')+"','"+(index++)+"','"+oldRec.Fields('contents')+"')"; db.Execute(strSQL); } else { newRec.WriteLine([oldRec.Fields('id'),index++,oldRec.Fields('contents')].join(',')); } oldRec.MoveNext; } oldRec.Close(); newRec.Close(); db.Close(); db=null; fs=null;
|
|