我已经使用VS 2008将asp.net c#项目转换为框架3.5.app的目的是解析包含许多类似信息的文本文件,然后将数据插入数据库。
我没有编写原始应用程序,但开发人员使用substring()来获取单个字段,因为它们始终位于相同的位置。
我的问题是:
在不必手动计算位置的情况下,在文本文件中查找子字符串索引的最佳方法是什么?有人有他们用来在文本文件中找到字符位置的首选方法吗?
答案 0 :(得分:0)
我会IndexOf()
/ IndexOfAny()
和Substring()
一起说。或者,regular expressions。该文件具有类似XML的结构this。
答案 1 :(得分:0)
如果文件以逗号分隔,则可以使用string.Split
如果数据是:string [] text = {“1,apple”,“2,orange”,“3,lemon”};
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;
}
}
答案 2 :(得分:0)
您可以使用indexOf()然后使用Length()作为第二个子字符串参数
substr = str.substring(str.IndexOf("."), str.Length - str.IndexOf("."));
答案 3 :(得分:0)
我正在阅读的文本文件不包含分隔符 - 有时字段之间有空格,有时它们一起运行。在任何一种情况下,每一行的格式都相同。当我问问题时,我正在记事本中查看文件。
问题是:如何在文件中找到位置,以便可以将位置(数字)指定为我的子串函数的startIndex?
答:我发现在 notepad ++ 中打开文本文件将显示文本中光标所在位置的列#和行数,使这项工作更容易。