1

古い Clarion (最高速度) アプリを MS-SQL データベースに変換する任務を負っています。
古いアプリのサポートはありません。すべて自分で行う必要があります。
Clarion ODBC ドライバーを (見つける) ことができません。必要なのは、データの会話を 1 回だけ行うことです。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# でパースしたい。

4

1 に答える 1

1

正規表現を使いたい場合は、これを試してください:

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

正規表現101のデモ

イデオンデモ

于 2013-09-09T21:14:39.440 に答える