: . :
{$I+} ;
{$I-} .
$I+. . , {$I+} {$I-}, . : , . , , . IOResult: Integer , . , 0.
, Reset
Assign (f, file1);
{$I-} Reset (f) {$I+};
If IOResult <> 0 Then Writeln( )
Else...
, , .
3. . , . : , , , .
:
1 .
2 .
3 .
4 .
5 .
i Seek(f, i). , , Seek(f, i - 1). Seek(f, Filesize(f)).
:
. 2. 3
:
Sklad . , : Name ; Data ; Price ; Count .
FileName .
code .
f .
Sk .
.
Program Task3;
Uses CRT;
Type
Tf = String[20];
Date = Record day: 1..31; Mon: 1..12; Year: 1..99; End;
Sklad = Record { }
Name: Tf;
Data: Date;
Price: Real;
Count: Integer
End;
Var FileName: Tf; R: Byte;
{ }
Procedure Vvod(fname: Tf); { }
|
|
Var f: File Of Sklad;{ }
Sk: Sklad; { }
Begin
Clrscr;
Assign (f, fname); {
}
Rewrite(f); { }
{ 1- }
Write( ); Readln(Sk.Name);
Writeln( - .);
While sk.Name <> do
Begin
With Sk Do
Begin { }
Writeln( );
Write( ); Readln(Data.Day);
Write( ); Readln(Data.Mon);
Write( ); Readln(Data.Year);
Write( ); Readln(Price);
Write( . ); Readln(Count);
End;
Write(f, Sk); { }
{ }
Write( ); Readln(Sk.Name);
End;
Writeln( <Enter>);
Repeat Until keypressed;{ }
Close (f);
End;
{ }
Procedure Look (fname: Tf); { }
Var f: File Of Sklad; Sk: Sklad; i, code: Integer;
Begin
Clrscr;
Assign (f, fname);
{ }
{$i-} {
}
Reset(f);
{$i+} {
}
code:= IOResult;{ }
If code <> 0 Then Begin { , 0}
Writeln( !);
Delay(2000); { }
End;
i:=0;
While Not eof(f) do {, }
Begin
Read(f, sk); { }
With Sk Do { }
Begin
i:= i + 1;
Writeln( , i);
Writeln( , Name);
Writeln( , Data.Day, /, Data.Mon, /, Data.Year);
Writeln( , Price:9:2);
Writeln( . , Count);
Delay(1000); {
}
End;
End;
Writeln( <Enter>);
Repeat Until keypressed;
Close (f);
End;
{ }
Procedure Correct(fname: Tf);
Var f: File Of Sklad; i, code: Integer; Sk: Sklad;
Begin
Clrscr;
Assign (f, fname);
{ }
{$i-}
Reset(f);
{$i+}
code:= IOResult;
If code <> 0 Then Begin
Writeln( !);
Delay(2000);
End;
i:= Filesize(f); { }
Writeln( , i, .);
Write( ? (0 - ));
Readln(i); { , }
While i > 0 Do { , 0}
Begin
Seek(f, i - 1); {
}
Read(f, Sk); {C c i}
With Sk Do
Begin
{ }
Writeln( , i);
Write( , Name,?); Readln(Name);
Writeln( ,Data.Day,/,Data.Mon,/,Data.Year);
Write(? ); Readln(Data.Day);
Write(? ); Readln(Data.Mon);
|
|
Write(? ); Readln(Data.Year);
Write( ,Price: 9: 2,?); Readln(Price);
Write( ., Count,?); Readln(Count);
End;
Seek(f, i-1); { }
Write(f, Sk); { }
Write( ? (0 - ));
Readln(i); { }
End;
Writeln( <Enter>);
Repeat Until keypressed;
Close (f);
End;
{ }
Procedure AppenF(fname: Tf);
Var f: File Of Sklad; Sk: Sklad; code: Byte;
Begin
Clrscr;
Assign (f, fname);
{ }
{$i-}
Reset(f);
{$i+}
code:= IOResult;
If code <> 0 Then Begin
Writeln( !);
Delay(2000); Exit;
End;
Seek(f, Filesize (f));
Writeln( - .);
Write( ); Readln(Sk.Name);
While sk.Name <> do
Begin
With Sk Do
Begin
Writeln( );
Write( ); Readln(Data.Day);
Write( ); Readln(Data.Mon);
Write( ); Readln(Data.Year);
Write( ); Readln(Price);
Write( . ); Readln(Count);
End;
Write(f, Sk);
Write( ); Readln(Sk.Name);
End;
Writeln( <Enter>);
Repeat Until keypressed;
Close(f);
End;
{ }
Begin
Clrscr;
{ }
Repeat
Write( .); Readln(FileName);
Clrscr;
Gotoxy(20,8); Write(1 - );
Gotoxy(20,10); Write(2 - );
Gotoxy(20,12); Write(3 - );
Gotoxy(20,14); Write(4 - );
Gotoxy(20,16); Write(5 - );
Gotoxy(20, 18); Write(? );Readln(R);
Case R Of
1: Vvod (FileName); { }
2: Look (FileName); { }
3: Correct (FileName); { }
4: AppenF (FileName); { }
End;
Until R = 5;
End.
. , , , , .
Erase (f) f. Close. Rename (F, S) F S. . f Close.
4. Sklad, . , < 95.
{ }
Procedure DelF(fname: Tf);
Var f, f1: File Of Sklad; Sk: Sklad; code: Byte; God: 1.. 99;
{ f1}
Begin
Clrscr;
Assign (f, fname);
{ }
{$i-}
Reset(f);
{$i+}
code:= IOResult;
If code <> 0 Then Begin
Writeln( !);
Delay(2000); Exit;
End;
Assign(f1, Temp); Rewrite(f1) { }
Writeln( < 95 );
While Not Eof (f) do
Begin
Read (f, Sk); { .}
If Sk.Data.Year >= 95 Then Write(f1, Sk); { .}
End;
Close (f); Close (f1);
Erase(f); Rename (f1, fname);
{ . .}
End;
(, , . .) , . , , , , . . .
|
|
, , . , .
. , . . , . . .
5. , , . .
:
Ind .
p , .
Min, i, j, k, nn, c .
.
Program Task5;
Uses CRT;
Const n = 100;
Type
Tf = String[20];
Date = Record day: 1..31; Mon: 1..12; Year: 1..99; End;
Sklad = Record
Name: Tf;
Data: Date;
Price: Real;
Count: Integer
End;
Var FileName: Tf; code: Byte; Ind: Array [1..n] Of Integer;
f: File Of Sklad; Sk: sklad; p: Array [1..n] Of Real;
Min: Real; i, j, k, nn, c: Integer;
{}
Begin
Repeat
Write( .); Readln(FileName);
Clrscr;
Assign (f, FileName);
{ }
{$i-}
Reset(f);
{$i+}
code:= IOResult;
If code <> 0 Then Begin
Writeln( !);
Delay(2000);
End;
Until code = 0;
{ }
i:= 0;
While Not eof(f) do
Begin
i:= i + 1;
Read(f, sk);
p[i]:= Sk.price; { }
End;
nn:= Filesize(f);
For i:= 1 To nn Do Ind[i]:= i; { }
{ }
For i:= 1 To nn - 1 Do
Begin
Min:= p[i]; k:= i;
For j:= i To nn do
If p[j] < Min Then Begin k:= j; Min:= p[j]; End;
p[k]:= p[i]; p[i]:= Min;
{ Ind}
{ }
c:= Ind[k]; Ind [k]:= Ind[i]; Ind[i]:= c;
End;
Reset(f);
For i:= 1 To nn do
Begin
Seek(f, Ind[i] - 1); { }
Read(f, sk);
With Sk Do
Begin
Writeln( , Name);
Writeln( , Data.Day,/,Data.Mon,/,Data.Year);
Writeln( ,Price: 9: 2);
Writeln( . ,Count);
Delay(1000);
End;
End;
Writeln( <Enter>);
Repeat Until keypressed;
Close (f);
End.
, :
1) ASCII;
2) . #13 ( 13 CR). #10 ( 10 LF);
3) ^Z ( 26);
|
|
4) , () ;
5) .
:
[13][10]
, [13][10]
[13][10]
. [13][10]
: [13][10]
123 456 789 0[13][10]
234 567 890 1[13][10]
1.2 3.4 5.60 4[13][10]
-100.254[13][10]
[13][10]
[26]
, .. [13] = #13. ( ).
, . Eoln (End of line). . . #26.
( ):
Var f: Text;
Assign, .
n- , n 1 . , , . :
Reset (f) ;
Rewrite (f) ;
Append (f) .
f .
Write Writeln, Read Readln.
. , , , (#9), (#13).
Read , , . . . , . Read String, . ( , ), . , . , .
Readln , . . Readln (f) , , . , f :
12.3 13.4 14.5 15.6
Readln(f, r1, r2) r1 r2 12.3 13.4, , (14.5 15.6) .
Write Writeln , , , , . Write , .. . Writeln #13 #10 . , , . , Writeln (f, a: 8: 3, S=, S: 4). Writeln(f) , .