public static void WriteField(IBedValueReader value, BinaryWriter fw) { var type = value.GetFieldType(); if (type == TypeStorage.Null) { fw.Write((byte)'\\'); fw.Write((byte)'N'); } else if (type == TypeStorage.ByteArray) { foreach (byte b in value.GetByteArray()) { var sb = new StringBuilder(); StringTool.EncodeOct(b, sb); fw.Write('\\'); fw.Write('\\'); fw.Write(Encoding.UTF8.GetBytes(sb.ToString())); } } else if (type.IsNumber()) { if (type.IsInteger()) { fw.Write(Encoding.UTF8.GetBytes(value.GetIntegerValue().ToString())); } else { fw.Write(Encoding.UTF8.GetBytes(value.GetRealValue().ToString(CultureInfo.InvariantCulture))); } } else { string s = String.Format(CultureInfo.InvariantCulture, "{0}", value.GetValue()); s = s.Replace("\\", "\\\\"); s = s.Replace("\t", "\\t"); s = s.Replace("\n", "\\n"); s = s.Replace("\r", "\\r"); fw.Write(Encoding.UTF8.GetBytes(s)); } }
public override void SetByteArray(byte[] value) { m_text = "'" + StringTool.EncodeOct(value, "\\\\") + "'::bytea"; }