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") 获取记录数组(字符串)。对于每个 sRecord
  3. 使用Split (sRecord, EOL, 6 ) 获得 5 个“单行字段”和 1 个可能包含 EOL 的文本/注释/备忘录字段
  4. 使用一个RegExp ("\w+\s*#?:\s*(.+)") (后备:专门的 RegExps)从“单行字段”中剪切数据,从第 6 个开始修剪前导/尾随空格
  5. 根据需要转换字段:应引用字符串数据,应(可能)将 EOL 和第 6 行中的引号排除,使用标准日期格式(yyyy-mm-dd)可以避免以后出现问题
  6. . WriteLine *加入*(aFields, sSep) 到 output.csv
  7. schema.ini文件中描述 output.csv 的格式(选择简单/保存列名!)
  8. 使用 DBMS 或 ADO 的导入工具将 .csv 导入数据库

随时询问详情。

于 2012-08-06T10:05:41.057 回答