将文本文件解析为SQL查询VBA

时间:2018-03-10 19:12:44

标签: python sql vba parsing text

我正在尝试自动化我们正在做的一些工作。我们致力于火灾报警系统,在测试之前,我们必须证明在测试之前程序会发生什么。因此,如果我们点击这个烟雾探测器,这将是结果。

我是一个相对较新的编码员。

面板编程在一个具有一致分隔符的文本文件中,但是有一些项目给我带来了一些麻烦。

[OC13_ALARM_STATUS_LED]

ALARM '*OC13*':
        FAST    '*_STATLED5';

[OC13_EWSD_WARNING_STATUS_LED]

ALARM '*OC13*EWSDL*':
        FAST     '*_STATLED6',
        LEDOFF   '*_STATLED5';

[OC13_TROUBLE_STATUS_LED]

TROUBLE '*OC13*':
        FAST     '*_STATLED7';



{***DISABLE BUTTONS***}

[0138_DIS_ACT]
SWITCH  'OC4_0138_SW1_DIS_ACT':
    FAST    'OC4_0138_LED129_DIS_ACT';

[DIS_BELL]
MONITOR 'AND_0138_DIS_BELL':
    DISABLE AUD '*_OC12_BELL*',
    STEADY      'OC4_0138_LED129_DIS_ACT',
    STEADY      'OC4_0138_LED131_DIS_BELL';

[DIS_OC12_ELEV]
MONITOR 'AND_0138_DIS_OC12_ELEV':
    DISABLE NSO '*_OC12_RLY_*_ELEV*',
    DISABLE NSO '*_OC12_REDCAP_*_ELEV*',
    STEADY      'OC4_0138_LED129_DIS_ACT',
    STEADY      'OC4_0138_LED133_DIS_OC12_ELEV';

括号是规则的名称,冒号左侧的项目是输入,右侧是输出。我们有一个包含所有设备的表。我想要做的是解析这个文本文件,制作一个包含规则的表。然后,我打算使用此数据进行选择查询,以显示何时激活此输入,此规则将运行,并且这些输出将激活。

花括号是根据需要随机插入整个文件的注释,这就是让我失望的原因。它使数据有点不标准。还有一些有多个输出,有些只有一个。

谢谢Stack。

2 个答案:

答案 0 :(得分:0)

三重编辑:这个正则表达式似乎适用于上面的示例:re.search('({。*} *)',lines)。但你应该三检查。

使用正则表达式查找所有花括号集并用空字符串替换它们。

1)读入你的文件

2)对于行中的每一行

2)re.sub(' {regex}','',line)

您应该能够首先使用re.search('({regex})',line)获取评论

见相关: Remove Sub String by using Python

正则表达式文档: https://docs.python.org/2/library/re.html

正则表达式测试员: https://regex101.com/ 您可以在此处复制和粘贴文本,并针对它运行不同的正则表达式,直到找到匹配的文本。你甚至可以从那里生成python代码来搜索你。请参阅左侧的代码生成器选项卡。

答案 1 :(得分:0)

看起来他们为excel添加了一些功能

https://msdn.microsoft.com/library/1ed840b1-7e20-4419-ad2f-d82054c9b2ab

它们具有可用于构建类似于Regex框架的数据解析器的电源查询。它非常简单,并且有关如何使用它的文档的详细程度。

导入高级文本文件时,它会将您带到查询编辑器。