Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 这个云是什么样的格式,以及如何从这个文本中提取key:value对_C#_Regex_Text - Fatal编程技术网

C# 这个云是什么样的格式,以及如何从这个文本中提取key:value对

C# 这个云是什么样的格式,以及如何从这个文本中提取key:value对,c#,regex,text,C#,Regex,Text,我的任务是将旧的Clarion(top speed)应用程序转换为MS-SQL数据库。 我对旧应用程序没有任何支持,我必须自己做。 我找不到Clarion ODBC驱动程序,我只需要一次数据对话。 当我用TopSpeed编辑器打开TopSpeed表时,我发现文件的结构如下 FILE,DRIVER('TOPSPEED'),NAME('C:\bIRA2013\BIRA_ARHIMED\ROBAGR.TPS') ROBAGR:K_SIFGRU KEY(+ROBAGR:SIFGRU),NOCA

我的任务是将旧的Clarion(top speed)应用程序转换为MS-SQL数据库。
我对旧应用程序没有任何支持,我必须自己做。
我找不到Clarion ODBC驱动程序,我只需要一次数据对话。 当我用TopSpeed编辑器打开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#解析这个文件。

如果你想用正则表达式,你可以尝试以下方法:

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


如果您想使用正则表达式,可以尝试以下方法:

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


我不知道这种格式,因此不回答问题,但似乎你可以很容易地用Regex做到这一点,因为你知道每个新的列标题都以“ROBAGR”开头,数据类型在选项卡后面……我不知道这种格式,因此不回答问题,但是,如果您知道每个新的列标题都以“ROBAGR”开头,并且数据类型在选项卡后面,那么使用Regex似乎可以很容易地做到这一点。。。