□技術メモ - JavaScript-tool ※管理人の個人的な技術メモです。サンプルソースを実行した結果について 管理人はいかなる責任も負いかねますのでご自身の責任でお試しください。 ----------------------------------------------------------- このページではファイル処理用のツールと これに関連するコードを記載しています。 ----------------------------------------------------------- ・指定したフォルダのファイル一覧を取得する ・テキストファイルへの文字列の入出力 var adTypeBinary = 1, adTypeText = 2; var adReadAll = -1, adReadLine = -2; var adSaveCreateNotExist = 1, adSaveCreateOverWrite = 2; var adWriteLine = 1; function getFiles(sPath, opt){ var fArray = new Array(); var fList, wName; // var fso = new ActiveXObject("ADODB.Stream"); var fso = new ActiveXObject("Scripting.FileSystemObject"); //GetFolderメソッドをサポートしているのはこちら if (opt == 1) {fList = fso.GetFolder(sPath).Files; } else {fList = fso.GetFolder(sPath).SubFolders; } var e = new Enumerator(fList); for(;!e.atEnd();e.moveNext()){ if (opt == 1) {wName = e.item().Name; } else {wName = new String(e.item());} fArray.push(wName); //WScript.echo(wName); } return fArray; } function writeList(list,fout){ var w=new ActiveXObject("ADODB.Stream"); w.type=adTypeText; w.charset="utf-8"; w.open(); var count=0; while(count= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4) ) { return 1; //半角 } else { return 2; //全角 } } ----------------------------------------------------------- ・タブをスペースに変換する function convTabString(str){ var TAB_LENGTH = 4; //タブ長 = 4 var strRet = ""; var sumLength = 0; for (var iCnt = 0; iCnt < str.length; iCnt++) { //var strWk = str.substring(iCnt,iCnt+1); //引数:開始位置、終了位置 var strWk = str.substr(iCnt,1); //引数:開始位置、長さ var c = strWk.charCodeAt(0); //キャラクタコード取得 //WScript.echo('char:' + c); var iLen = getCharLen(c); //WScript.echo('len:' + iLen); if (iLen == 3) { //タブの場合 var lenSpace = TAB_LENGTH - (sumLength % TAB_LENGTH); //スペースの長さ sumLength += lenSpace; strRet += list_space[lenSpace]; } else { //全角、半角の場合 sumLength += iLen; strRet = strRet + strWk; } } return strRet; } ----------------------------------------------------------- ・関数の使用例 文字列中のタブをスペースに変換する list_space = new Array; //グローバル宣言 getSpaceList(list_space); //グローバルで作成しておく var str_in = "12\t漢字"; //\t はタブ WScript.echo(str_in); var strConv = convTabString(str_in); WScript.echo(strConv); //タブが半角スペース2文字に変換されることを確認 ----------------------------------------------------------- ・関数の使用例 レイアウトを変えることなくタブをスペースに変換する 入力ファイルはlist1.txt(utf-8形式) タブ長=4, 修正するときは、convTabStringを修正すること list_space = new Array; //グローバル宣言 getSpaceList(list_space); //グローバルで作成しておく var list_in = new Array; var list_out = new Array; readList(list_in, "list1.txt"); var cnt=0; while(cnt