2013-11-24 107 views
1

我正在製作可視化編程的學生級項目,其中包括讀取Word文件並從中提取個人信息Name,Age,GPA and other attributes of course (but I will discuss few just for the sake of simplicity)Word文件解析器

我遇到的問題是如何找出Name位於Word文件中的位置,以及名稱後面是什麼,可能是GPA or AGE

e.g

名稱:朱麗葉
年齡:23​​

當然,發現其Age後的名字後,我會很容易找到實際名稱。因爲它位於NameAge之間。

我的想法,直到實現那是使用枚舉將具有像Name, Age, Gpa所有這些屬性。

Enum{ 
    Name, Age, Enum 
} 

如果你有這樣的想法,請給我建議嗎?

回答

0

因爲這是一堂課,我只能給你一般指導;我希望你覺得這對你有幫助。

首先,使用Enum來表示數據有幾個問題。通常,您會希望使用統一數據類型的Enum來表示一組相關數據。例如,規範示例如下所示:

enum DayOfWeek { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday } 

在此示例中,基礎數據類型相同。也就是說,我們將使用所有整數(例如)來表示基礎信息。這一點的全部意義在於,您可以在應用程序中使用描述性類型而不是基礎的基本類型。例如,您可以說:

if (today == DayOfWeek.Monday) 

等等。

你想要做的是創建一個新的對象,可以爲你的數據建模,然後填充它。在你的榜樣,我喜歡的東西開始:

class Person 
{ 
    private string name; 
    private int age; 
    private double gpa; 

    public string Name 
    { 
     get 
     { 
      return name; 
     } 
     set 
     { 
      name = value; 
     } 
    } 

    public int Age 
    { 
     get 
     { 
      return age; 
     } 
     set 
     { 
      age = value; 
     } 
    } 

    public double Gpa 
    { 
     get 
     { 
      return gpa; 
     } 
     set 
     { 
      gpa = value; 
     } 
    } 
} 

你的總體規劃將要遍歷您的數據源,並逐步建立的對象。例如:

List<Person> people = new List<Person>(); 

// replace conditions with the conditions for your loop. 
// this just loops forever. 
for (; ;) 
{ 
    Person p = new Person(); 

    // replace this with code that fetches out the actual values. 
    p.Age = 20; 
    p.Gpa = 4.0; 
    p.Name = "John Doe"; 

    people.Add(p); 

} 

希望這有助於!

+0

謝謝你寫很多,但我沒有使用類,因爲我只是把它們扔進數據庫。首先我在這裏關注他們的出現順序,無論是AGE還是名字?然後我擔心第一個之後會發生什麼。再次感謝 –

+0

此外,年齡,姓名和GPA都是字符串,所以Enum在這裏保持有效。 –

+0

枚舉代表單個值。你想要表示一組值。這就是Enum在這裏沒有意義的原因。此外,您可以使用字符串表示GPA和年齡,但您應該習慣使用正確的數據類型來處理事情。 – jsinglet