2013-01-18 61 views
1

我已經使用VS 2008將asp.net c#項目轉換爲framework 3.5。應用程序的目的是解析包含許多相似信息行的文本文件,然後將數據插入數據庫。如何在文本文件中找到子字符串的索引

我沒有寫原創應用程序,但開發人員使用substring()來獲取單個字段,因爲它們始終始於相同的位置。

我的問題是:

什麼是找到在文本文件中字符串的索引,而不必手動計數位置最好的方法是什麼?某人是否有首選方法來查找文本文件中的字符位置?

+0

我想推薦正則表達式'REGEX'。 – Greg

回答

0

的文本文件,我讀不包含分隔符 - 有時領域,有時之間的空間他們一起跑。無論哪種情況,每一行的格式都是一樣的。當我問我在記事本中查看文件的問題時。

問題是:你如何找到文件中的位置,以便可以將位置(數字)指定爲我的子字符串函數的startIndex?

回答:我發現在記事本++中打開文本文件將顯示光標位於文件中的任何位置的列號和行計數,並使這項工作更容易。

0

我會說IndexOf()/IndexOfAny()連同Substring()。或者,regular expressions。它的文件具有類似於XML的結構,this

0

如果文件以逗號定界例如可以使用string.Split

如果數據是:串[]文本= { 「1,蘋果」, 「2,橙」, 「3,檸檬」} ;

private void button1_Click(object sender, EventArgs e) 
    { 
     string[] lines = this.textBoxIn.Lines; 
     List<Fruit> fields = new List<Fruit>(); 
     foreach(string s in lines) 
     { 
      char[] delim = {','}; 
      string[] fruitData = s.Split(delim); 
      Fruit f = new Fruit(); 
      int tmpid = 0; 
      Int32.TryParse(fruitData[0], out tmpid); 
      f.id = tmpid; 
      f.name = fruitData[1]; 
      fields.Add(f); 
     } 
     this.textBoxOut.Clear(); 
     string text=string.Empty; 
     foreach(Fruit item in fields) 
     { 
      text += item.ToString() + " \n"; 
     } 
     this.textBoxOut.Text = text; 
    } 
} 
0

可以使用的indexOf(),然後使用長度()作爲第二個子參數

substr = str.substring(str.IndexOf("."), str.Length - str.IndexOf(".")); 
相關問題