-2

有人可以帮我解决我的问题吗?因为我很难了解如何获取文本文件中的最后一个输入 ID。我的后端是一个文本文件。谢谢。

这是我的程序文本文件的示例内容。

ID|代码1|代码2|解释|代码3|日期|价格1|价格2|价格3| 02|JKDHG|hkjd|Hfdkhgfdkjgh|264|56.46.54|654 654.87|878 643.51|567 468.46| 03|DEJSL|hdsk|Djfglkdfjhdlf|616|46.54.56|654 654.65|465 465.46|546 546.54| 01|简|简|简|251|56.46.54|534 654.65|654 642.54|543 468.74|

我将如何获得最后一个输入 id,以便输入行的 id 不会回到数字 1?

4

2 回答 2

0

如果您正在查找 ID 字段中的最后一个(最高)数字,您可以在 LINQ 中使用一行来完成:

Dim MaxID = (From line in File.ReadAllLines("file.txt")
             Skip 1
             Select line.Split("|")(0)).Max()

这段代码的作用是通过 获取一个数组File.ReadAllLines,跳过第一行(似乎是标题),在分隔符 (|) 上分割每一行,从该分割中获取第一个元素(即 ID)并选择最大值.

对于您的示例输入,结果为“03”。

于 2013-08-14T10:29:55.593 回答
0

创建一个读取文件并返回行(字符串)列表的函数,如下所示:

 public static List<string> ReadTextFileReturnListOfLines(string strPath)
{
    List<string> MyLineList = new List<string>();
    try
    {
        // Create an instance of StreamReader to read from a file.
        StreamReader sr = new StreamReader(strPath);
        string line = null;
        // Read and display the lines from the file until the end 
        // of the file is reached.
        do
        {
            line = sr.ReadLine();
            if (line != null)
            {
                MyLineList.Add(line);
            }
        } while (!(line == null));
        sr.Close();
        return MyLineList;
    }
    catch (Exception E)
    {
        throw E;
    }
}

我不确定是否 ID|CODE1|CODE2|EXPLAIN|CODE3|DATE|PRICE1|PRICE2|PRICE3| 是文件的一部分,但您必须调整要获取的元素的索引,然后获取列表中的元素。

MyStringList(1).split("|")(0);
于 2013-08-14T10:02:09.567 回答