private bool makeStringUtf8Gaiji(arib2byteChar kanji, ref string line) { string letter = ""; line = ""; while (kanji.getNextLetterUtf8Gaiji(ref letter) != false) { line += letter; if (line.Length >= 20) { return(true); } } return(false); }
private void button2_Click(object sender, EventArgs e) { this.button2.Enabled = false; arib2byteChar kanji = new arib2byteChar(true); List <byte> letter = new List <byte>(); List <byte> line = new List <byte>(); Int32 prevKanjiTabeNum = 0; List <kanjiMark> kanjiList = new List <kanjiMark>(); byte[,] alllist = new byte[256, 256]; byte[] byteData = Encoding.UTF8.GetBytes("あ①い"); string byteLine = ""; foreach (byte b in byteData) { byteLine += b.ToString("X2"); } MessageBox.Show("result:" + byteLine); using (StreamWriter sw = new StreamWriter(System.IO.Path.Combine(this.textBox3.Text, "KanjiList.txt"), false)) { using (StreamWriter sw2 = new StreamWriter(System.IO.Path.Combine(this.textBox3.Text, "KanjiDoc.txt"), false)) { using (StreamWriter swUtf8 = new StreamWriter(System.IO.Path.Combine(this.textBox3.Text, "KanjiListUtf8.txt"), false, Encoding.UTF8)) { Int32 counter = 0; while (true) { counter++; if (kanji.getNextCharAryJIS(ref letter) < 0) { kanji.setFirst(); if (prevKanjiTabeNum < kanji.currentTableNumber) { break; } prevKanjiTabeNum = kanji.currentTableNumber; continue; } kanjiMark p = new kanjiMark(letter[3], letter[4], letter); kanjiList.Add(p); line.AddRange(letter); if ((counter % 20) == 0) { string outputLine = System.Text.Encoding.GetEncoding(50220).GetString(line.ToArray()); //parseMain.exchangeJIScodeToString(line); sw2.WriteLine(outputLine); swUtf8.WriteLine(outputLine); line.Clear(); } letter.Clear(); } if (line.Count != 0) { sw2.WriteLine(parseMain.exchangeJIScodeToString(line)); } string utfline = ""; kanji.getNextLetterUtf8Gaiji(ref utfline); // 初回 while (this.makeStringUtf8Gaiji(kanji, ref utfline) == true) { swUtf8.WriteLine(utfline); } if (utfline.Length > 0) { swUtf8.WriteLine(utfline); } } } sw.WriteLine("total:" + kanjiList.Count); foreach (kanjiMark p in kanjiList) { sw.WriteLine(p.x.ToString() + "," + p.y.ToString() + ",[" + parseMain.exchangeJIScodeToString(p.jisCode) + "]"); alllist[p.x, p.y]++; } } makeKanjiTable(alllist); }