private void button2_Click(object sender, EventArgs e) { this.fc.str[0] = this.textBox1.Text; this.fc.str[1] = this.zih.ToString(); this.fc.str[2] = Encoding.Default.GetString(this.Myapp.zimodatas[this.zimoindex], 0, (int)this.Myapp.zimos[this.zimoindex].ascstar); Form form = new zikucreat(this.fc, (int)this.Myapp.zimos[this.zimoindex].encode, this.Myapp); form.ShowDialog(); if (form.DialogResult == DialogResult.OK) { if (MessageOpen.Show("是否立即替换刚才生成的字库?".Language(), "提示".Language(), MessageBoxButtons.YesNo) == DialogResult.Yes) { string path = this.fc.str[0]; int num = Marshal.SizeOf(default(zimoxinxi)); StreamReader streamReader = new StreamReader(path); byte[] array = new byte[num]; streamReader.BaseStream.Read(array, 0, num); zimoxinxi value = (zimoxinxi)array.BytesTostruct(default(zimoxinxi).GetType()); this.Myapp.zimos[this.zimoindex] = value; array = new byte[value.size]; streamReader.BaseStream.Read(array, 0, array.Length); this.Myapp.zimodatas[this.zimoindex] = new byte[array.Length]; array.CopyTo(this.Myapp.zimodatas[this.zimoindex], 0); streamReader.Close(); streamReader.Dispose(); this.showzi(); this.fc.str[1] = "edit"; new datazhuan(this.Myapp).ShowDialog(); this.Ref(); } } else { this.fc.str[1] = ""; } }
private bool creat() { int num = 0; byte[] array = new byte[2]; byte[] array2 = new byte[1]; SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "zi|*.zi"; bool result; if (saveFileDialog.ShowDialog() != DialogResult.OK) { result = false; } else { string fileName = saveFileDialog.FileName; byte[] array3 = this.textBox1.Text.GetbytesssASCII(); int num2 = int.Parse(this.comboBox1.Text); zimoxinxi zimoxinxi = default(zimoxinxi); int count = Marshal.SizeOf(default(zimoxinxi)); zimoxinxi.state = (byte)this.comboBox5.SelectedIndex; zimoxinxi.addbeg = 0u; zimoxinxi.ver = datasize.zikuver; zimoxinxi.ascstar = (byte)array3.Length; zimoxinxi.datastar = (ushort)zimoxinxi.ascstar; zimoxinxi.h = byte.Parse(num2.ToString()); zimoxinxi.qumo = 10; zimoxinxi.encode = (byte)this.Encode; zimoxinxi.codeh_star = datasize.encodes_App[(int)zimoxinxi.encode].codeh_star; zimoxinxi.codeh_end = datasize.encodes_App[(int)zimoxinxi.encode].codeh_end; zimoxinxi.codel_star = datasize.encodes_App[(int)zimoxinxi.encode].codel_star; zimoxinxi.codel_end = datasize.encodes_App[(int)zimoxinxi.encode].codel_end; zimoxinxi.codelT0 = datasize.encodes_App[(int)zimoxinxi.encode].codelT0; zimoxinxi.codelV0 = datasize.encodes_App[(int)zimoxinxi.encode].codelV0; byte[] array4 = new byte[0]; int num3 = 0; int num4; byte[] array5; if (zimoxinxi.state == 0) { if (datasize.encodes_App[(int)zimoxinxi.encode].codeh_star != 0) { zimoxinxi.qyt = 95u; } else { zimoxinxi.qyt = (uint)(datasize.encodes_App[(int)zimoxinxi.encode].codel_end - datasize.encodes_App[(int)zimoxinxi.encode].codel_star + 1); } zimoxinxi.w = byte.Parse(((int)(zimoxinxi.h / 2)).ToString()); num4 = (int)(zimoxinxi.h * zimoxinxi.w / 8); array5 = new byte[(ulong)zimoxinxi.qyt * (ulong)((long)num4)]; } else { zimoxinxi.w = zimoxinxi.h; if (zimoxinxi.state == 1) { zimoxinxi.qyt = (uint)((zimoxinxi.codeh_end - zimoxinxi.codeh_star + 1) * (zimoxinxi.codel_end - zimoxinxi.codel_star - zimoxinxi.codelV0 + 1) + 95); } if (zimoxinxi.state == 2) { this.zimostr = ""; this.textBox2.Text = this.textBox2.Text + " "; for (int i = 0; i < this.textBox2.Text.Length; i++) { this.zimostradd(this.textBox2.Text.Substring(i, 1), Encoding.GetEncoding(datasize.encodes_App[(int)zimoxinxi.encode].encodename)); } if (this.zimostr == "") { MessageOpen.Show("没有可以取的字".Language()); result = false; return(result); } zimoxinxi.qyt = (uint)this.zimostr.Length; zimoxinxi.datastar = (ushort)((uint)zimoxinxi.ascstar + zimoxinxi.qyt * 2u); array4 = new byte[zimoxinxi.qyt * 2u]; } num4 = (int)(zimoxinxi.h * zimoxinxi.w / 8); if (zimoxinxi.state == 2) { array5 = new byte[(ulong)zimoxinxi.qyt * (ulong)((long)(num4 + 2))]; } else { array5 = new byte[(ulong)zimoxinxi.qyt * (ulong)((long)num4)]; } } Bitmap bitmap = new Bitmap((int)zimoxinxi.w, (int)zimoxinxi.h); Encoding encoding = Encoding.GetEncoding(datasize.encodes_App[this.Encode].encodename); this.label3.Text = ""; this.label3.Visible = true; if (zimoxinxi.state == 1) { for (int j = (int)datasize.encodes_App[(int)zimoxinxi.encode].codeh_star; j <= (int)datasize.encodes_App[(int)zimoxinxi.encode].codeh_end; j++) { for (int k = (int)datasize.encodes_App[(int)zimoxinxi.encode].codel_star; k <= (int)datasize.encodes_App[(int)zimoxinxi.encode].codel_end; k++) { if (k <= (int)zimoxinxi.codelT0 || k > (int)(zimoxinxi.codelT0 + zimoxinxi.codelV0)) { if (this.creatend) { result = false; return(result); } Application.DoEvents(); array[0] = (byte)j; array[1] = (byte)k; gdizi.bmpprintstr(bitmap, encoding.GetString(array), this.hanzipos, bitmap.Width, bitmap.Height, false); bitmap.Getqumo(ref array5, bitmap.Width, num); num += num4; } } Application.DoEvents(); this.label3.Text = "进度:".Language() + (num * 100 / array5.Length).ToString() + "%"; } for (int k = 32; k <= 126; k++) { array2[0] = byte.Parse(k.ToString()); gdizi.bmpprintstr(bitmap, encoding.GetString(array2), this.zifupos, bitmap.Height / 2, bitmap.Height, true); bitmap.Getqumo(ref array5, bitmap.Width / 2, num); num += num4; Application.DoEvents(); this.label3.Text = "进度:".Language() + (num * 100 / array5.Length).ToString() + "%"; } } else if (zimoxinxi.state == 0) { int k = 32; while ((long)k < (long)((ulong)(32u + zimoxinxi.qyt))) { array2[0] = byte.Parse(k.ToString()); gdizi.bmpprintstr(bitmap, encoding.GetString(array2), this.zifupos, bitmap.Height / 2, bitmap.Height, true); bitmap.Getqumo(ref array5, bitmap.Width, num); num += num4; Application.DoEvents(); this.label3.Text = "进度:".Language() + (num * 100 / array5.Length).ToString() + "%"; k++; } } if (zimoxinxi.state == 2) { for (int l = 0; l < this.zimostr.Length; l++) { Application.DoEvents(); this.label3.Text = l.ToString(); byte[] bytes = Encoding.GetEncoding(datasize.encodes_App[(int)zimoxinxi.encode].encodename).GetBytes(this.zimostr.Substring(l, 1)); if (bytes.Length >= 0) { if (bytes[0] > 31 && bytes[0] < 127) { array2[0] = bytes[0]; gdizi.bmpprintstr(bitmap, encoding.GetString(array2), this.zifupos, bitmap.Height / 2, bitmap.Height, true); array4[num3] = 0; num3++; array4[num3] = bytes[0]; num3++; bitmap.Getqumo(ref array5, bitmap.Width / 2, num); num += num4; } else if (bytes[0] > 127 && bytes.Length == 2) { array[0] = bytes[0]; array[1] = bytes[1]; gdizi.bmpprintstr(bitmap, encoding.GetString(array), this.hanzipos, bitmap.Height, bitmap.Height, false); array4[num3] = bytes[0]; num3++; array4[num3] = bytes[1]; num3++; bitmap.Getqumo(ref array5, bitmap.Width, num); num += num4; } } Application.DoEvents(); this.label3.Text = "进度:".Language() + (num * 100 / array5.Length).ToString() + "%"; } } zimoxinxi.size = (uint)(array5.Length + array3.Length); StreamWriter streamWriter = new StreamWriter(fileName); streamWriter.BaseStream.Write(zimoxinxi.structToBytes(), 0, count); streamWriter.BaseStream.Write(array3, 0, array3.Length); if (array4.Length > 1) { streamWriter.BaseStream.Write(array4, 0, array4.Length); } streamWriter.BaseStream.Write(array5, 0, array5.Length); int num5 = (int)streamWriter.BaseStream.Length; streamWriter.Close(); streamWriter.Dispose(); this.fc.str[0] = fileName; Label expr_9FC = this.label3; expr_9FC.Text = expr_9FC.Text + " " + "字库大小:".Language() + num5.ToString("0,000"); MessageOpen.Show("生成字库完成,字库大小:".Language() + num5.ToString("0,000")); result = true; } return(result); }
private void jiaohunziku(int index0, int index1) { zimoxinxi value = this.Myapp.zimos[index0]; byte[] array = new byte[this.Myapp.zimodatas[index0].Length]; this.Myapp.zimodatas[index0].CopyTo(array, 0); this.Myapp.zimos[index0] = this.Myapp.zimos[index1]; this.Myapp.zimodatas[index0] = new byte[this.Myapp.zimodatas[index1].Length]; this.Myapp.zimodatas[index1].CopyTo(this.Myapp.zimodatas[index0], 0); this.Myapp.zimos[index1] = value; this.Myapp.zimodatas[index1] = new byte[array.Length]; array.CopyTo(this.Myapp.zimodatas[index1], 0); foreach (mpage current in this.Myapp.pages) { foreach (mobj current2 in current.objs) { foreach (matt current3 in current2.atts) { if (current3.att.attlei == attshulei.Font.typevalue) { byte b = (byte)current3.zhi.BytesTostruct(0.GetType()); if ((int)b == index0) { current3.zhi = ((byte)index1).structToBytes(); } else if ((int)b == index1) { current3.zhi = ((byte)index0).structToBytes(); } } } } } foreach (mpage current in this.Myapp.pages) { foreach (objsetcom_P current4 in current.objsetcomps) { foreach (objsetcom current5 in current4.objset) { if (current5.backobj != null) { foreach (matt current3 in current5.backobj.atts) { if (current3.att.attlei == attshulei.Font.typevalue) { byte b = (byte)current3.zhi.BytesTostruct(0.GetType()); if ((int)b == index0) { current3.zhi = ((byte)index1).structToBytes(); } else if ((int)b == index1) { current3.zhi = ((byte)index0).structToBytes(); } } } } } } } foreach (mobj current2 in this.Myapp.copymobjs) { foreach (matt current3 in current2.atts) { if (current3.att.attlei == attshulei.Font.typevalue) { byte b = (byte)current3.zhi.BytesTostruct(0.GetType()); if ((int)b == index0) { current3.zhi = ((byte)index1).structToBytes(); } else if ((int)b == index1) { current3.zhi = ((byte)index0).structToBytes(); } } } } this.Ref(); this.zikuupdate(null, null); }