文本文件中有多少行数据

时间:2019-03-15 14:40:18

标签: powerbuilder

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

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

注意: gsa_wordlist是全局变量。

如果您作为经验丰富的开发人员,看到任何常见的陷阱,请告知。

我在Click()上的代码:

Xamrin.Forms.ToolbarItem

3 个答案:

答案 0 :(得分:1)

您不需要知道多少行,只需循环直到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限制的检查!

答案 1 :(得分:0)

您能想到不使用数据存储区的任何原因吗?

将单词导入数据存储区将很容易,然后您将可以立即使用搜索,排序,插入,删除方法。 ImportFile也比ReadFile快得多。

首先,创建一个数据窗口,其中包含名为d_dictionary的外部数据源,该数据源的一列可以容纳您的数据。

然后声明全局变量

datastore gds_dictionary

示例代码

long ll_rows
string ls_fileurl = 'C:\Users\abg\Documents\wordlist.txt'

if not isvalid( gds_dictionary ) then
    gds_dictionary = create datastore
    gds_dictionary.dataobject = "d_dictionary"
end if

gds_dictionary.reset( )
ll_rows = gds_dictionary.ImportFile( ls_fileurl )

if ll_rows < 1 then
   //oops! Something bad happened
else
   gds_dictionary.sort( )
end if

答案 2 :(得分:0)

以这种方式从文本文件生成密码是非常糟糕的主意。实际上,您在生成密码时就依赖字符,而从不从文件中选择完整的单词。恢复丢失的密码时,将使用包含许多单词的文件。同样,如果用作密码,那么有意义或有意义的单词肯定是一个弱密码。

如果您有机会看到某些Web托管服务提供商的控制面板,那么您可能会在其中找到生成高强度密码的好例子(并非所有Web托管提供商都提供了此密码)。

但是制作一个做同样事情的程序非常容易。例如,使用PowerBuilder脚本即可达到目的。

Integer MaxLength = 10, TheNextCode
Integer ASCII_Range[33 TO 125]
String ThePass
DO While  Len(ThePass) < MaxLength
    TheNextCode = Rand(125) 
    IF TheNextCode < 33 THEN Continue
   ThePass += String(Char(TheNextCode))
LOOP
mle.Text += ThePass + "~r~n"