1

我已经使用 VS 2008 将一个 asp.net c# 项目转换为框架 3.5。应用程序的目的是解析一个包含许多行类似信息的文本文件,然后将数据插入数据库。

我没有编写原始应用程序,但开发人员使用 substring() 来获取各个字段,因为它们总是从同一位置开始。

我的问题是:

什么是在文本文件中查找子字符串索引而无需手动计算位置的最佳方法?有人有他们用来查找文本文件中字符位置的首选方法吗?

4

4 回答 4

0

我会说IndexOf()/IndexOfAny()Substring(). 或者,正则表达式。如果该文件具有类似 XML 的结构,则此.

于 2013-01-18T00:24:37.437 回答
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;
    }
}
于 2013-01-18T01:03:03.493 回答
0

您可以使用 indexOf() 然后使用 Length() 作为第二个子字符串参数

substr = str.substring(str.IndexOf("."), str.Length - str.IndexOf("."));
于 2013-01-18T03:44:59.987 回答
0

我正在阅读的文本文件不包含分隔符 - 有时字段之间存在空格,有时它们一起运行。在任何一种情况下,每一行的格式都相同。当我问这个问题时,我正在查看记事本中的文件。

问题是:如何在文件中找到位置,以便可以将位置(数字)指定为我的子字符串函数的 startIndex?

答:我发现在notepad++中打开文本文件 会显示光标在文件中任何位置的列号和行数,从而使这项工作更容易。

于 2013-02-13T21:39:47.193 回答