回 帖 发 新 帖 刷新版面

主题:过长过多字段的文本文件如何用vf来处理?

各位高手请帮帮:
这是一条数据,都在一行上,TXT格式,因为字段过多过长,如何用Vf来处理此类文件:
|山东|青岛市香港中路59号国际金融中心29楼|2009-02-09|266071|266021|xxxx路xxxx号xxx家园2号楼3单元502户|曹xxxx|2009-02-09|2008-01-15 至 2009-01-31|曹xx|保单号:000125025748008|投保人姓名:曹xxxx|被保险人姓名:王xxxx|服务人员姓名:xxxx |服务人员代码:10380011xxxxx|前一报告期期末保单价值:0|本报告期末保单价值:17307.99|险种名称|险种生效日|本报告期末基本保险金额|交费方式|本报告期末保险费|合众安康天使终身寿险(万能型)|2008-01-15|      50000.00|年交|       5000.00|合众附加安康天使提前给付重大疾病保险|2008-01-15|      50000.00|年交| 0.00|合众附加安康天使少儿住院医疗保险|2008-01-15|       3000.00|年交| 0.00|以下各项目金额均指本报告期间发生额,现金价值金额等于个人账户价值。| |如果该保单有未完成的保全变更或理赔申请,则本年度报告的内容可能与保单的实际状况有出入,届时请以保全或理赔批单为准。|交易时间|交易类别|金额|结算利率(年利率)|2008/01/17|首期净保费|       5000.00| |2008/01/17|追加净保费|       5000.00| |2008/01/17|初始费用|      -1375.00| |2008/01/17|初始费用|       -250.00| |2008/01/17|保单费用|         -5.00| |2008/01/17|风险保障费用|-0.72| |2008/01/17|风险保障费用|         -3.47| |2008/01/17|风险保障费用|        -15.23| |2008/02/01|存款利息|         18.96|          5.78%|2008/02/01|保单费用|         -5.00| |2008/02/01|风险保障费用|        -25.98| |2008/02/01|风险保障费用|         -5.92| |2008/02/01|风险保障费用|         -1.23| |2008/03/01|存款利息|         39.10|          5.78%|2008/03/01|保单费用|         -5.00| |2008/03/01|风险保障费用|        -27.77| |2008/03/01|风险保障费用|         -1.32| |2008/03/01|风险保障费用|         -6.33| |2008/04/01|存款利息|         38.44|          5.68%|2008/04/01|保单费用|         -5.00| |2008/04/01|风险保障费用|        -26.88| |2008/04/01|风险保障费用|         -6.12| |2008/04/01|风险保障费用|         -1.27| |2008/05/01|存款利息|         38.43|          5.68%|2008/05/01|保单费用|         -5.00| |2008/05/01|风险保障费用|         -1.32| |2008/05/01|风险保障费用|        -27.77| |2008/05/01|风险保障费用|         -6.33| |2008/06/01|存款利息|         38.43|          5.68%|2008/06/01|保单费用|         -5.00| |2008/06/01|风险保障费用|        -26.88| |2008/06/01|风险保障费用|         -6.12| |2008/06/01|风险保障费用|         -1.27| |2008/07/01|存款利息|         37.23|          5.50%|2008/07/01|保单费用|         -5.00| |2008/07/01|风险保障费用|        -27.77| |2008/07/01|风险保障费用|         -1.32| |2008/07/01|风险保障费用|         -6.33| |2008/08/01|存款利息|         35.90|          5.30%|2008/08/01|保单费用|         -5.00| |2008/08/01|风险保障费用|        -27.77| |2008/08/01|风险保障费用|         -1.32| |2008/08/01|风险保障费用|         -6.33| |2008/09/01|存款利息|         33.89|          5.00%|2008/09/01|保单费用|         -5.00| |2008/09/01|风险保障费用|        -26.88| |2008/09/01|风险保障费用|         -1.27| |2008/09/01|风险保障费用|         -6.12| |2008/10/01|存款利息|         32.21|          4.75%|2008/10/01|保单费用|         -5.00| |2008/10/01|风险保障费用|        -27.77| |2008/10/01|风险保障费用|         -6.33| |2008/10/01|风险保障费用|         -1.32| |2008/11/01|存款利息|         30.52|          4.50%|2008/11/01|保单费用|         -5.00| |2008/11/01|风险保障费用|        -26.88| |2008/11/01|风险保障费用|         -6.12| |2008/11/01|风险保障费用|         -1.27| |2008/12/01|存款利息|         27.49|          4.05%|2008/12/01|保单费用|         -5.00| |2008/12/01|风险保障费用|        -27.77| |2008/12/01|风险保障费用|         -6.33| |2008/12/01|风险保障费用|         -1.32| |2009/01/01|存款利息|         27.12|          4.00%|2009/01/01|保单费用|         -5.00| |2009/01/01|风险保障费用|        -27.77| |2009/01/01|风险保障费用|         -6.33| |2009/01/01|风险保障费用|         -1.32| |2009/01/16|初始费用|       -750.00| |2009/01/16|续期净保费|       5000.00| |2009/01/23|追加净保费|       5000.00| |2009/01/23|初始费用|       -250.00| |
谢谢啦!大家辛苦!

回复列表 (共8个回复)

沙发

|山东|青岛市香港中路59号国际金融中心29楼|2009-02-09|266071|266021|xxxx路xxxx号xxx家园2号楼3单元502户|曹xxxx|2009-02-09|2008-01-15 至 2009-01-31|曹xx|保单号:000125025748008|投保人姓名:曹xxxx|被保险人姓名:王xxxx|服务人员姓名:xxxx |服务人员代码:10380011xxxxx|前一报告期期末保单价值:0|本报告期末保单价值:17307.99|险种名称|险种生效日|本报告期末基本保险金额|交费方式|本报告期末保险费|合众安康天使终身寿险(万能型)|2008-01-15|      50000.00|年交|       5000.00|合众附加安康天使提前给付重大疾病保险|2008-01-15|      50000.00|年交| 0.00|合众附加安康天使少儿住院医疗保险|2008-01-15|       3000.00|年交| 0.00|

以上部分作为父表,之后的作为子表

板凳

设想:(只是设想而已)
1.设备注型字段,然后把文本的每行装进去,程序外部处理 也可程序内部处理,append from
2.在程序中把备注字段赋值给一个变量a, 对这个变量a逐段截取,截取后的值存入另一库.substr(a,变量b,长度),如果"变量b"有一定的规律,可以先存到表里.
这个办法不行,处理备注字段不可用

3 楼

谢谢!非常感谢!但如何逐行导入?如:17行将生成17条记录,我用了
APPEND MEMO MemoFieldName FROM FileName[OVERWRITE] [AS nCodePage]命令
结果将整个文本文件全部导入到一个备注文件里面去了!

4 楼

1.FILETOSTR装载文件,结合MEMLINES(),MLINE()函数,逐行读取.
2.CHRTRAN()去替换所有||为|后,ALINES(ARRAYNAME,cStr,.t.,'|')追加到数组.
3.建立数据表,以append from array 形式追加.
比较笨的办法.数据不多还是手工做好了.^_^

5 楼

从这个论坛找的办法: 作者hw2007name
&&我的办法是用低级文件函数来一行一行的读取数据进行实现.具体代码如下:
fille=GETFILE('Text:TXT')
 if empty(fille)
  return
 endif 
nhand=fopen("&fille")
IF nhand<=0
   MESSAGEBOX("文件可以正被其它程序使用无法打开!",64,"")
   RETURN .F.
ENDIF 
=FSEEK(nhand,0,0)&&把文件指针移到文件开头
PRIV NOW_READ,I
SELECT source0&&选择要添加数据的工作区
DO WHILE !FEOF(nhand)
   NOW_READ=FGETS(nFileHandle,8192)
   APPEND BLANK IN "source0"
   REPL 备注字段名 WITH NOW_READ
ENDDO
RETURN .T.

6 楼


非常感谢!通过上面程序已解决!衷心说一声:谢谢!

7 楼


谢谢martion 老师!!!,谢谢Vii老师!!!

8 楼


谢谢martine 老师!!!,谢谢Vii老师!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册