コード例 #1
0
ファイル: BasicClasses.cs プロジェクト: JokerDLord/GISbook
 static void WriteFields(List <GISField> fields, BinaryWriter bw)
 {
     for (int fieldindex = 0; fieldindex < fields.Count; fieldindex++)
     {
         GISField field = fields[fieldindex];
         bw.Write(GISTools.TypeToInt(field.datatype)); //字段类型
         GISTools.WriteString(field.name, bw);         //字段名
     }
 }
コード例 #2
0
ファイル: BasicClasses.cs プロジェクト: JokerDLord/GISbook
        //写文件函数主框架
        public static void WriteFile(GISLayer layer, string filename)
        {
            FileStream   fsr = new FileStream(filename, FileMode.Create); //根据文件名创建文件流
            BinaryWriter bw  = new BinaryWriter(fsr);

            WriteFileHeader(layer, bw);           //写入头文件
            GISTools.WriteString(layer.Name, bw); //写入图层名字
            WriteFields(layer.Fields, bw);        //写入字段
            WriteFeatures(layer, bw);
            bw.Close();
            fsr.Close();
        }
コード例 #3
0
ファイル: BasicClasses.cs プロジェクト: JokerDLord/GISbook
 static void WriteAttributes(GISAttribute attribute, BinaryWriter bw)
 {
     for (int i = 0; i < attribute.ValueCount(); i++)
     {
         Type type = attribute.GetValue(i).GetType();
         if (type.ToString() == "System.Boolean")
         {
             bw.Write((bool)attribute.GetValue(i));
         }
         else if (type.ToString() == "System.Byte")
         {
             bw.Write((byte)attribute.GetValue(i));
         }
         else if (type.ToString() == "System.Char")
         {
             bw.Write((char)attribute.GetValue(i));
         }
         else if (type.ToString() == "System.Decimal")
         {
             bw.Write((decimal)attribute.GetValue(i));
         }
         else if (type.ToString() == "System.Double")
         {
             bw.Write((double)attribute.GetValue(i));
         }
         else if (type.ToString() == "System.Single")
         {
             bw.Write((float)attribute.GetValue(i));
         }
         else if (type.ToString() == "System.Int32")
         {
             bw.Write((int)attribute.GetValue(i));
         }
         else if (type.ToString() == "System.Int64")
         {
             bw.Write((long)attribute.GetValue(i));
         }
         else if (type.ToString() == "System.UInt16")
         {
             bw.Write((ushort)attribute.GetValue(i));
         }
         else if (type.ToString() == "System.UInt32")
         {
             bw.Write((uint)attribute.GetValue(i));
         }
         else if (type.ToString() == "System.UInt64")
         {
             bw.Write((ulong)attribute.GetValue(i));
         }
         else if (type.ToString() == "System.SByte")
         {
             bw.Write((sbyte)attribute.GetValue(i));
         }
         else if (type.ToString() == "System.Int16")
         {
             bw.Write((short)attribute.GetValue(i));
         }
         else if (type.ToString() == "System.String")
         {
             GISTools.WriteString((string)attribute.GetValue(i), bw);
         }
     }
 }