gpt4 book ai didi

csv - 如何将逗号分隔的文本文件导入数据窗口 (powerbuilder 11.5)

转载 作者:行者123 更新时间:2023-12-03 17:43:17 32 4
gpt4 key购买 nike

嗨,美好的一天,我对 powerbuilder 很陌生,我正在使用 PB 11.5

有人知道如何将逗号分隔的文本文件导入数据窗口吗?

Example Text file

"1234","20141011","Juan, Delacruz","Usa","001992345456"...

"12345","20141011","Arc, Ino","Newyork","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)和第 3 列,则需要定义前 3 列。如果不需要,您可以随时隐藏 #1 或 #2。

顺便说一句,您的代码有一些问题:

  • 你应该总是测试函数调用的返回值,比如 FileOpen()用于在文件不存在/不可读的情况下停止处理
  • 您正在为第一行读取文本文件两次:一次在 while 之前和循环的另一个内部。或者它可能打算忽略带有列标题的第一行?

  • FWIF,这是基于您的工作代码:

    string ls_file = "c:\dev\powerbuilder\experiment\data.csv"
    string ls_text
    int li_FileHandle, li_fileread, li_count
    long ll_row

    li_FileHandle = FileOpen(ls_File)
    if li_FileHandle < 1 then
    return
    end if

    li_FileRead = FileRead(li_FileHandle, ls_Text)
    DO WHILE li_FileRead > 0
    li_Count ++
    ll_row = dw_1.ImportString(csv!,ls_Text,1)
    li_FileRead = FileRead(li_FileHandle, ls_Text)//read next line
    Loop
    fileclose(li_fileHandle)

    关于csv - 如何将逗号分隔的文本文件导入数据窗口 (powerbuilder 11.5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30701015/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com