读取文件的指定行,并将所得文本存储于变量中。
FileReadLine, OutputVar, Filename, LineNum
OutputVar | 变量名,用 以储存解读出的文本行。 |
Filename | 文件名,若未指定绝对路径将被默认为当前脚本运行路径(%A_WorkingDir %)。支持 Windows和Unix文件格式,也就是说,行尾标识可以是回车换行符(`r`n)或单纯的换行符(`n)。 |
LineNum | 行号,用以表示该行将被读取(1是第一行,2是第二行,等等)。可以是表达式。 |
ErrorLevel返 回值为1时说明读取失败,反之,为0则表明已正常读取。
一般说来,该命令应当仅被用于处理较小的文件,或用于处理文件中的某一特定单行。如果您要扫描并处理许多行(一行又一行)的话,请使用文件读取循环(file-reading loop)以获得命令执行的最佳性能。如果您要将整个文 件读取到变量中,请使用文件读取(FileRead)命 令。
虽然任何存在于行首和行尾的制表符及空格都会被一并记录到OutputVar变量中,但 是,行尾的换行符(`n)是个例外。当自动修剪(AutoTrim) 开关处于开启状态时(默认),任何变量均可以通过运用“赋值于该变量自身”的这一技巧,来自动修剪掉它首尾的制 表符及空格。举例来说,如果储存文本行的变量名为MyLine的话,修剪该行首尾的制表符及空格只需要在FileReadLine命令行后添加一句: MyLine = %MyLine%。
该命令不能用于读取超过六万五千五百三十四个(65,534)字符的超长行。如果一行中的字符数逾越了这个极限,超限部分的字符将无法 获取(在这种特殊情形下,应该取而代之的正确命令是文件读取(FileRead) 或文件读取循环(file-reading loop))。
FileRead, FileAppend, File-reading loop, IniRead
Loop
{
FileReadLine, line, D:\我的文档\ContactList.txt, %A_Index%
if ErrorLevel
break
MsgBox, 4,FileReadLine官方示例程序 , 第%A_Index%行的内容为“%line%”。是否继续?
IfMsgBox, No
return
}
MsgBox, 已到达文件结尾或已出错。
return
Loop ;Loop引领的大括号内,各行行首均有缩进空格
{
;FileReadLine, line, D:\我的文档\ContactList.txt, %A_Index% ;原例程,重在演示绝对路径写法,需要自行创建Contactlist.txt以便测试
FileReadLine, line, %A_ScriptName%, %A_Index% ;为方便直接测试,改为读取脚本自身内容
line=%line% ;新增此行以演示去除首尾制表符及空格,可注释掉此行以观效果(此行行尾有空格)
if ErrorLevel
break
MsgBox, 4,FileReadLine示例程序 , 第%A_Index%行的内容为“%line%”。是否继续?
IfMsgBox, No
return
}
MsgBox, 已到达文件结尾或已出错。
return