半角文字が書かれたテキストファイルを16進数に変換してテキストエリアに出力するプログラムです。
ファイルを読み込んだ後、クローズをしなければいけないと思いますが、適切な場所がわかりません。
// fr.Close();
と書いているところが、入れてみてところデバッグでエラーになってうまくいかなかったところです。
Javascript
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 2 3<html> 4<head> 5<meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS"/> 6<title></title> 7</head> 8<SCRIPT type="text/JavaScript"> 9<!-- 10function read (ele) { 11 if (!ele.files.length) return; 12 13 var file = ele.files[0]; 14 15 var fr = new FileReader(); 16 17 var work = ""; 18 var outTXT = ""; 19 20 fr.onload = function() { 21 // 読み込み結果を一時領域にコピー 22 work = fr.result; 23// fr.Close(); 24 // 変換処理 25 for (i=0; i<work.length; i++) { 26 27 // ワーク領域を初期化 28 data2 = ""; 29 30 // ワーク領域にバイナリ形式に変換した文字列を後方に付加 31 data2 += work.charCodeAt(i).toString(16).toUpperCase(); 32 33 // 変換後文字列の後方にワーク領域を付加 34 if(i == 0){ 35 outTXT = data2; 36 }else{ 37 outTXT += data2; 38 } 39 } 40 // 改行から変換されたものは改行のタグに置換 41 outTXT = outTXT.replace(/DA/g,"\n"); 42 outTXT = outTXT.replace(/D/g,"\n"); 43 outTXT = outTXT.replace(/A/g,"\n"); 44 45// fr.Close(); 46 47 // 出力 48 document.getElementById('text00').value = outTXT; 49 50 // 領域初期化 51 var work = null; 52 var outTXT = null; 53 delete work; 54 delete outTXT; 55 56 }; 57 fr.readAsText(file); // ファイルをテキストとして読み込む 58// fr.Close(); 59} 60</SCRIPT> 61<body> 62<input type="file" style="width:600px; font-size:18px;" onchange="read(this)" /> <br> 63出力↓<br> <TEXTAREA id="text99" name="text00" rows="25" cols="10" style="font-size:18px;"></TEXTAREA> 64</body> 65</html> 66
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/14 00:25