阅读:1933回复:0
[分享]MapInfo MIF 格式文件读取代码,C#.NET!
using System;<br>using System.IO;<br>using System.Collections;<br><br>namespace ReadMif<br>{<br> class LoadMif<br> {<br> //attribute<br> private string m_File_Name;<br> private System.IO.StreamReader m_fReader;<br> private System.Collections.ArrayList m_Sentence;<br> private string[][] m_Words;<br><br> //private methord<br> private void OpenFile()<br> {<br> try<br> {<br> if (m_File_Name == null)<br> throw new ArgumentNullException(); if (!File.Exists(m_File_Name))<br> throw new ArgumentException("Invalid file name" + m_File_Name);<br> if (Path.GetExtension(m_File_Name) != null ;; !m_File_Name.Enth(".mif") ;; !m_File_Name.Enth(".txt"))<br> ; throw new Exception("Invalid file type!");<br> }<br> //捕获异常<br> catch (ArgumentNullException ane)<br> {<br> Console.WriteLine(ane.ToString());<br> return;<br> }<br> catch (ArgumentException ae)<br> {<br> Console.WriteLine(ae.ToString());<br> return;<br> }<br> catch (Exception e)<br> {<br> Console.WriteLine(e.ToString());<br> return;<br> }<br> m_fReader = File.OpenText(m_File_Name);//设置打开并要进行读取的文件<br> }<br><br> private void ReadFile()<br> {<br> string text_line;<br> m_Sentence = new ArrayList(); //初始化arraylist对象<br> while ((text_line = m_fReader.ReadLine()) != null) ;//只要文件未结束<br> {<br> if (text_line.Length == 0) //空行不读<br> continue;<br> m_Sentence.Add(text_line); //将读到的行添加到arraylist对象中<br> }<br><br> }<br><br> private void PrintContext()<br> {<br> foreach (string line in m_Sentence)<br> {<br> System.Console.WriteLine(line);<br> }<br> }<br><br> //public methord<br> public void LoadMifFile(string mif_file) //mif_file为该类与外界的接口,从外界传入文件名<br> {<br> m_File_Name = mif_file;<br> //用成员变量存储外界数据mif_file,用类成员变量实现内部数据流动<br> //公共成员方法调用私有成员方法实现了底层操作的封装<br> //用户只需也只能调用LoadMifFile来实现读文件操作<br> OpenFile();<br> ReadFile();<br> PrintContext();<br> } //end of loadmiffile function<br> } //end of LoadMif class<br>} //end of namespace<br><br>//通过外界主程序调用LoadMif类以实现读mif文件<br>class MainEntry<br>{<br> static void Main(string[] args)<br> {<br> ReadMif.LoadMif mif = new ReadMif.LoadMif(); //定义LoadMif类的实例并初始化<br> if (args.Length == 0)<br> Console.WriteLine(@"Useage: ReadMif miffile.mif to print mif file context on the screen.<br>For example:<br>ReadMif test.mif");<br> else<br> mif.LoadMifFile(args[0]);<br> return;<br> } //end of main<br>}// end of MainEntry class<br><br>
|
|