0

行間テキスト ファイルに以下のような数千のレコードがあります。SQL にインポートするために、ある種の詳細なファイルを作成しようとしています。スクリプト、関数、Excel でさえ、私はそれを取得できません。

RECORD #:  #####
NAME:  Tim
DOB:  01/01/2012    
SEX:  male 
DATE:  07/19/2012   


NOTES IN PARAGRAPH FORM


END OF RECORD
RECORD #:  #####
NAME:  Tim
DOB:  01/01/2012    
SEX:  male 
DATE:  07/19/2012   


NOTES IN PARAGRAPH FORM


END OF RECORD       

望ましい出力:

RECORD #:  #####,NAME:  Tim,DOB:  01/01/2012,SEX:  male,DATE:  07/19/2012,NOTES IN PARAGRAPH FORM
RECORD #:  #####,NAME:  Tim,DOB:  01/01/2012,SEX:  male,DATE:  07/19/2012,NOTES IN PARAGRAPH FORM
4

1 に答える 1

1

計画:

  1. 使用する 。ReadAll () 入力ファイルをメモリにロードします (フォールバック: 行ごとの読み取り、「END OF RECORD」はレコードの処理をトリガーします)
  2. Split (sAll, "END OF RECORD") を使用して、レコード (文字列) の配列を取得します。For Each sRecord
  3. Split (sRecord, EOL, 6 ) を使用して、5 つの「1 行フィールド」と、EOL を含むかどうかに関係なく 1 つのテキスト/メモ/メモ フィールドを取得します。
  4. 1 つのRegExp ("\w+\s*#?:\s*(.+)") (フォールバック: 特殊な RegExp) を使用して、「1 行のフィールド」からデータを切り取り、6 番目から先頭/末尾の空白を削除します
  5. 必要に応じてフィールドを変換します。文字列データは引用符で囲む必要があり、EOL と 6 番目の引用符は (おそらく) 除外する必要があります。標準の日付形式 (yyyy-mm-dd) を使用すると、後で問題を回避できます。
  6. . WriteLine * Join *(aFields, sSep) を output.csv に
  7. schema.iniファイルに output.csv の形式を記述します (簡単な列名を選択してください)。
  8. DBMS または ADO のインポート機能を使用して、.csv をデータベースにインポートします。

詳細はお気軽にお尋ねください。

于 2012-08-06T10:05:41.057 に答える