【发布时间】:2018-07-10 12:51:20
【问题描述】:
在我使用 C# 和使用 sytemIO 的简单问题之后,最近切换到 vb。我的前任写了一个将错误日志生成到文本文件的包。以下为示例:
2017-10-20 15:30:11.481 CmsMonitorService.exe、CmsMonitorService.UpdateCmsOffLine OffLineUpdater 错误:获取存储在离线保管库中的文件列表。 ------------------------------ 2017-10-20 15:31:11.547 CmsMonitorService.exe、CmsMonitorService.UpdateCmsOffLine OffLineUpdater 错误:创建文件夹“OffLineUpdates”(它可能已经存在 checkHost) 在 CmsMonitorService.CmsMonitorService.UpdateCmsOffLine(Object[] Args) ------------------------------ 2017-10-20 15:31:11.547 CmsMonitorService.exe、CmsMonitorService.UpdateCmsOffLine OffLineUpdater 错误:创建文件夹 ------------------------------
但这正在杀死机器。代码当前在编写时所做的是逐行删除内容,这非常缓慢。它使用以下内容:
Do
If allLines.Count = 0 Then
Exit Do
ElseIf allLines(0).StartsWith("-----") Then
allLines.RemoveAt(0)
Exit Do
Else
allLines.RemoveAt(0)
End If
Loop
可能有数千个(它们分布在不同的位置)。
我想做的是找到一种方法来删除破折号之间的块。
感谢大家的任何想法.....
加雷斯
【问题讨论】:
-
对不起,伙计们......这个帖子在发布时非常混乱。迫不及待地想重新做......
-
如果您将全部内容存储在单个
String中,那么您可以使用IndexOf查找您的一系列破折号的第一次和第二次出现,然后删除其间的子字符串。实际上最有效的方法是创建一个String和一个StringBuilder并向后工作。我的意思是在String上调用LastIndexOf以查找最后一次和倒数第二次出现,然后在StringBuilder上调用Replace以删除该子字符串。对倒数第二次和倒数第三次再次执行相同操作,直到不再出现。 -
谢谢你... :)
标签: vb.net file text block edit