Csv 如何将逗号分隔的文本文件导入datawindow(powerbuilder 11.5)
您好,我是powerbuilder的新手,正在使用PB 11.5 有人知道如何将逗号分隔的文本文件导入datawindow吗 示例文本文件 “1234”,“20141011”,“胡安,德拉克鲁兹”,“美国”,“001992345456” “12345”、“20141011”、“伊利诺伊州Arc”、“纽约”、“005765753256” 如何导入第三列(全名)和最后一列(帐号)。我想将姓名和帐号转移到我的外部数据窗口中。我尝试使用ImportString(所有行仅在一列中传输)。我的外部数据窗口中有三个字段。名称和帐号 这是密码Csv 如何将逗号分隔的文本文件导入datawindow(powerbuilder 11.5),csv,import,powerbuilder,datawindow,Csv,Import,Powerbuilder,Datawindow,您好,我是powerbuilder的新手,正在使用PB 11.5 有人知道如何将逗号分隔的文本文件导入datawindow吗 示例文本文件 “1234”,“20141011”,“胡安,德拉克鲁兹”,“美国”,“001992345456” “12345”、“20141011”、“伊利诺伊州Arc”、“纽约”、“005765753256” 如何导入第三列(全名)和最后一列(帐号)。我想将姓名和帐号转移到我的外部数据窗口中。我尝试使用ImportString(所有行仅在一列中传输)。我的外部数据窗口中
ls_File = dw_2.Object.file_name[1]
li_FileHandle = FileOpen(ls_File)
li_FileRead = FileRead(li_FileHandle, ls_Text)
DO WHILE li_FileRead > 0
li_Count ++
li_FileRead = FileRead(li_FileHandle, ls_Text)
ll_row = dw_1.ImportString(ls_Text,1)
Loop.
请帮我写代码!谢谢似乎PB在默认情况下需要一个选项卡分隔的csv文件(而“csv”中的“c”代表“coma”…) 添加
csv代码>ImportString()的参数中的枚举值,它应该修复该点(在我的测试框中)
此外,数据对象中定义的列必须与csv文件中的列相匹配(至少对于您感兴趣的第一列)。如果csv文件中有模式列,则将忽略它们。但是,如果要获得第一列(或第二列)和第三列,则需要定义前三列。如果不需要,可以随时隐藏#1或#2
顺便说一句,您的代码有一些问题:
您应该始终测试函数调用(如FileOpen()
)的返回值,以便在文件不存在/不可读的情况下停止处理
第一行读取文本文件两次:一次在while
之前,另一次在循环内部。或者可能是为了忽略带有列标题的第一行
FWIF,以下是基于您的工作代码:
string ls\u file=“c:\dev\powerbuilder\experience\data.csv”
字符串ls\u文本
int li_文件句柄、li_文件读取、li_计数
长罗
li\u FileHandle=FileOpen(ls\u文件)
如果li_FileHandle<1,则
返回
如果结束
li\u FileRead=FileRead(li\u FileHandle,ls\u Text)
当li_FileRead>0时执行此操作
李欧伯爵++
ll_row=dw_1.导入字符串(csv!,ls_Text,1)
li\u FileRead=FileRead(li\u FileHandle,ls\u Text)//读取下一行
环
文件关闭(li_fileHandle)
使用datawindow\u name.importfile(CSV!,file\u path)
方法。您应该使用FileReadEx方法。我的目的只是更改OP的代码并使其工作,而不是修复所有问题。实际上,最好使用ImportFile()
一次导入整个文件,而不是ImportString()
。PB处理文本文件的效率不是很高。