仅读取文件的下一行一次

2024-01-08

我有一个应用程序,它从文本文件中读取信息,然后对它们进行分类并将它们放入数据库中。对于一个类别,我需要检查当前行之后的行并查找某个关键字?

我如何阅读这一行?当流阅读器当前行已打开时,应该会发生这种情况......

我在 VS2010 上使用 C#。

Edit:

下面的所有代码都在一个while (!Reader.EndOfStream) loop

 string line = sReader.ReadLine(); //Note: this is used way above and lots of things are done before we come to this loop

 for (int i = 0; i < filter_length; i++)
 {
       if (searchpattern_queries[i].IsMatch(line) == true)
       {
               logmessagtype = selected_queries[i];

               //*Here i need to add a if condition to check if the type is "RESTARTS" and i need to get the next line to do more classification. I need to get that line only to classify the current one. So, I'd want it to be open independently *

               hit = 1;
               if (logmessagtype == "AL-UNDEF")
               {
                   string alid = AlarmID_Search(line);
                   string query = "SELECT Severity from Alarms WHERE ALID like '" +alid +"'";
                   OleDbCommand cmdo = new OleDbCommand(query, conn);
                   OleDbDataReader reader;
                   reader = cmdo.ExecuteReader();
                   while (reader.Read())
                   {
                        if (reader.GetString(0).ToString() == null)
                        { }
                        else
                        {
                             string severity = reader.GetString(0).ToString();
                             if (severity == "1")
                                 //Keeps going on.....

此外,打开的 .log 文件可能高达 50 Mb 类型...!这就是为什么我不太喜欢阅读所有行并跟踪!


这是一个在下一行已经可用的情况下处理当前行的习惯用法:

public void ProcessFile(string filename)
{
    string line = null;
    string nextLine = null;
    using (StreamReader reader = new StreamReader(filename))
    {
        line = reader.ReadLine();
        nextLine = reader.ReadLine();
        while (line != null)
        {
            // Process line (possibly using nextLine).

            line = nextLine;
            nextLine = reader.ReadLine();
        }
    }
}

这基本上是一个queue其中最多包含两项,或“预读一行”。

Edit:简化了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅读取文件的下一行一次 的相关文章

  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 实体框架 4 DB 优先依赖注入?

    我更喜欢创建自己的数据库 设置索引 唯一约束等 使用 edmx 实体框架设计器 从数据库生成域模型是轻而易举的事 现在我有兴趣使用依赖注入来设置一些存储库 我查看了 StackOverflow 上的一些文章和帖子 似乎重点关注代码优先方法
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • 在 grails/hibernate 中使用 uuid 或 guid 作为 id

    我需要将 GUID UUID 作为行的 id 列 这是为了能够在线和离线创建条目 当然合并时不会在PK上产生这些冲突 我知道我可以减轻这个问题 但我想保持简单 并且有遗留应用程序已经使用 uuid guid 来定义关系 稍后还需要双向同步数
  • Oracle JDK 和 OpenJDK 之间的区别

    注意 这个问题来自 2014 年 从 Java 11 OpenJDK 和 Oracle 开始 JDK 正在趋同 Oracle 和 OpenJDK 之间有什么重要区别吗 例如 垃圾收集和其他 JVM 参数是否相同 两者之间的 GC 工作方式是
  • 变量周围的大括号

    我正在尝试理解这段代码 我什至不知道它的语法是否正确 我猜是练习的一部分 records 大括号表示什么 我见过同样的情况 但有一个 使用运算符代替 如果这有影响的话 多谢你们 The perlref 文档的 使用引用 部分 http pe
  • 等待递归线程生产者

    我有一个收集器 用于搜索游戏中的动作 我以递归搜索的方式进行搜索 以获取游戏中每一个可能的动作 出于性能原因 我使用线程池 每个找到的移动都会向池中添加一个新线程 以扩展旧的移动 这是一些代码 protected static List
  • em 是如何计算的?

    我注意到你可以使用 1em 并且它在不同的网站上看起来会有所不同 em 与什么成比例 使用的字体 最大的字体大小 页面宽度 高度 See http w3schools com cssref css units asp http w3scho
  • 更改 R 类包 android/eclipse

    我正在android中的一个小界面上工作 当我运行它时 出现 xxx应用程序已意外停止 我正在寻找可能的错误 但什么也没找到 无论如何 我想更改R类包名称 当我重构 gt 重命名它时 eclipse会在旧包中生成另一个包 即使我删除该包ec
  • 为什么我们应该在 PHP 中使用静态调用?

    为什么我们要在 PHP5 中使用静态变量或静态调用静态方法 也许是为了提高性能 我们使用静态类变量在类的所有实例之间共享数据 并且我们使用静态方法 最好是private static 来计算类功能所需的东西 但独立于类实例状态 this 性
  • 使用 cmake 将 clr 支持设置为 true

    我正在尝试使用 cmake 生成托管 C 代码 下面是我添加的脚本 SET TARGET PROPERTIES PROJECT NAME PROPERTIES COMPILE FLAGS clr STRING REPLACE EHsc EH
  • 如何将 SQL 连接字符串与 ADO.NET 实体数据模型结合使用

    我正在尝试以一种可以即时更改我指向的数据库的方式使用 ADO NET 实体数据模型 更改数据库可能需要全新的连接字符串 有些数据库位于不同的服务器上 因此 我需要能够向 ADO NET 实体数据模型传递自定义连接字符串 格式如下 serve
  • Jenkins 不从文件输出 Junit 报告信息

    Problem Jenkins 未选取 junit 格式的报告 导致报告未在项目的状态屏幕中列出 Details junit 格式的报告数据由名为 Karma runner 以前称为 Testaulous 的测试框架生成 被忽略的文件创建于
  • 当代码移动到 Angular 组件时,Owl 轮播不起作用

    我的 Angular 版本 Angular 7 我刚刚开始学习 Angular 并尝试在我的 Angular 项目中使用下载的 Bootstrap 模板 我的owl carousel打开时效果很好index html在我的 Angular
  • 如何在 php 的 ssh2 函数中使用 pem 文件

    我需要通过 php 的 ssh2 函数连接到一些 Amazon EC2 实例以获取一些信息并将其显示在我的后台 ssh2 函数中是否有一种方法可以执行与通过命令行 ssh 连接时相同的操作 ssh i path to file key pe
  • 如何修复 mat-tab 的标题

    我有 5 个 mat tab 每个选项卡都有大量数据 因此滚动将添加到该窗口 有什么方法可以修复 mat tab 的标题并让内容可以滚动 我尝试放置位置 固定 位置 粘在里面 ng deep mat tab label 但这似乎并不能解决问
  • 带有 ObjectDatasource UpdateMethod 的 GridView

    我有一个 ASP NET WebForms 页面 其中包含ASPxGridView and an ObjectDataSource
  • Java 8 https 连接在某些站点上失败

    我无法访问某些 https 资源 请帮助使 https 调用可靠 我在这里放置的示例是通过 Firefox 浏览器进行测试的 以确保它们正常工作 java version openjdk version 1 8 0 121 OpenJDK
  • 微任务是否保证在它们排队的同一动画帧内触发?

    例如 Promise 使用微任务 我验证了here https mail mozilla org pipermail es discuss 2016 April 045905 html它们可以在动画帧结束之前完成 在 Chrome 中 我说
  • JSP中如何获取浏览器信息?

    如何使用 JSP 获取客户端 IP 和浏览器信息 以下 jsp 将输出您的 IP 地址和用户代理 Your user agent is br Your IP address is br 要找出用户正在使用的浏览器和 或操作系统 请解析用户代
  • 在python中简单编辑二进制文件

    这应该很容易 但我一直无法找到这个问题的答案 使用python 我想将二进制文件读入内存 修改文件的前四个字节 然后将文件写回 必须有一种简单的方法来编辑四个微不足道的字节 正确的 为什么读取整个文件要改变开头的四个字节 这不应该起作用吗
  • 如何让重音字母在 bash 上真正起作用?

    我在 cygwin 上安装的 bash 无法正确处理重音字母 我尝试添加 set input meta on to accept 8 bit characters set output meta on to show 8 bit chara
  • 仅读取文件的下一行一次

    我有一个应用程序 它从文本文件中读取信息 然后对它们进行分类并将它们放入数据库中 对于一个类别 我需要检查当前行之后的行并查找某个关键字 我如何阅读这一行 当流阅读器当前行已打开时 应该会发生这种情况 我在 VS2010 上使用 C Edi