【发布时间】:2019-07-21 01:48:52
【问题描述】:
有一个旧版 VB6 应用程序使用 Print 语句在整个应用程序中写入日志。 Print 的出现次数超过 2 万次。我想在每个Print 调用上写一些更多的日志信息。
可以通过用我自己的函数替换Print 调用来实现。这对未来也有帮助。
有些语句是这样的:
Print #FileNo, Tab(1); "My Text Here";
Print #FileNo, Tab(col); Txt;
Print #FileNo, Tab(100); Format(TheDate, "DDMMMYYYY") & " " & Variable_Name & "Field : " & Format(Field, "x")
Print #FileNo, Tab(1); Format(TheDate, "x") & " - " & TheName;
Print #FileNo, String(132, "-")
Print #FileNo, Tab(6); "SOME VALUE"; "SOME MORE VALUES";
这里; 指示打印语句不要更改行,Tab 指示将插入点定位到绝对列号。
问题:如何在保留Tab 和semicolon 的行为的同时用我自己的函数替换Print?
【问题讨论】:
-
打印和绘图函数是 Basic 的保留,并且在编译器中包含特殊处理,因此您不能简单地交换语句。您需要使用正则表达式搜索源代码以匹配打印并替换为调用您自己的函数。用
,替换裸;字符以接收它们作为参数,paramarray将允许您需要的可变数量。 -
@AlexK。我期望相同,所以我尝试使用正则表达式选项通过 Notepad++ 替换此类语句,但无法创建匹配的正则表达式来替换。
-
@bjan 你可以从
Print #\w+, (?:[^;\r\n]+;?)+之类的东西开始 -
我建议您编辑问题以添加 [regex] 和 [notepad++] 标签 and 至少采用一个示例输入并提供所需输出的示例。您可能会以这种方式获得正则表达式解决方案(如果您只使用编辑器,我认为需要分两步完成)。
-
@AhmedAbdelhameed 谢谢
标签: regex replace vb6 notepad++