Skip to content

Commit 92e4388

Browse files
committed
10ページ以上もページ番号付加
1 parent a6a37db commit 92e4388

File tree

1 file changed

+34
-20
lines changed

1 file changed

+34
-20
lines changed

translate/src/modules/unicodeToBes.ts

Lines changed: 34 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -154,12 +154,17 @@ export function unicodeToBes(unicode: string): Uint8Array {
154154
letters_on_page += 1;
155155
}
156156
output.push(0xdc);
157-
num = mapping_num[String(pages + 1)];
158-
num_codePoint = num.codePointAt(0);
159-
if (num_codePoint != null) {
160-
output.push(num_codePoint - 0x2800 + 0xa0);
157+
letters_on_page += 1;
158+
const num_str = String(pages + 1);
159+
for (var i = 0; i < num_str.length; i++) {
160+
num = mapping_num[num_str[i]];
161+
console.log(i, num_str, num);
162+
num_codePoint = num.codePointAt(0);
163+
if (num_codePoint != null) {
164+
output.push(num_codePoint - 0x2800 + 0xa0);
165+
}
166+
letters_on_page += 1;
161167
}
162-
letters_on_page += 2;
163168
output.push(0xfe);
164169
}
165170
if (letters === 33) {
@@ -178,6 +183,7 @@ export function unicodeToBes(unicode: string): Uint8Array {
178183
// ページをまたぐとき
179184
lines = 0;
180185
pages += 1;
186+
// 次ページに移った文字数を引く
181187
letters_on_page = letters_on_page - letters;
182188
letters_num = 0x19 + letters_on_page;
183189
output[num_pos] = (letters_num % 255) - Math.floor(letters_num / 255);
@@ -194,13 +200,21 @@ export function unicodeToBes(unicode: string): Uint8Array {
194200
letters_on_page += 1;
195201
}
196202
output.splice(separate_pos + 31, 0, 0xdc);
197-
num = mapping_num[String(pages + 1)];
198-
num_codePoint = num.codePointAt(0);
199-
if (num_codePoint != null) {
200-
output.splice(separate_pos + 32, 0, num_codePoint - 0x2800 + 0xa0);
203+
letters_on_page += 1;
204+
const num_str = String(pages + 1);
205+
for (var i = 0; i < num_str.length; i++) {
206+
num = mapping_num[num_str[i]];
207+
num_codePoint = num.codePointAt(0);
208+
if (num_codePoint != null) {
209+
output.splice(
210+
separate_pos + 32 + i,
211+
0,
212+
num_codePoint - 0x2800 + 0xa0,
213+
);
214+
}
215+
letters_on_page += 1;
201216
}
202-
letters_on_page += 2;
203-
output.splice(separate_pos + 33, 0, 0xfe);
217+
output.splice(separate_pos + 32 + num_str.length, 0, 0xfe);
204218
}
205219
}
206220

@@ -214,7 +228,7 @@ export function unicodeToBes(unicode: string): Uint8Array {
214228
letters_on_page += 1;
215229
}
216230
}
217-
if (char == "n") {
231+
if (char === "n") {
218232
// "\n"で改行
219233
output.push(0x0d);
220234
letters_on_page += 1;
@@ -223,20 +237,20 @@ export function unicodeToBes(unicode: string): Uint8Array {
223237
letters = 0;
224238
}
225239
}
226-
output[31] = 0x30 + pages;
240+
241+
if (pages < 10) {
242+
output[31] = 0x30 + pages;
243+
} else {
244+
output[31] = 0x30 + Math.floor(pages / 10);
245+
output[32] = 0x30 + (pages % 10);
246+
}
247+
227248
for (var i = 0; i + lines < 21; i++) {
228249
output.push(0xfe);
229250
}
230251
output.push(0xff);
231252

232253
letters_num = 0x19 + letters_on_page;
233-
console.log(
234-
"Page: ",
235-
pages,
236-
num_pos,
237-
letters_num % 255,
238-
Math.floor(letters_num / 255),
239-
);
240254
output[num_pos] = letters_num % 255;
241255
output[num_pos + 1] = Math.floor(letters_num / 255);
242256

0 commit comments

Comments
 (0)