開発環境 |
メモ帳 |
実行環境 |
Internet Explorer 11 |
参考
hexdmp.html
<!DOCTYPE html>
<head>
<title>hexdmp</title>
<style type="text/css">
#disp {
border:1ps solid gray;
font-family:courier;
font-size:11pt;
}
span {
color:red;
}
</style>
</head>
<body>
<h1>hexdmp</h1>
<div id="drop" style="width:700px; height:150px; padding:10px; border:3px solid;"
ondragover="onDragOver(event)">Drop here.</div>
<br>
<div id="disp"></div>
<script>
var disp = document.getElementById("disp");
var reader = new FileReader;
var str = "";
str += check("reader.readAsArrayBuffer");
str += check("reader.readAsBinaryString");
str += check("reader.readAsDataURL");
str += check("reader.readAsText");
disp.innerHTML = str;
document.getElementById("drop").addEventListener("drop", onDrop, false);
function check(func) {
return func + ": " + (eval(func) ? "o" : "x") + "<br>";
}
function onDrop(event) {
event.preventDefault();
var files = event.dataTransfer.files;
var file = files[0];
disp.innerHTML = "";
{
var str = "";
str += "name: " + file.name + "<br>";
str += "type: " + file.type + "<br>";
str += "size: " + file.size + " bytes<br>";
document.getElementById("drop").innerHTML = str;
}
reader.onload = function(event) {
var delimiter = " - - - ";
var alldata = "";
var data = event.target.result;
var buf = new Uint8Array(data);
for (var c = 0; c < buf.length; c += 16) {
var address = ("0000000" + c.toString(16)).slice(-8).toUpperCase();
var hexlist = "";
var chrlist = "";
for (var i = 0; i < 16; i++) {
var hex = "&"+"nbsp;"+"&"+"nbsp;"; // @wikiの仕様により分割
var chr = "&"+"nbsp;";
if (c + i < buf.length) {
var num = buf[c + i];
var chr = String.fromCharCode(num);
if (num < 0x20 || 0x7e < num) {
chr = "<span>.</span>";
} else {
switch (chr) {
case " ": chr = "&"+"nbsp;"; break;
case "<": chr = "&"+"lt;"; break;
case ">": chr = "&"+"gt;"; break;
case "&": chr = "&"+"amp;"; break;
}
}
hex = ("0" + num.toString(16)).slice(-2).toUpperCase();
}
hexlist += hex + delimiter.substr(i, 1);
chrlist += chr;
}
alldata += address + " | " + hexlist + "| " + chrlist + "<br>";
}
disp.innerHTML = alldata;
}
reader.readAsArrayBuffer(file);
}
function onDragOver(event) {
event.preventDefault();
}
</script>
</body>
最終更新:2014年06月25日 08:57