这个云是什么样的格式,以及如何从这个文本中取出密钥:值对

时间:2013-09-09 20:49:33

标签: c# regex text

我的任务是将旧的Clarion(最高速)应用程序转换为MS-SQL数据库 我对旧应用程序没有任何支持,我必须自己完成所有工作 我不能(找到)Clarion ODBC驱动程序,我只需要一次数据对话。 当我打开top-speed table whit TopSpeed编辑器时,我发现像这样的文件结构

FILE,DRIVER('TOPSPEED'),NAME('C:\bIRA2013\BIRA_ARHIMED\ROBAGR.TPS')
ROBAGR:K_SIFGRU      KEY(+ROBAGR:SIFGRU),NOCASE,PRIMARY
ROBAGR:K_PRIHOD1_SIFGRU   KEY(+ROBAGR:PRIHOD1,+ROBAGR:SIFGRU),DUP,NOCASE
ROBAGR:K_PRIHOD2_SIFGRU   KEY(+ROBAGR:PRIHOD2,+ROBAGR:SIFGRU),DUP,NOCASE
ROBAGR:K_KUPAC_SIFGRU   KEY(+ROBAGR:KUPAC,+ROBAGR:SIFGRU),DUP,NOCASE
RECORD               RECORD
ROBAGR:SIFGRU          STRING(10)
ROBAGR:NAZIV           STRING(30)
ROBAGR:STOPA           DECIMAL(7,2)
ROBAGR:KOEF1           DECIMAL(7,4)
ROBAGR:KOEF2           DECIMAL(7,4)
ROBAGR:PRIHOD1         STRING(10)
ROBAGR:PRIHOD2         STRING(10)
ROBAGR:KUPAC           STRING(10)
ROBAGR:ID              STRING(2)
ROBAGR:D               LONG
                     END
                   END

要在SQL上创建新表,我需要解析此文本的列,名称和类型 这是一些标准的tex格式,所以我可以搜索C#库来解析它。
INI文件有很多C#库,很容易使用,这种格式是否适用于任何“常见”格式,所以我可以提取这个值?
我需要在记录和第一个结束之间堆叠数据 如果我被推动手动解析这个文本,我应该使用正则表达式或其他东西?
我想用C#解析这些文件。

1 个答案:

答案 0 :(得分:1)

如果你想要一只带有正则表达式的牌,你可以试试这个:

(?:RECORD|\G)\s*ROBAGR:(\S+)\s*(\S+)

regex101 demo

ideone demo