JScript+WSHでプログラミング基礎100本ノック その77~80 ファイルの入出力
その77 ファイルの読み込み
テキストファイルを読み込んで、すべてプロンプトに表示してください。
仕様
・読み込むファイルは "input.txt"とし、batと同じフォルダに配置する。
・ファイルの中身は下記とし、SJIS(ANSI)で保存すること
北海道
宮城県
東京都
愛知県
京都府
大阪府
福岡県
・ファイルの読み込みは自作関数readFIle内で実施すること
ヒント
・ファイルの読み込みは下記で実施可能
var inputFilePath = "input.txt";
var inputArray = [];
var fileopen_state = 0; // 0:ASCII -1:Unicode -2:SystemDefault
var fs = new ActiveXObject( "Scripting.FileSystemObject" );
var file = fs.OpenTextFile( inputFilePath, 1, true, fileopen_state ); // ファイルを読み取り専用で開く
while( !file.AtEndOfStream ){
inputArray.push(file.ReadLine());
}
file.Close(); // ファイルを閉じる
fs = null; // オブジェクトを初期化
コード例
var readFile = function(inputFilePath){
var inputArray = [];
var foState = 0; // file open state 0:ASCII -1:Unicode -2:SystemDefault
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var file = fso.OpenTextFile( inputFilePath, 1, true, foState ); // ファイルを読み取り専用で開く
while( !file.AtEndOfStream ){
inputArray.push(file.ReadLine());
}
file.Close(); // ファイルを閉じる
fs = null; // オブジェクトを初期化
return inputArray;
}
var inputFilePath = "input.txt";
var iarr = readFile(inputFilePath); // inputArray => iarr
for(var i=0; i<iarr.length; i++){
WScript.echo(iarr[i]);
}
出力結果
北海道
宮城県
東京都
愛知県
京都府
大阪府
福岡県
続行するには何かキーを押してください . . .
その78 ファイルの書き込み(新規書き込み)
テキストファイルを読み込んで、すべてプロンプトに表示してください。
その後、同じ内容をテキストファイルに新規書き込みしてください。
仕様
・読み込むファイルは "input.txt"とし、batと同じフォルダに配置する。
・書き込むファイルは "output.txt"とする
・ファイルの中身は下記とし、SJIS(ANSI)で保存すること
北海道
宮城県
東京都
愛知県
京都府
大阪府
福岡県
・ファイルの読み込みは自作関数readFIle内で実施すること
・ファイルの新規書き込みは自作関数writeFIle内で実施すること
ヒント
・ファイルの新規書き込みは下記で実施可能
var outputFilePath = "output.txt";
var outputArray= [];
var fileopen_state = 0; // 0:ASCII -1:Unicode -2:SystemDefault
var fs = new ActiveXObject( "Scripting.FileSystemObject" );
var file = fs.OpenTextFile( outputFilePath , 2, true, fileopen_state ); // 2:新規に書き込み 8:追記
for(var i=0;i<outputArray.length;i++){
file.WriteLine(outputArray[i]);
}
file.Close(); // ファイルを閉じる
fs = null; // オブジェクトを解放
コード例
var readFile = function(inputFilePath){
var inputArray = [];
var foState = 0; // file open state 0:ASCII -1:Unicode -2:SystemDefault
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var file = fso.OpenTextFile( inputFilePath, 1, true, foState ); // ファイルを読み取り専用で開く
while( !file.AtEndOfStream ){
inputArray.push(file.ReadLine());
}
file.Close(); // ファイルを閉じる
fs = null; // オブジェクトを初期化
return inputArray;
}
var writeFile = function(outputFilePath, outputArray){
var foState = 0; // file open state 0:ASCII -1:Unicode -2:SystemDefault
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var file = fso.OpenTextFile( outputFilePath, 2, true, foState ); // 2:新規に書き込み 8:追記
for(var i=0; i<outputArray.length; i++){
file.WriteLine(outputArray[i]);
}
file.Close(); // ファイルを閉じる
fs = null; // オブジェクトを解放
}
var inputFilePath = "input.txt";
var outputFilePath = "output.txt";
var iarr = readFile(inputFilePath); // inputArray => iarr
for(var i=0; i<iarr.length; i++){
WScript.echo(iarr[i]);
}
writeFile(outputFilePath, iarr);
出力結果
北海道
宮城県
東京都
愛知県
京都府
大阪府
福岡県
続行するには何かキーを押してください . . .
その79 ファイルの書き込み(追記)
テキストファイルを読み込んで、すべてプロンプトに表示してください。
その後、同じ内容をテキストファイルに新規書き込み後、さらに追記してください。
仕様
・読み込むファイルは "input.txt"とし、batと同じフォルダに配置する。
・書き込むファイルは "output.txt"とする
・ファイルの中身は下記とし、SJIS(ANSI)で保存すること
北海道
宮城県
東京都
愛知県
京都府
大阪府
福岡県
・ファイルの読み込みは自作関数readFIle内で実施すること
・ファイルの新規書き込みは自作関数writeFIle内で実施すること
・ファイルの追記は自作関数appendFile内で実施すること
ヒント
・ファイルの新規書き込みは下記で実施可能(fs.OpenTextFileの引数を2から8にするだけ)
var outputFilePath = "output.txt";
var outputArray= [];
var fileopen_state = 0; // 0:ASCII -1:Unicode -2:SystemDefault
var fs = new ActiveXObject( "Scripting.FileSystemObject" );
var file = fs.OpenTextFile( outputFilePath , 8, true, fileopen_state ); // 2:新規に書き込み 8:追記
for(var i=0;i<outputArray.length;i++){
file.WriteLine(outputArray[i]);
}
file.Close(); // ファイルを閉じる
fs = null; // オブジェクトを解放
コード例
var readFile = function(inputFilePath){
var inputArray = [];
var foState = 0; // file open state 0:ASCII -1:Unicode -2:SystemDefault
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var file = fso.OpenTextFile( inputFilePath, 1, true, foState ); // ファイルを読み取り専用で開く
while( !file.AtEndOfStream ){
inputArray.push(file.ReadLine());
}
file.Close(); // ファイルを閉じる
fs = null; // オブジェクトを初期化
return inputArray;
}
var writeFile = function(outputFilePath, outputArray){
var foState = 0; // file open state 0:ASCII -1:Unicode -2:SystemDefault
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var file = fso.OpenTextFile( outputFilePath, 2, true, foState ); // 2:新規に書き込み 8:追記
for(var i=0; i<outputArray.length; i++){
file.WriteLine(outputArray[i]);
}
file.Close(); // ファイルを閉じる
fs = null; // オブジェクトを解放
}
var appendFile = function(outputFilePath, outputArray){
var foState = 0; // file open state 0:ASCII -1:Unicode -2:SystemDefault
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var file = fso.OpenTextFile( outputFilePath, 8, true, foState ); // 2:新規に書き込み 8:追記
for(var i=0; i<outputArray.length; i++){
file.WriteLine(outputArray[i]);
}
file.Close(); // ファイルを閉じる
fs = null; // オブジェクトを解放
}
var inputFilePath = "input.txt";
var outputFilePath = "output.txt";
var iarr = readFile(inputFilePath); // inputArray => iarr
for(var i=0; i<iarr.length; i++){
WScript.echo(iarr[i]);
}
writeFile(outputFilePath, iarr);
appendFile(outputFilePath, iarr);
出力結果
北海道
宮城県
東京都
愛知県
京都府
大阪府
福岡県
続行するには何かキーを押してください . . .
1つ目の北海度~福岡のセットはwriteFIleによるもの、
2つ目の北海度~福岡のセットはappendFIleによるもの。
その80 ファイルの読み込みと書き込み
テキストファイルを読み込んだあと、各行を修正し、テキストファイルに新規書き込んでください。
仕様
・読み込むファイルは "input.txt"とし、batと同じフォルダに配置する。
・書き込むファイルは "output.txt"とする
・ファイルの中身は下記とし、SJIS(ANSI)で保存すること
北海道
宮城県
東京都
愛知県
京都府
大阪府
福岡県
・ファイルの読み込みは自作関数readFIle内で実施すること
・ファイルの新規書き込みは自作関数writeFIle内で実施すること
・ファイルの追記は自作関数appendFile内で実施すること
・出力するファイルの中身は下記とすおる
北海道に行きたい
宮城県に行きたい
東京都に行きたい
愛知県に行きたい
京都府に行きたい
大阪府に行きたい
福岡県に行きたい
コード例
var readFile = function(inputFilePath){
var inputArray = [];
var foState = 0; // file open state 0:ASCII -1:Unicode -2:SystemDefault
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var file = fso.OpenTextFile( inputFilePath, 1, true, foState ); // ファイルを読み取り専用で開く
while( !file.AtEndOfStream ){
inputArray.push(file.ReadLine());
}
file.Close(); // ファイルを閉じる
fs = null; // オブジェクトを初期化
return inputArray;
}
var writeFile = function(outputFilePath, outputArray){
var foState = 0; // file open state 0:ASCII -1:Unicode -2:SystemDefault
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var file = fso.OpenTextFile( outputFilePath, 2, true, foState ); // 2:新規に書き込み 8:追記
for(var i=0; i<outputArray.length; i++){
file.WriteLine(outputArray[i]);
}
file.Close(); // ファイルを閉じる
fs = null; // オブジェクトを解放
}
var appendFile = function(outputFilePath, outputArray){
var foState = 0; // file open state 0:ASCII -1:Unicode -2:SystemDefault
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var file = fso.OpenTextFile( outputFilePath, 8, true, foState ); // 2:新規に書き込み 8:追記
for(var i=0; i<outputArray.length; i++){
file.WriteLine(outputArray[i]);
}
file.Close(); // ファイルを閉じる
fs = null; // オブジェクトを解放
}
var inputFilePath = "input.txt";
var outputFilePath = "output.txt";
var iarr = readFile(inputFilePath); // inputArray => iarr
var oarr = [];
for(var i=0; i<iarr.length; i++){
oarr.push(iarr[i] + "に行きたい");
}
writeFile(outputFilePath, oarr);
出力結果
続行するには何かキーを押してください . . .
”oarr.push(iarr[i] + "行きたい");”の部分の処理をもっと複雑にすると、様々な処理ができる。