# FileReadLine

读取文件的指定行，并将所得文本存储于变量中。

FileReadLine, OutputVar, Filename, LineNum

#### 参数

OutputVar | 变量名，用 以储存解读出的文本行。
Filename | 文件名，若未指定绝对路径将被默认为当前脚本运行路径（%A_WorkingDir %）。支持 Windows和Unix文件格式，也就是说，行尾标识可以是回车换行符(`r`n)或单纯的换行符(`n)。
LineNum | 行号，用以表示该行将被读取(1是第一行，2是第二行，等等)。可以是表达式。

#### ErrorLevel

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

#### 示例+ /poetbox

    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