public static TdfString Create(string Label, string value) { TdfString res = new TdfString(); res.Set(Label, 1); res.Value = value; return(res); }
public static TdfString ReadTdfString(Tdf head, Stream s) { TdfString res = new TdfString(); res.Label = head.Label; res.Tag = head.Tag; res.Type = head.Type; res.Value = ReadString(s); return(res); }
public static void WriteTdf(Tdf tdf, Stream s) { s.WriteByte((byte)(tdf.Tag >> 24)); s.WriteByte((byte)(tdf.Tag >> 16)); s.WriteByte((byte)(tdf.Tag >> 8)); s.WriteByte(tdf.Type); switch (tdf.Type) { case 0: TdfInteger ti = (TdfInteger)tdf; CompressInteger(ti.Value, s); break; case 1: TdfString ts = (TdfString)tdf; WriteString(ts.Value, s); break; case 2: TdfBlob tb = (TdfBlob)tdf; CompressInteger(tb.Data.Length, s); for (int i = 0; i < tb.Data.Length; i++) { s.WriteByte(tb.Data[i]); } break; case 3: TdfStruct tst = (TdfStruct)tdf; if (tst.startswith2) { s.WriteByte(2); } foreach (Tdf ttdf in tst.Values) { WriteTdf(ttdf, s); } s.WriteByte(0); break; case 4: WriteTdfList((TdfList)tdf, s); break; case 5: WriteTdfDoubleList((TdfDoubleList)tdf, s); break; case 6: TdfUnion tu = (TdfUnion)tdf; s.WriteByte(tu.UnionType); if (tu.UnionType != 0x7F) { WriteTdf(tu.UnionContent, s); } break; case 7: TdfIntegerList til = (TdfIntegerList)tdf; CompressInteger(til.Count, s); if (til.Count != 0) { foreach (long l in til.List) { CompressInteger(l, s); } } break; case 8: WriteDoubleValue(((TdfDoubleVal)tdf).Value, s); break; case 9: WriteTrippleValue(((TdfTrippleVal)tdf).Value, s); break; case 0xA: TdfFloat tf = (TdfFloat)tdf; WriteFloat(s, tf.Value); break; } }