因此,我正在编写一个程序,用户在其中输入一些行并将其保存在文件中,然后我们可以选择他写的行来对其进行加密。 表示他将输入一个数字,比方说2指的是文本文件中的第2行。 问题是,如何从文本文件中获取特定行? 搜索显然不适用于文本文件!
Procedure cryptProcess( Var msgFile, cryptFile : Text; N : Integer);
Var
pNumber : Integer;
Begin
Writeln('Select a phrase to crypt [Number : ',N,'] : ');
Readln( pNumber );
Reset( msgFile );
For i:= 1 To N Do
Begin
If ( i = pNumber ) Then
Begin
Readln( msgFile, tempVar2 );
Writeln( i );
Writeln( tempVar2 );
End;
End;
Close( msgFile );
End;
答案 0 :(得分:1)
Pascal只能顺序处理文本文件-为了从文本文件中读取和使用行 n ,您必须读取(并可能丢弃)行1至< em> n -1.除非用户碰巧请求第一行,否则您现有的代码实际上不会从文件中读取文本。
您想要做的是替换
For i:= 1 To N Do
Begin
If ( i = pNumber ) Then
Begin
Readln( msgFile, tempVar2 );
Writeln( i );
Writeln( tempVar2 );
End;
End;
使用
For i:= 1 To pNumber Do
ReadLn(msgFile, tempVar2);
WriteLn(pNumber);
WriteLn(tempVar2);
这会从文件中读取前pNumber
行-也就是说,它会读取所需的行,而不会继续读取-然后打印数字和行。