Little Strange Software

スマホアプリの開発を行う LittleStrangeSoftware のブログです。

【JavaScript】簡易テキストファイル書き換えスクリプト

 

 

 どうも!LSSです!!

 

今回は、使いどころのよく分からないツールを作ってみましたw

 

 

f:id:little_strange:20210515234023p:plain

使い方

テキストファイルの中の特定の文字を、違う文字に変換するツールです。

 

まず「変換元の文字列」「変換後の文字列」を入力します。

 

次に、「ファイルを選択」ボタンを押し、お手元の端末内にある対象のテキストファイル(HTMLファイルやSVGファイルやCSVファイルも選択可能です)を選ぶと、即座にそのテキストファイル内に「変換元の文字列」と同じものがあったら全て「変換後の文字列」の内容に書き換えられます!

 

なお、出力後のファイル名は、元のファイル名の末尾に「_r」が付与された物になります。

  

 

例えば…

「変換元の文字列」を「です。」
「変換後の文字列」を「でやんす。」
 にして、ですます調で書かれた文章のテキストファイルを読み込むと…なんだか愉快な文章のテキストファイルが出来上がりますw

 

あるいは、色の指定を「#000」で黒い線を描いているSVGファイルがあったら、
「変換元の文字列」を「#000」
「返還後の文字列」を「#f00」
にして、そのSVGファイルを読み込むと、黒かったSVGファイルが赤くなります。

 

コード

<p><input id="rpa" type="text" placeholder="変換元の文字列" /> → <input id="rpb" type="text" placeholder="変換後の文字列" /></p>
<p><input id="ftxt" accept="text/*,.svg,.csv" type="file" /></p>
<div id="gtxt"> </div>
<script>// <![CDATA[
rdt=new FileReader();
rdtn='';
ftxt.addEventListener('change',ftxtch,false);
rdt.addEventListener('load',rdtld,false);
function ftxtch(e){
rdt.readAsText(ftxt.files[0]);
rdtn=ftxt.files[0].name;
}
function rdtld(e){
rdtn=rdtn.replace(/\./,'_r\.');
txt=rdt.result;
txt=txt.replace(new RegExp(rpa.value,"g"),rpb.value);
blob=new Blob([txt],{"type":"text/plain"});
a=document.createElement("a");
a.href=URL.createObjectURL(blob);
a.download=rdtn;a.target='_blank';
a.click();
}
// ]]></script>

 

 

あとがき

 

 を組み合わせた物を作ってみました。

 

今回のコードでいうと、

rdt=new FileReader();
rdtn='';
ftxt.addEventListener('change',ftxtch,false);
rdt.addEventListener('load',rdtld,false);
function ftxtch(e){
rdt.readAsText(ftxt.files[0]);
rdtn=ftxt.files[0].name;
}
function rdtld(e){
rdtn=rdtn.replace(/\./,'_r\.');
txt=rdt.result;
txt=txt.replace(new RegExp(rpa.value,"g"),rpb.value);
blob=new Blob([txt],{"type":"text/plain"});
a=document.createElement("a");
a.href=URL.createObjectURL(blob);
a.download=rdtn;a.target='_blank';
a.click();
}

 

青字部分が「ファイル読み込み」に関連した部分、
オレンジ部分が「ダウンロード」に関連した部分です。(自分用備忘録w)

 

 

 

 

ってなとこで、今回はこのへんで!

次回もまた、よろしくお願いします^^