【问题标题】:Splitting large text field c#拆分大文本字段c#
【发布时间】:2021-09-28 14:03:50
【问题描述】:

编辑:我有无法解决的问题。我有大文本文件。我想从此文件中只为我选择特殊数据。

我的代码:

class Program
{
    static string ticket = "";
    static string openTime = "";
    static string type = "";
    static float size;
    static string item = "";
    static float price;
    static string closeTime = "";
    static float priceC;
    static float commission;
    static float swap;
    static float trade;
    static void Main(string[] args)
    {
        ReadFile.ReadAllFile("..\\..\\..\\File.txt");
    }
}

public static class ReadFile
{
    public static string ReadAllFile(string file)
    {
        string content = "";
        using (StreamReader sr = new StreamReader(file))
        {
            content = sr.ReadToEnd();
        }
        Console.WriteLine(content);
        return content;
    }
}

文本文件中的一行:

18388699 2021.09.03 14:40:14 买入 0.01 欧元 1.18720 1.16211 1.17961 1.17201 0.00 -0.69 -12.96

在此文本中有空格。我想将此值拆分为我的字符串。 此代码从此文本文件中读取整个文本。但我只需要从这个文件中选择我的字符串的数据。是否有一些方法或功能可以只选择重要的文本段落?

抱歉之前的帖子,我不想要整个脚本。我正在寻找一些提示和技巧如何做到这一点:D 英语不是我的母语,然后我无法完美地描述我的问题,但我尽力了:D

【问题讨论】:

  • 欢迎来到 StackOverflow。如果您将使用的数据的代表性部分作为文本发布在问题中,而不是添加到图像的链接,那么人们会更容易回答您的问题。
  • 您能否将文本文件作为文本提供?
  • 您好,欢迎来到很抱歉,但这种请求不在 SO 上,这不是一个代码点播网站,而是一个问答。我建议你自己写一个解析器,当你遇到麻烦时回到这里
  • 感谢您的欢迎。我试着描述我的问题,但我的英语不允许我这样做。

标签: c# text split


【解决方案1】:

我可能会这样做:

static void Main()
{
    foreach (var line in File.ReadLines(@"..\..\..\File.txt"))
    {
        var fields = line.Split();

        var ticket = fields[0];
        var openTime = DateTime.Parse(fields[1] + " " + fields[2], CultureInfo.InvariantCulture);
        var price = decimal.Parse(fields[6], CultureInfo.InvariantCulture);

        Console.WriteLine($"{ticket}, {openTime}, {price}");
    }
}
  • 使用File.ReadLines()读取文件的每个line
  • 使用String.Split()分割空格。
  • 索引fields 以获取您想要的数据。
    • ticket 只是第一个字段。
    • 对于openTime,您需要加入第二个和第三个字段。我还选择解析为DateTime
    • 对于价格和数量等问题,我会使用decimal 数据类型。在您的代码中,您有一个 float,我不会使用它。 float 的精度非常低,你可能会得到四舍五入的错误。 double 更好,但可能仍然存在同样的问题。此类计算的推荐数据类型是decimal

【讨论】:

  • 这就是我需要的。我知道如何读取和解析 json 或 csv,因为单词之间有字符符号。但在这种情况下,有空格。非常感谢您的帮助
猜你喜欢
  • 2018-09-10
  • 2020-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多