コード例 #1
0
            public MIFTestClass(string file)
            {
                using (MIFFileReader mfr = new MIFFileReader(file))
                {
                    while (mfr.Read())
                    {
//                        Console.WriteLine(mfr.mifType.ToString());
                        switch (mfr.mifType)
                        {
                        case    MIFUnit.Point:
                        {
                            MIFPoint obj = (MIFPoint)mfr.Get( );
                            break;
                        }

                        case MIFUnit.Region:
                        {
                            MIFRegion obj = (MIFRegion)mfr.Get();

/*                                for ( int i = 0; i < obj.parts; i++ )
 *                                  for ( int j = 0; j < obj.points[ i ].Length; j++ )
 *                                      Console.WriteLine( "[" + i.ToString( ) + "][" + j.ToString( ) + "] = " +
 *                                             obj.points[ i ][ j ].X.ToString( ) + " " +
 *                                             obj.points[ i ][ j ].Y.ToString( ) );
 *
 */                         break;
                        }

                        case MIFUnit.Polyline:
                        {
                            MIFPolyline obj = (MIFPolyline)mfr.Get( );

/*                                for ( int i = 0; i < obj.parts; i++ )
 *                                  for ( int j = 0; j < obj.points[ i ].Length; j++ )
 *                                      Console.WriteLine( "[" + i.ToString( ) + "][" + j.ToString( ) + "] = " +
 *                                             obj.points[ i ][ j ].X.ToString( ) + " " +
 *                                             obj.points[ i ][ j ].Y.ToString( ) );
 *
 */                         break;
                        }

                        case MIFUnit.Line:
                        {
                            MIFLine obj = (MIFLine)mfr.Get( );

/*                                Console.WriteLine(
 *                                     obj.point1.X.ToString( ) + " " + obj.point1.Y.ToString( ) + " " +
 *                                     obj.point2.X.ToString( ) + " " + obj.point2.Y.ToString( ),
 *                                     mfr.mifType.ToString( ) );
 */
                            break;
                        }
                        }
//						Console.WriteLine( mfr.mifType.ToString() );
//                        Console.WriteLine( mfr.RowLine().ToString() );

                        string attrs = null;
                        for (int i = 0; i < mfr.attrs.Length; i++)
                        {
                            attrs += mfr.GetAttrNames()[i].ToString() + "(" + mfr.GetAttrTypes()[i].ToString() + ")" +
                                     " = " + mfr.attrs[i].ToString() + "\n";
                        }

//                        Console.WriteLine(attrs);
                    }

                    Console.WriteLine(MIFPolyline.cnt.ToString(), "Polyline");
                    Console.WriteLine(MIFLine.cnt.ToString(), "Line");
                    Console.WriteLine(MIFPoint.cnt.ToString(), "Point");
                    Console.WriteLine(MIFRegion.cnt.ToString(), "Region");
                    Console.WriteLine(MIFArc.cnt.ToString(), "Arc");
                    Console.WriteLine(MIFText.cnt.ToString(), "Text");
                    Console.WriteLine(MIFRectangle.cnt.ToString(), "Rect");
                    Console.WriteLine(MIFRectangle.cnt.ToString(), "RoundRect");
                    Console.WriteLine(MIFRectangle.cnt.ToString(), "Ellipse");

/*					Console.WriteLine( mfr.version,		"version" );
 *                                      Console.WriteLine( mfr.charset ,	"charset" );
 *                                      Console.WriteLine( mfr.delimiter ,	"delimiter" );
 *                                      Console.WriteLine( mfr.unique ,		"unique" );
 *                                      Console.WriteLine( mfr.index ,		"index" );
 *                                      Console.WriteLine( mfr.coordsys ,	"coordsys" );
 *                                      Console.WriteLine( mfr.transform ,	"transform" );
 *
 */
/*					for( int i = 0; i < mfr.fieldcount; i++ )
 *                                              Console.WriteLine( mfr.fieldname[i] + " " + mfr.fieldtype[i] );
 */
                }
            }
コード例 #2
0
        public void Load(string filename, NumberFormatInfo nfi)
        {
            using (/*MIFFileReader*/ mr = new MIFFileReader(filename, /*false*/ true, true, nfi))
            {
                mr.keepOriginalBounds = /*true*/ false;

                Dictionary <MIFUnit, GType> types = new Dictionary <MIFUnit, GType>( );

                captionFilename = Path.ChangeExtension(filename, ".caption");
                readCaption     = File.Exists(captionFilename);
                nameFilename    = Path.ChangeExtension(filename, ".name");
                readName        = File.Exists(nameFilename);

                if (readCaption)
                {
                    using (StreamReader sr = new StreamReader(captionFilename))
                    {
                        string str = sr.ReadLine( );
                        captionNames = str.Split(' ');
                    }
                }
                if (readName)
                {
                    using (StreamReader sr = new StreamReader(nameFilename))
                    {
                        string str = sr.ReadLine( );
                        nameNames = str.Split(' ');
                    }
                }

                while (mr.Read( ))
                {
                    GType gType = GetType(filename, mr.GetUnitType(), types);

//      Ёто пока закомментировано
//                        if( sr.mifType != type )
//                            throw new MIFReaderException( "Type \'" + sr.mifType + "\' not matches type \'" + type + "\'", sr.mifNLine );

                    switch (mr.GetUnitType())
                    {
//                        case MIFUnit.Arc:
//                            break;
                    case MIFUnit.Point:
                        Read((MIFPoint)mr.Get( ), gType);
                        break;

                    case MIFUnit.Region:
                        Read((MIFRegion)mr.Get(), gType);
                        break;

                    case MIFUnit.Line:
                        Read((MIFLine)mr.Get( ), gType);
                        break;

                    case MIFUnit.Polyline:
                        Read((MIFPolyline)mr.Get( ), gType);
                        break;

                    case MIFUnit.Text:
                        Read((MIFText)mr.Get( ), gType);
                        break;

                    default:
                        throw new MIFReaderException("Type \'" + mr.GetUnitType().ToString( ) + "\' not implemented", mr.mifNLine);
                    }
                }
                if (mr.keepOriginalBounds)
                {
                    left   = (int)(mr.coordsys.p1.X * 100);
                    bottom = (int)(mr.coordsys.p1.Y * 100);
                    right  = (int)(mr.coordsys.p2.X * 100);
                    top    = (int)(mr.coordsys.p2.Y * 100);
                }
            }
        }