private bool TryGetCurrentFormat(out LocalizedStringFormat format) { format = (LocalizedStringFormat) Enum.Parse(typeof(LocalizedStringFormat), cboType.SelectedItem.ToString(), true); return(true); }
private void SavePluginStrings(System.Text.Encoding enc, LocalizedStringFormat format, LocalizedStringDict strings, BinaryWriter writer) { if (enc == null) { enc = Encoding.Instance; } var list = new List <Pair <uint, uint> >(); using (var stream = new MemoryStream()) using (var memWriter = new BinaryWriter(stream)) { foreach (var kvp in strings) { list.Add(new Pair <uint, uint>(kvp.Key, (uint)stream.Position)); byte[] data = enc.GetBytes(kvp.Value); switch (format) { case LocalizedStringFormat.Base: memWriter.Write(data, 0, data.Length); memWriter.Write((byte)0); break; case LocalizedStringFormat.DL: case LocalizedStringFormat.IL: memWriter.Write(data.Length + 1); memWriter.Write(data, 0, data.Length); memWriter.Write((byte)0); break; } } writer.Write(strings.Count); writer.Write((int)stream.Length); foreach (var item in list) { writer.Write(item.Key); writer.Write(item.Value); } stream.Position = 0; var buffer = new byte[65536]; var left = (int)stream.Length; while (left > 0) { int read = Math.Min(left, buffer.Length); int nread = stream.Read(buffer, 0, read); if (nread == 0) { break; } writer.Write(buffer, 0, nread); left -= nread; } } }
private void SavePluginStrings(System.Text.Encoding enc, LocalizedStringFormat format, LocalizedStringDict strings, string path) { try { using (var writer = new BinaryWriter(File.Create(path))) this.SavePluginStrings(enc, format, strings, writer); } catch { } }
private LocalizedStringDict LoadPluginStrings(System.Text.Encoding encoding, LocalizedStringFormat format, BinaryReader reader) { if (encoding == null) encoding = Encoding.CP1252; var dict = new LocalizedStringDict(); int length = reader.ReadInt32(); int size = reader.ReadInt32(); // size of data section var list = new List<Pair<uint, uint>>(); for (uint i = 0; i < length; ++i) { uint id = reader.ReadUInt32(); uint off = reader.ReadUInt32(); list.Add(new Pair<uint, uint>(id, off)); } long offset = reader.BaseStream.Position; var data = new byte[size]; using (var stream = new MemoryStream(data, 0, size, true, false)) { var buffer = new byte[65536]; int left = size; while (left > 0) { int read = Math.Min(left, buffer.Length); int nread = reader.BaseStream.Read(buffer, 0, read); if (nread == 0) break; stream.Write(buffer, 0, nread); left -= nread; } } foreach (var kvp in list) { var start = (int) kvp.Value; int len = 0; switch (format) { case LocalizedStringFormat.Base: while (data[start + len] != 0) ++len; break; case LocalizedStringFormat.DL: case LocalizedStringFormat.IL: len = BitConverter.ToInt32(data, start) - 1; start = start + sizeof (int); if (start + len > data.Length) len = data.Length - start; if (len < 0) len = 0; break; } string str = encoding.GetString(data, start, len); dict.Add(kvp.Key, str); } return dict; }
private LocalizedStringDict GetStringDict(Plugin plugin, LocalizedStringFormat format) { LocalizedStringDict strings = null; switch (format) { case LocalizedStringFormat.Base: strings = plugin.Strings; break; case LocalizedStringFormat.DL: strings = plugin.DLStrings; break; case LocalizedStringFormat.IL: strings = plugin.ILStrings; break; } return(strings); }
private LocalizedStringDict LoadPluginStrings(System.Text.Encoding encoding, LocalizedStringFormat format, string path) { try { if (File.Exists(path)) { using (var reader = new BinaryReader(File.OpenRead(path))) return(this.LoadPluginStrings(encoding, format, reader)); } } catch { } return(new LocalizedStringDict()); }
private void SavePluginStrings(System.Text.Encoding enc, LocalizedStringFormat format, LocalizedStringDict strings, BinaryWriter writer) { if (enc == null) enc = Encoding.CP1252; var list = new List<Pair<uint, uint>>(); using (var stream = new MemoryStream()) using (var memWriter = new BinaryWriter(stream)) { foreach (KeyValuePair<uint, string> kvp in strings) { list.Add(new Pair<uint, uint>(kvp.Key, (uint) stream.Position)); byte[] data = enc.GetBytes(kvp.Value); switch (format) { case LocalizedStringFormat.Base: memWriter.Write(data, 0, data.Length); memWriter.Write((byte) 0); break; case LocalizedStringFormat.DL: case LocalizedStringFormat.IL: memWriter.Write(data.Length + 1); memWriter.Write(data, 0, data.Length); memWriter.Write((byte) 0); break; } } writer.Write(strings.Count); writer.Write((int) stream.Length); foreach (var item in list) { writer.Write(item.Key); writer.Write(item.Value); } stream.Position = 0; var buffer = new byte[65536]; var left = (int) stream.Length; while (left > 0) { int read = Math.Min(left, buffer.Length); int nread = stream.Read(buffer, 0, read); if (nread == 0) break; writer.Write(buffer, 0, nread); left -= nread; } } }
private void SavePluginStrings(System.Text.Encoding enc, LocalizedStringFormat format, LocalizedStringDict strings, string path) { try { using (var writer = new BinaryWriter(File.Create(path))) SavePluginStrings(enc, format, strings, writer); } catch { } }
private LocalizedStringDict LoadPluginStrings(System.Text.Encoding encoding, LocalizedStringFormat format, string path) { try { if (File.Exists(path)) { using (var reader = new BinaryReader(File.OpenRead(path))) return LoadPluginStrings(encoding, format, reader); } } catch { } return new LocalizedStringDict(); }
private bool TryGetCurrentFormat(out LocalizedStringFormat format) { format = (LocalizedStringFormat)Enum.Parse(typeof(LocalizedStringFormat), this.cboType.SelectedItem.ToString(), true); return true; }
private LocalizedStringDict GetStringDict(Plugin plugin, LocalizedStringFormat format) { LocalizedStringDict strings = null; switch (format) { case LocalizedStringFormat.Base: strings = plugin.Strings; break; case LocalizedStringFormat.DL: strings = plugin.DLStrings; break; case LocalizedStringFormat.IL: strings = plugin.ILStrings; break; } return strings; }