0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
| |
var arrMaxWidth = new Array(), arrHeadLine = new Array(), arrDataLines = new Array();
var objSC = new ActiveXObject("ScriptControl");
objSC.Language = "VBScript";
var vbsLen = 'Function ByteLen(ByVal s)\n';
vbsLen += ' ByteLen = 0\n';
vbsLen += ' Dim i\n';
vbsLen += ' For i = 1 To Len(s)\n';
vbsLen += ' Dim c\n';
vbsLen += ' c = Mid(s, i, 1)\n';
vbsLen += ' If c = vbCr Or c = vbLf Then Exit For\n';
vbsLen += ' ByteLen = ByteLen + ByteSize(c)\n';
vbsLen += ' Next\n';
vbsLen += 'End Function\n';
vbsLen += 'Function ByteSize(ByVal c)\n';
vbsLen += ' ByteSize = 0\n';
vbsLen += ' If Len(c) = o Then Exit Function\n';
vbsLen += ' Select Case AscB(MidB(c, 2, 1))\n';
vbsLen += ' Case 0: ByteSize = 1\n';
vbsLen += ' Case 255:\n';
vbsLen += ' Dim kana\n';
vbsLen += ' kana = AscB(MidB(c, 1, 1))\n';
vbsLen += ' If &H61 <= kana And kana <= &H9F Then\n';
vbsLen += ' ByteSize = 1\n';
vbsLen += ' Else\n';
vbsLen += ' ByteSize = 2\n';
vbsLen += ' End If\n';
vbsLen += ' Case Else: ByteSize = 2\n';
vbsLen += ' End Select\n';
vbsLen += 'End Function\n';
objSC.AddCode(vbsLen);
var lineCount = 1;
main();
function main() {
var arrSplitLine = getClipbrd();
if (arrSplitLine) {
seprateTab(arrSplitLine);
var insTex = setEachLines();
Editor.InsText(insTex);
}
objSC = null;
}
function getClipbrd() {
var ie = new ActiveXObject("InternetExplorer.Application");
ie.Navigate("about:blank");
var clip = ie.Document.parentWindow.clipboardData.getData("Text");
ie = null;
if (clip) {
return(clip.split("\r\n"));
} else {
return(false);
}
}
function seprateTab(arr) {
var re = /\n/g;
for (i in arr) {
var strLine = arr[i];
if (strLine) {
strLine = strLine.replace(re, " ");
splitTab(strLine);
}
lineCount++;
}
}
function splitTab(str) {
if (lineCount == 1) {
arrHeadLine = str.split(" ");
compareLength(arrHeadLine, 0);
} else {
var dataLine = str.split(" ");
compareLength(dataLine, 1);
arrDataLines[lineCount] = dataLine;
}
}
function compareLength(arr, f) {
if (f == 0) {
for (i in arr) {
arrMaxWidth[i] = objSC.Run("ByteLen", arr[i]);
}
} else {
var ln = new Array();
for (i in arr) {
ln[i] = objSC.Run("ByteLen", arr[i]);
if (arrMaxWidth[i] < ln[i]) {
arrMaxWidth[i] = ln[i];
}
}
}
}
function setEachLines() {
var hline = "", dlines = "", sline = "";
hline = attachWidth(arrHeadLine).join("|") +"\r\n";
for (i in arrDataLines) {
dlines += attachWidth(arrDataLines[i]).join("|") +"\r\n";
}
sline += setSeprateLine(arrMaxWidth).join("|") +"\r\n";
return(hline + sline + dlines);
}
function attachWidth(arrColumn) {
for (i in arrMaxWidth) {
var colWth = objSC.Run("ByteLen", arrColumn[i]);
if (colWth < arrMaxWidth[i]) {
var strBlank = "";
for (j=0; j < (arrMaxWidth[i] - colWth); j++) {
strBlank += " ";
}
arrColumn[i] += strBlank;
}
}
return(arrColumn);
}
function setSeprateLine(arrColumn) {
var arrDash = new Array();
for (i in arrColumn) {
var strDash = "";
for (j=0; j < arrMaxWidth[i]; j++) {
strDash += "-";
}
arrDash[i] = strDash;
}
return(arrDash);
}
|