CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  DataWindow

请教PB8高手怎样导入真超过32K的CSV文本?

楼主wjmsino(从头再来)2004-09-03 08:41:18 在 PowerBuilder / DataWindow 提问

我已经实现导入文件,但文件超过32K多的部份就不能导入,请高手指点! 问题点数:50、回复次数:10Top

1 楼wangxichen() 喜之郎 : )回复于 2004-09-03 08:42:40 得分 10

原因是fileread行数一次最多只能读取32765字节长度的数据,  
  要做循环导入才行Top

2 楼wjmsino(从头再来)回复于 2004-09-03 08:45:47 得分 0

请问怎么样做循环呢,能给段代码吗?Top

3 楼wangxichen() 喜之郎 : )回复于 2004-09-03 08:45:52 得分 0

文件读取函数:  
   
  Integer li_FileNo,   li_Reads,   li_Cnt  
  Long ll_FileLen  
  Blob lblb_Data  
   
  ll_FileLen   =   FileLength(as_FileName)  
   
  li_FileNo   =   FileOpen(as_FileName,   StreamMode!,   Read!)  
  If   li_FileNo   <   0   Then   Return   -1  
   
  If   ll_FileLen   >   32765   Then  
  If   Mod(ll_FileLen,   32765)   =   0   Then  
  li_Reads   =   ll_FileLen   /   32765  
  Else  
  li_Reads   =   (ll_FileLen   /   32765)   +   1  
  End   if  
  Else  
  li_Reads   =   1  
  End   if  
   
  ablb_Data   =   lblb_Data  
   
  For   li_Cnt   =   1   to   li_Reads  
  If   FileRead(li_FileNo,   lblb_Data)   =   -1   Then  
  Return   -1  
  Else  
  ablb_Data   =   ablb_Data   +   lblb_Data  
  End   if  
  Next  
   
  FileClose(li_FileNo)  
   
  Return   ll_FileLen  
   
  参数设置:  
  1.as_filename   string     value  
  2.ablb_data       blob         referenceTop

4 楼benjaminz(RockDJ)回复于 2004-09-03 08:49:48 得分 10

用file族函数把目标文件拆成小于32k的临时文件然后导入,你可以自己算一下要多少行你的数据文件就大于32k,然后用fileread读出来再写回到几个小于32k的临时文件里Top

5 楼wjmsino(从头再来)回复于 2004-09-03 09:30:28 得分 0

wangxichen(喜之郎)   :把文件读到blob变量后再怎么样ImportFile到数据窗口中呢?Top

6 楼renwanly(★★★★)回复于 2004-09-03 09:32:50 得分 5

喜报:pb9最新的patch里面不用考虑读取文件大小的限制了!  
  直接一个fileread()就可以了,不知道pb8最新的patch里面有没有解决:DTop

7 楼wangxichen() 喜之郎 : )回复于 2004-09-03 09:34:05 得分 20

不要弄到数据窗中了,数据窗中可以不加入这个字段,在数据窗口保存后,  
  再用updateblob语句将这个二进制数据直接保存到数据库对应的字段中Top

8 楼wjmsino(从头再来)回复于 2004-09-03 09:55:17 得分 0

我的文件里包含了很多字段,要分开的,还有什么方法吗?  
  看来只能分成N个临时文件了,  
  谁有怎么分的代码,参考一下Top

9 楼qianfl(毛毛熊)回复于 2004-09-03 10:23:57 得分 5

你用行方式打开文件,一行一行读就不会超过32K了吧,读出一行后根据分隔符来拆分Top

10 楼wjmsino(从头再来)回复于 2004-09-03 12:03:09 得分 0

毛毛熊:有代码吗,贴段给我学习Top

相关问题

  • csv 导入 sql 问题
  • 如何导入CSV文件
  • pb 导入word的应用???
  • csv导入时“,”问题的处理
  • 数据导入到CSV时的问题
  • 数据导入到CSV时的问题
  • 求pb代码导出,导入工具
  • 在线求助:CSV文件内容导入Oracle数据库
  • 如何将CSV文件导入到Access中?
  • 急!100分,CSV导入SQL,前面0不见了

关键词

  • 文件
  • 字段
  • 数据
  • pb
  • 导入
  • lblb
  • filelen
  • fileno
  • li
  • fileread

得分解答快速导航

  • 帖主:wjmsino
  • wangxichen
  • benjaminz
  • renwanly
  • wangxichen
  • qianfl

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo