首页 > 解决方案 > 一个文本文件有多少行数据

问题描述

我是 Powerbuilder 的新手,在这里我有一些关于如何查找文本文件中有多少行/行数据的问题。首先,我尝试了一种 FileLength 方法,但不知道如何用我当前的逻辑来做到这一点。也找不到任何如何使用它的示例,所以在这里我需要一些帮助!

我正在做的是从 txt 文件生成密码。

注意: gsa_wordlist 是一个全局变量。

此外,如果您作为经验丰富的开发人员发现任何常见的陷阱,请务必告知。

我在 Click() 上的代码:

int li_rand
int li_upperboundList
int li_FileNum
string ls_fileurl
string ls_listout
int i
li_upperboundList = Upperbound(gsa_wordlist)
ls_fileurl = 'C:\Users\abg\Documents\wordlist.txt'

IF li_upperboundList < 100 THEN
Beep(1)

li_FileNum = FileOpen(ls_fileurl)
FOR i = 1 TO // TO HOW MANY LINES OF DATA
    FileReadEx(li_FileNum, ls_listout)
    gsa_wordlist[i] = ls_listout
NEXT

li_upperboundList = Upperbound(gsa_wordlist)
li_rand = rand(li_upperboundList)
sle_genpass.Text = string(li_rand)
ELSE
    Beep(2)
    li_rand = rand(li_upperboundList)
    sle_genpass.Text = gsa_wordlist[li_rand]
END IF

标签: powerbuilder

解决方案


您不需要知道有多少行,只需循环直到 EOF。

li_FileNum=FileOpen(ls_fileurl,LineMode!,Read!,LockRead!)

i = 1

DO While FileReadEx(li_FileNum,ls_listout) <> -100
   gsa_wordlist[i++] = ls_listout
LOOP
FileClose(li_FileNum)

PS。在循环内添加检查li_upperboundList限制!


推荐阅读