.
SetTextBuf (f, buf, size) . f: text, size: word; buf . f. Buf. . 128 . , .
Flush (f) f , . f: Text.
Eoln (f) True, . Boolean.
SeekEoln (f) True, , () . Boolean.
SeekEof (f) True, , , () .
6. , .
Program Task6;
Var FileName: String[20]; s: String;
f, f1: Text; code: byte;
Begin
Repeat
{ , }
Write( ); Readln(FileName);
Assign (f, FileName);
{$I-} Reset (f); {$I+}
code:= IOResult;
If Code <> 0 Then Writeln( !)
Until Code = 0;
Assign (f1, prn);
Repeat
{ , }
{$I-} Rewrite (f1); {$I+}
code:= IOResult;
If code <> 0 Then Writeln( !)
Until code = 0;
While Not Eof(f) Do
{ }
Begin Readln(f, s); Writeln(f1, s); End;
Close (f1); Close(f);
End.
7. 50 . . . .
. , , , ******. ( ), , . . N- , N1 , . Jump. , , .
Program Task7;
Var s: String; i, j: integer; f: Text;
n: array [1..3] of integer;
L: Set Of 1.. 51; Ok: Boolean;
{s }
|
|
{f }
{n ( )}
{L 1 51}
{Ok .
.}
{Jump .}
Procedure Jump;
Begin
While s<>***** Do readln(f, s); s:=;
While s<>***** Do readln(f, s); s:=;
End;
{ .}
Procedure Out_Text;
Begin
While s<>***** Do Begin readln(f, s); Writeln(s); End; s:=;
End;
Begin
Randomize;
{ .}
Assign (f, bilet2.txt);
{$I-} Reset (f); {$I+}
If IOResult <> 0 Then Begin Writeln ( !); Halt End;
{ 1 50}
L:= [];
For i:= 1 To 3 do
Begin
Repeat
n[i]:= random(50)+1;
If n[i] in L Then Ok:= False
Else Begin L:= L + [n[i]]; Ok:= True End;
Until Ok;
End;
{ }
For i:= 1 To 3 Do
Begin
Reset (f);
For j:= 1 To n[i]-1 do Jump;
Out_Text;
Out_Text;
End;
End.
, . , , ; , . .
:
f: File;
, . . Assign. Reset(f) Rewrite(f). Close(f).
128 . ( , ), . Assign :
Reset (f, BufSize) Rewrite (f, BufSize),
f File; BufSize Word , ( ) .
, , 1 . 64. , . -, . , , , , .
, , Read Write. :
BlockRead (Var f: file; Var A; n: Word; Var result: Word)
|
|
BlockWrite (Var f: file; Var A; n: Word; Var result: Word).
A A , , , f. n 1, n . n < 1 . :
n * BufSize < 64K.
result , BlockRead. BlockWrite , . , result n. BlockRead BlockWrite.
8. 1 2. .
Reset Rewrite 1. , , , BlockRead. Buf 10000 Char, , , 10000. BlockRead. 0, n.
Program Task8;
Const nn = 10000;
Var a1File, a2File: String[20];
Buf: Array[1..nn] of Char; { 10000 .}
f, f1: File; code: byte; n, n1: Word;
Begin
Repeat
Write ( ); Readln (a1File);
Assign (f, a1File);
{$I-} Reset (f,1); {$I+}
code:= IOResult;
If Code <> 0 Then Writeln( !)
Until Code = 0;
Write( ); Readln(a2File);
Assign (f1, a2File);
Rewrite (f1, 1);
Repeat
BlockRead(f, Buf, Sizeof(Buf), n);
BlockWrite(f1, Buf, n, n1);
Until (n = 0) or (n <> n1);
Close (f1); Close(f);
End.