テキストファイルを1行ずつクリップボードにコピー

テキストファイルを読み込んで1行ごとにクリップボードにコピーする。

ファイルのリネームとか一括でしてくれるソフトはありますし、同じようにはるかに便利にコピーできるソフトもあると思いますが、ブラウザで実行できたら便利だと思い作りました。

このページ上でも実行できるといいんですが、ファイルAPIとか使えるのかよくわかりません。
※同じ記事を

使う場合は

以下のソースをコピーしてhtmlファイルとして保存してください。

     テキストファイルを1行ずつコピーする 







        
//ファイルの中身を1行毎に収めた配列(グローバル) var arrayOfContents; //ファイルが選択されたら一連の関数を呼び出す document.getElementById("file").addEventListener('change',readFile,false); //ファイルを読み込んで処理を始める function readFile(evt){ var f = evt.target.files; var contents; var reader = new FileReader(); reader.readAsText(f[0]); //ファイルが読み込まれたら reader.addEventListener("load",function(){ contents = reader.result; //ファイルの中身を改行文字で区切る arrayOfContents = contents.split(/\r\n|\r|\n/); makeFields(); addEvents(); },false); } //テキストフィールドとコピー用のボタンを作る関数 function makeFields() { var output = document.getElementById('output'); // リスト要素の作成 var p = document.createElement('p'); p.id = 'form'; var i; var len = arrayOfContents.length; for ( i=0; i < len; i++) { //テキストフィールドの作成 var text = document.createElement("input"); text.type = 'text'; text.id = 'text_' + i; text.value = arrayOfContents[i]; p.appendChild(text); // ボタンの作成 var input = document.createElement('input'); input.type = 'button'; input.id = 'btn_' + i; input.className = "btn"; input.value = (i+1) + "行目をコピー"; p.appendChild(input); var br = document.createElement("br"); p.appendChild(br); } output.appendChild(p); } //隣のテキストをクリップボードにコピーする関数 function copyText(n){ document.getElementById("text_" + n ).select(); document.execCommand("copy"); } //イベントの設定 function addEvents(){ var buttons = document.getElementsByClassName("btn"); var len = arrayOfContents.length; for (var j = 0; j < len; j++) (function(n) { buttons[n].addEventListener('click', function() { copyText(n); }, false); })(j); } //注意書きを表示 function showNotes(){ var notes = '使用上の注意・ファイルはUTF-8形式に変更してから使ってください'; alert(notes); }