Csv 如何将逗号分隔的文本文件导入datawindow(powerbuilder 11.5)

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(所有行仅在一列中传输)。我的外部数据窗口中

您好,我是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”…)

添加
csvImportString()的参数中的枚举值,它应该修复该点(在我的测试框中)

此外,数据对象中定义的列必须与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处理文本文件的效率不是很高。