Example #1
0
        private void method_2(IntPtr intptr_0, IFeature ifeature_0)
        {
            int     num    = TabRead._mitab_c_get_type(intptr_0);
            IFields fields = ifeature_0.Fields;
            int     num1   = -1;

            switch (num)
            {
            case 1:
            case 2:
            case 3:
            case 10:
            {
                num1 = fields.FindField("S_SID");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_symbol_no(intptr_0);
                num1 = fields.FindField("S_Size");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_symbol_size(intptr_0);
                num1 = fields.FindField("S_Color");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_symbol_color(intptr_0);
                return;
            }

            case 4:
            {
                num1 = fields.FindField("T_Text");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_text(intptr_0);
                num1 = fields.FindField("T_Font");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_font(intptr_0);
                num1 = fields.FindField("T_Height");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_text_height(intptr_0);
                num1 = fields.FindField("T_Weight");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_text_width(intptr_0);
                num1 = fields.FindField("T_BKC");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_text_bgcolor(intptr_0);
                num1 = fields.FindField("T_FKC");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_text_fgcolor(intptr_0);
                num1 = fields.FindField("T_Angle");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_text_angle(intptr_0);
                num1 = fields.FindField("T_Justi");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_text_justification(intptr_0);
                num1 = fields.FindField("T_LT");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_text_linetype(intptr_0);
                num1 = fields.FindField("T_Space");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_text_spacing(intptr_0);
                return;
            }

            case 5:
            case 6:
            {
                num1 = fields.FindField("L_PID");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_pen_pattern(intptr_0);
                num1 = fields.FindField("L_Width");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_pen_width(intptr_0);
                num1 = fields.FindField("L_Color");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_pen_color(intptr_0);
                return;
            }

            case 7:
            {
                num1 = fields.FindField("P_BID");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_brush_pattern(intptr_0);
                num1 = fields.FindField("P_BBkC");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_brush_bgcolor(intptr_0);
                num1 = fields.FindField("P_BFRC");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_brush_fgcolor(intptr_0);
                num1 = fields.FindField("P_BTTP");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_brush_transparent(intptr_0);
                num1 = fields.FindField("P_PID");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_pen_pattern(intptr_0);
                num1 = fields.FindField("P_PC");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_pen_color(intptr_0);
                num1 = fields.FindField("P_PW");
                ifeature_0.Value[num1] = TabRead._mitab_c_get_pen_width(intptr_0);
                return;
            }

            case 8:
            case 9:
            {
                return;
            }

            default:
            {
                return;
            }
            }
        }
Example #2
0
        public bool _tab2(string string_0, IFeatureWorkspace ifeatureWorkspace_0)
        {
            bool          flag;
            bool          flag1;
            IFeatureClass featureClass  = null;
            IFeatureClass featureClass1 = null;
            IFeatureClass featureClass2 = null;
            IFeatureClass featureClass3 = null;
            IFeatureClass featureClass4 = null;
            string        string0       = string_0;

            if (File.Exists(string0))
            {
                IntPtr intPtr = TabRead._mitab_c_open(string0);
                if (intPtr.ToInt32() != 0)
                {
                    try
                    {
                        try
                        {
                            int num = TabRead._mitab_c_next_feature_id(intPtr, -1);
                            this.FeatureClass = null;
                            while (num != -1)
                            {
                                IntPtr intPtr1 = TabRead._mitab_c_read_feature(intPtr, num);
                                int    num1    = TabRead._mitab_c_get_type(intPtr1);
                                switch (num1)
                                {
                                case 1:
                                case 2:
                                case 3:
                                {
                                    if (featureClass == null)
                                    {
                                        featureClass = this.method_1(string0, num1, intPtr, ifeatureWorkspace_0,
                                                                     out flag1);
                                        if (flag1)
                                        {
                                            flag = false;
                                            return(flag);
                                        }
                                    }
                                    this.FeatureClass = featureClass;
                                    goto case 9;
                                }

                                case 4:
                                {
                                    if (featureClass4 == null)
                                    {
                                        featureClass4 = this.method_1(string0, num1, intPtr, ifeatureWorkspace_0,
                                                                      out flag1);
                                        if (flag1)
                                        {
                                            flag = false;
                                            return(flag);
                                        }
                                    }
                                    this.FeatureClass = featureClass4;
                                    goto case 9;
                                }

                                case 5:
                                case 6:
                                {
                                    if (featureClass2 == null)
                                    {
                                        featureClass2 = this.method_1(string0, num1, intPtr, ifeatureWorkspace_0,
                                                                      out flag1);
                                        if (flag1)
                                        {
                                            flag = false;
                                            return(flag);
                                        }
                                    }
                                    this.FeatureClass = featureClass2;
                                    goto case 9;
                                }

                                case 7:
                                {
                                    if (featureClass3 == null)
                                    {
                                        featureClass3 = this.method_1(string0, num1, intPtr, ifeatureWorkspace_0,
                                                                      out flag1);
                                        if (flag1)
                                        {
                                            flag = false;
                                            return(flag);
                                        }
                                    }
                                    this.FeatureClass = featureClass3;
                                    goto case 9;
                                }

                                case 8:
                                case 9:
                                {
                                    if (this.FeatureClass != null)
                                    {
                                        try
                                        {
                                            IFeature  feature  = this.FeatureClass.CreateFeature();
                                            IGeometry geometry = this.CreateGeometry(num1, intPtr1);
                                            if (geometry is ITopologicalOperator)
                                            {
                                                (geometry as ITopologicalOperator).Simplify();
                                            }
                                            try
                                            {
                                                this.method_2(intPtr1, feature);
                                            }
                                            catch (Exception exception)
                                            {
                                                Logger.Current.Error("", exception, "");
                                            }
                                            int num2 = TabRead._mitab_c_get_field_count(intPtr);
                                            feature.Fields.FindField("Shape");
                                            for (int i = 0; i < num2; i++)
                                            {
                                                string str  = TabRead._mitab_c_get_field_name(intPtr, i);
                                                int    num3 = TabRead._mitab_c_get_field_type(intPtr, i);
                                                string str1 = TabRead._mitab_c_get_field_as_string(intPtr1, i);
                                                int    num4 = feature.Fields.FindField(str);
                                                if (num4 == -1)
                                                {
                                                    try
                                                    {
                                                        if (num3 != 6)
                                                        {
                                                            feature.Value[num4] = str1;
                                                        }
                                                        else if (str1.Length == 8)
                                                        {
                                                            str1 = str1.Insert(6, "-");
                                                            str1 = str1.Insert(4, "-");
                                                            feature.Value[num4] = DateTime.Parse(str1);
                                                        }
                                                    }
                                                    catch
                                                    {
                                                    }
                                                }
                                                feature.Shape = geometry;
                                            }
                                            feature.Store();
                                        }
                                        catch (Exception exception1)
                                        {
                                            Logger.Current.Error("", exception1, "");
                                        }
                                        if (this.ifeatureProgress_StepEventHandler_0 != null)
                                        {
                                            this.ifeatureProgress_StepEventHandler_0();
                                        }
                                    }
                                    TabRead._mitab_c_destroy_feature(intPtr1);
                                    num = TabRead._mitab_c_next_feature_id(intPtr, num);
                                    continue;
                                }

                                case 10:
                                {
                                    if (featureClass1 == null)
                                    {
                                        featureClass1 = this.method_1(string0, num1, intPtr, ifeatureWorkspace_0,
                                                                      out flag1);
                                        if (flag1)
                                        {
                                            flag = false;
                                            return(flag);
                                        }
                                    }
                                    this.FeatureClass = featureClass1;
                                    goto case 9;
                                }

                                default:
                                {
                                    goto case 9;
                                }
                                }
                            }
                        }
                        catch (Exception exception2)
                        {
                            Logger.Current.Error("", exception2, "");
                        }
                    }
                    finally
                    {
                    }
                    TabRead._mitab_c_close(intPtr);
                    flag = true;
                }
                else
                {
                    MessageBox.Show(string.Concat("无法打开 -", string0, "- 文件"));
                    flag = false;
                }
            }
            else
            {
                flag = false;
            }
            return(flag);
        }