! "
#$
()
% &
*)
'
+ , -
. +=
;
;
% 8$ >
0
?)9
56 7 8 % 9:! ;
!@
'
G % -$I 8 , - H
*)
$%:
/!
0*)
! ;<
1 2 3! '
3 '-# . %
,< < A 2 * B *
@ 2 ,8
*)
4
C - # : DE
+=
F
5
(: (
M ON 0 MMMM KL G J /
! ,T<
3 '-# S MM P Q 1
*
U 2! ,$
?R#
8-
H
1 -R !
& 9 V #W 8 ' *2
% -$ (: 8# / %;92 ' >
(8: B0 % '
P
M%
8; 2 3 $ 8 * ;
.J
> -0
\
b , - 2%
T
T$ P 9
]^ %Z[[
$ __ A
G1
89 9 # + ;- 2
Y -# A 2 3 > %Z %
-- * )
4
* B * T< %
G * DE
*)
@ 2! ,$ J / ! % -$ M1
P
- #.%
T
. U 2! (S
% $ P 9 %6 / !
*) .% 6 X *) ,'
4
" % / %9 ;
( 2 1 `a 2 1 $ . %
*)
4
procedure AssignFile ( var FileHandle : TextFile; const FileName : string ) ;
> 2% 1
1 &
Y-: %9 f
(6 e ! ( 2 1 #
] 9 d :&0
F - VB,/ '
%6 9
' AssignFile J ! : % -' > 2 9 < > . Y-) 3! g
+9 < (8:
0
9 -
> *8
1 #
3 ' 3! FT ReSet J > - b
S
#
;7b %T
! 6 a20 21$
b , - 2 A9: J 9 1 Y-) @=
!I L ) - J e! `;7 MO #B
procedure Reset ( var FileHandle : TextFile ) ;
b c 2 $
(: h&>
3 ' 3! FT % -'
' 1
g - KL
>
U D 8 W ReWrite J
-<1
>
%
b , - 2 A9: % -' 1 Y-)
(: MM *W M
+
(: (9;
1 J a20 - < >
!Y
&
i 3 $ B0 !
procedure ReWrite ( var FileHandle : TextFile ) ;
; M(
(: % -' Write J
b , - 2 String % 2 % / % -'
;
;
DE
@ &0 +
j)2 (: % -' WriteLn !
1- procedure Write ( var FileHandle : TextFile; Expression1,Expression2) ; 2- procedure Write ( var FileHandle : TextFile; var Value) ;
;
(: DE M(
+= ;
k: % DE
J 9 Read J
@ &0 +
;
(:
b , - 2 String % 2 % / %6 9
Q %
J 9 ReadLn
procedure Read ( var FileHandle : TextFile; var Value) ;
. 6 a20
1
-
procedure CloseFile ( var FileHandle : TextFile) ;
. %; Var F:TextFile //TextFile Begin AssignFile(F,'C:\Test.txt ) ;// ReWrite(F) ;++%& '" ' ( ) Write(F,'Samle Text ... ') ;++% CloseFile(F) ;// ! $End
! " ! " ,
!
%X !l
# $
*
.$& Var F:TextFile; Temp:String; Begin If Not FileExists('C:\Test.txt') Then Exit;/+ ! / 01 AssignFile(F,'C:\Test.txt'); ReSet(F);// %& '5 $& ' ( 6 7/ 01 ' 8 ! 34 While Not Eof (F) Do// 9 : ; ! <. =$>" '? $ @ '& 8 Begin Read(F,Temp);// Temp ! ' 4! A $& ShowMessage(Temp);//' B '51$&! 'C & D$4 End; CloseFile(F); End; Eof : End Of File FileExists : GHI!
!
'? E !
/ 01 =$F
#&
'
/
21. # *
P
m - < L ;
P 9 * B * T< + , - < A9: S . % M*)
MRecord/Packed %f # FT
TrunCate J
T
, 9-
% M( @
- %) -R P 9 S
i%'
b , - < $1
.*)
LS + , -
,' 8 , -
M{$A+}/{$A-} A M S
@
DE
-- * )
,8 # %; B
-
*8
P
T 3n: , /
0
# , - 2 3! ' :
$
+= # ! % op Seek J
+=
/ ;20 1 ^-
*J
A 2 `a
(: DE
LS 56 7 V L
4
C- Y
b ! -
% / ! 92 ! F-'2 1 $ 3Q . %;
%X !l
Registration GJB K>: {$A-} Type MyType = Record// L &8 MIN 1O I?I0 GJB P$4 Name:String[100];//P$U STT R" ' L Q /I8 Age:Byte;// \\\ ] N YZ[ W < X $CN GV Men:Boolean;// ^_ `4? K3H < O End; FRec = File Of MyType;//L &8 MIN a b cd MyType {Or // {$A-} = Packed Record .// SizeOf(MyType) h$0 / Type MyType = Packed Record Name:String[100]; Age:Byte; Men:Boolean; End; FRec = File Of MyType;}
e . ^ N F ?$
4" Var Temp:MyType; F:FRec; Begin AssignFile(F,'C :\Test.Rec');// ! / I i9? 2 If FileExists('C:\Test.Rec')Then// '" j 4 1 MA $& ReSet(F) Else ReWrite(F);//'" 1. '5 $& ' ( ) ! Temp.Name:='TF6M';// L &k lm ] & Temp.Age:=20; Temp.Men:=True; Write(F,Temp);// GJ L &8 :5n <. I4" Temp GJ CloseFile(F); End;
iJ8 % f"
: $N
:V
:Cg
!
*? / 0 ! '&?$Q i9? 2
<
O
4" Var Temp:MyType; F:FRec; Begin AssignFile(F,'C:\Test.Rec'); If FileExists('C:\Test.Rec')Then ReSet(F) Else ReWrite(F); While Not Eof (F) Do Begin Read(F,Temp);// GJ .$& ShowMessage('My Name: '+Temp.Name+#13+ 'My Age: '+IntToStr(Temp.Age));// '3 If Temp.Men Then ShowMessage('I am Men')Else ShowMessage('I am Women'); End; CloseFile(F);// ! $End; &" B '"
!
o
" '
4!
B
p
J / ! % -' % ' % M %f
Y -# 82Q * )
,' 8 , - d f + # P ()
(: % T
P
4"
:
D$4
@
*? / 0 ! '&?$Q i9? 2
<
@ 2 S! (S . % 6 X * ) `< % 7 %
P
.$&
'J
Var Temp:MyType; F:FRec; Begin AssignFile(F,'C :\Test.Rec');// ! / I i9? 2 If FileExists('C:\Test.Rec')Then// '" j 4 1 MA $& ReSet(F) Else ReWrite(F);//'" 1. '5 $& ' ( ) ! Seek(F,0) ;//T p ! ! '? I" $Fq! pf TrunCate(F) ;//$Fq! p gn3 ! o 1I p r Temp.Name:='TF6M';// L &k lm ] & Temp.Age:=20; Temp.Men:=True; Write(F,Temp);// GJ L &8 :5n <. I4" Temp GJ CloseFile(F); End;
@ 2 +
@
Api
m - # A9: MMM * 2
R-<0 ,q)
r S •
CreateFile = AssignFile ReSet/ReWrite = ReadFile/WriteFile Seek = SetFilePointer
{$I-}/{$I+} Ms 2
T
-
# %;<
, 9- SysUtils
IoResult % > ,^- 2 3 %: \i F T- FileExists %
'
$ • P
M Read/Write 3 ' BlockWrite/BlockRead , - 2 S • procedure BlockRead ( var FileHandle : File; var Buffer; RecordCount:Integer) ; procedure BlockWrite ( var FileHandle : File; var Buffer;RecordCount:Integer) ;
O
4
.*)
@
LS 56 7 V L
^-
% / ! 92 ! F-'2 1 $ 3Q . %;
%X !l
{***************************************} //Open BinaryFile// {***************************************} Function OpenBFile(Var F:File;Path:String):Boolean; Begin {$I-}//' s A 3Hs 't 4 L 3" AssignFile(F,Path); If FileExists (Path) Then ReSet(F,1) Else ReWrite (F,1); Result:=(IoResult = 0); If Not Result Then Exit; Seek(F,0); {$I+}// A 3H2 't 4 ' ( H G 4*@ M/ N End; {Or Function OpenBFile(Var F:File Of Byte ;Path:String):Boolean; Begin {$I-}//' s A 3Hs 't 4 L 3" AssignFile(F,Path); If FileExists (Path) Then ReSet(F) Else ReWrite (F); Result:=(IoResult = 0);// A 3H. I0 ? 2 `4? T e40$! 'C & u If Not Result Then Exit;// A $0s v$w K3H / 01 ' 8 Seek(F,0); {$I+}// A 3H2 't 4 ' ( H G 4*@ M/ N End;}
O
{***************************************} //Close BinaryFile// {***************************************} Function CloseBFile(Var F:File):Boolean; Begin {$I-} CloseFile(F); Result:=(IoResult = 0); If Not Result Then Exit; {$I+} End; {***************************************} //Write String Value// {***************************************} Function WriteSBFile(BPath:String;LS:String):Boolean; Var F:File; LongWs, NBwrite: Integer; Begin If Not OpenBFile (F,BPath) Then Exit; {$I-} TrunCate(F);// ! If IoResult <> 0 Then Exit;// ' I v$w K3H x :V < O LongWs:=Length(LS);// LongWs = LS 9 " I?$ y ' : ' L Q BlockWrite(F,LongWs,SizeOf(LongWs),NBwrite);//' L Q V ez A F L1. If (IoResult <> 0) Or (SizeOf(LongWs)<>NBwrite) Then Exit; BlockWrite(F,LS[1],LongWs,NBwrite);// g z 1 ' L12 P${ '" * ? } | GJ ? If (IoResult <> 0) Or (LongWs <> NBwrite) Then Exit;// 'C & 1. K3H / 01 ' 8 } ' I v$w ' 4* iJk ^ N ~ '" ! {$I+}
Result:=CloseBFile(F); End; {***************************************} //Write ShortString Value// {***************************************} Function WriteCsBFile(BPath:String;CS:ShortString):Boolean; Var F:File; NBwrite: Integer; Begin If Not OpenBFile (F,BPath) Then Exit; {$I-} TrunCate(F); If IoResult <> 0 Then Exit; BlockWrite(F,CS[0],Byte(CS[0])+1,NBwrite); If (IoResult <> 0) Or (Byte(CS[0])+1 <> NBwrite) Then Exit; {$I+} Result:=CloseBFile(F); End; // P$U YZ[ 1 T •" M U Es ' L Q G J @ v - 2 :V //' L Q ^ N c € y CS[0] R '5 $g * ? //A1$&! ' L Q e GJ Byte f C {***************************************} //Read String Value// {***************************************} Function ReadSBFile(BPath:String;LS:String):Boolean; Var F:File; LongRs, NBwrite :Integer; Begin If Not OpenBFile (F,BPath) Then Exit; {$I-} If IoResult <> 0 Then Exit; BlockRead(F,LongRs,4,NBwrite);// 4 = SizeOf (String); If (IoResult <> 0) Or (4 <> NBwrite) Then Exit; SetLength(Ls,LongRs); BlockRead(F,Ls[1],LongRs,NBwrite); If (IoResult <> 0) Or (LongRs <> NBwrite) Then Exit; {$I+} Result:=CloseBFile(F); End; {***************************************} //Read ShortString Value// {***************************************} Function ReadCsBFile(BPath:String;CS:ShortString):Boolean; Var F:File; LongRc:Byte; NBwrite: Integer; Begin If Not OpenBFile (F,BPath) Then Exit; {$I-} If IoResult <> 0 Then Exit; BlockRead(F,LongRc,1,NBwrite);// 1 = SizeOf (ShortString); If (IoResult <> 0) Or (1 <> NBwrite) Then Exit; SetLength(CS,LongRc); BlockRead(F,CS[1],LongRc,NBwrite); If (IoResult <> 0) Or (LongRc <> NBwrite) Then Exit; {$I+} Result:=CloseBFile(F); End;
. % -' J
0t D
BlockWrite ( var FileHandle : File; var Buffer; RecordCount : Integer {; var RecordsRead : Integer} ) ; FileHandle // %• <1I" !
Buffer //
e " 9z
RecordCount //
<
RecordsWritten // h
!
'C g c.
‚ GJ
I?$
'
y
& &k
iJk
<.
4!
b %C:
M/IU
; M$
d
'8
iJ8
GJ ? c
H
$@
"
. J 9 J
0t D
BlockRead ( var FileHandle : File; var Buffer; RecordCount : Integer {; var RecordsRead : Integer} ) ; FileHandle // %• <1I" Buffer //MA1$&!
'
4!
RecordCount //
V.$&
<
RecordsWritten // A1$&!
'C g dHK@ %C: I?$
y
'
& &k
iJk
M/IU
4!
; M$
#
(&&&' ##
!
! "
GJ ? c
#
'
#$%&$ % #
)
*%*+,- *%.
'8
iJ8 H
. ___ A9: Windows.Pas ##
d
$@
"
u! Api P . v/ "
A9: (6 e 1 `a 2 1 $ l
& -7b A9: ( - t a %2 -
. v: < '
(<
&
V'
. CreateFile % Function CreateFile(lpFileName: PChar; dwDesiredAccess, dwShareMode: DWORD; lpSecurityAttributes: PSecurityAttributes; dwCreationDisposition, dwFlagsAndAttributes: DWORD; hTemplateFile: THandle): THandle; stdcall;
0#$#
)+ ") !
'( ) *+ ( /. ! , *+ ( , '( !
1 23 4) 5 657 8) 1 2 4) , 8) 1 2 4) , 8) 1 2 4) , 8)
!
! "
# $
& &
$
&
% % % %
$ & $
$
, ( 9 ! " #$#
8) *+ ( 9 ! :;57 $ , - 9 ! :;57 $ &<) ! :;57 $
!" !% !% !%
#$ % % %
!
4
1 2 C=
$> ! 2
> 2 4) , 8
) > , ;B !
(
, -
+K
6= :;57 $
*( ! A; 8) !
)
DE > ;
*+ ( 9 !
H#
;
?@)
E 8 F5(
#
C +
G) 6) "
?@$
!
&
'
!
&
'
! != #$#
$+
$+
M NO, 7; , -
9 P #$#
*(
,#-
!!
3
8- $
F5() UB "
!?> U O) V '( *+ ( ) HW #-, )%
*( V> ! 2
) #O
$
# 6 E (, 6" , ; ;) C = J I #$# )+ / % <) $ (, ; ;) C = J I #$# )+ / )! % #$#L Q !?> Q P # 6 E ; ;) 8-$ J I (, ; ;) ) & ,.! % #$# 8) + $ ; ;) 8-$ J I (, ; ;) ) & ,)! % # 6 E ; ;) 8-$ CR (, ; ;) ) & ,.! %/ " #$# E SL$ T J 6" I E !, G! &<) G) (, ; ;) ) & ( .! %0 (5<) ; ;) 8-$ J # 6 E
G) #$#L
I (5<)
8
%
!%
) > , ;B
!( C;-E 6 E
)
&! N 6-
3
) ) ) )
%2 % % % , # % , )% !)! # %/ X$ Y B
"
E J
# 8) "
+1 6D) , -
#
'
$ S 7 #$#
# + #
3
+
*( *( *( *( *( *( ,
M N2 2 ,
1
!(
*+ ( :
Z$ [
. SetFilePointer % Function SetFilePointer(hFile: THandle; lDistanceToMove: Longint; lpDistanceToMoveHigh: Pointer; dwMoveMethod: DWORD): DWORD; stdcall;
# , \; U V> ! 2
) > , ;B 0
,
8) 5= . #
!5=
C = J Z, <
, )>5
*+ (
F5() "
?@) 6( C ;
* $]= H#O <$
+ +
$#$4
$#$4 % 1" " 8- $
U
`U
= C;-$ C 8- $
5` ?@ C ; `
?@
^ _ ! != ) 5
B # $
: 8) + $#$4 > #() ?@ 6( $ 8) + $#$4 > #() ?@ 6( $ 2 8) + $#$4 > #() ?@ 6( $
#$4 # "$ * (
% % %
4
. ReadFile/WriteFile %
4
Function ReadFile(hFile: THandle; var Buffer; nNumberOfBytesToRead: DWORD; var lpNumberOfBytesRead: DWORD; lpOverlapped: POverlapped): BOOL; stdcall;
" ,&
C;-$ C SL$ , - I F5(
9 $5
# V
a 8) , -
8) 5= C;-E C SL$ I
# Z$ [ 8
*+ (
08).
(,
EV
F5() "
^ E/ ") 8! " 4) 8- $
) 9 !5 0*+ 7. , = ! U
" *+ ( 0 ,. ^ <
C;
* 66
0 E+ 7. , = 0 E+ 7. , = 0 E+ 7. , = E U
9 $5
--
#
# + >/ 0b$ , .
5 6= 0*+ 7. , = 8) #=c ,2
9 $5
" d [8
+
' ,6*&
,
' ,6*&
0 E+ 7. , = &
E J ,2
$
9 $5 --
# 8!,
A; 8)
3+
' ,6*&
+3 !, > (
$
' ,6*& T- $I ?@)
#
! E #",
,4 " 8- $
. ( 21
H X v
J /A
PX l
Var CrFileResult:hwnd; Buf: Byte; BytesR: Dword; Begin CrFileResult := CreateFile('c:\1.txt', GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); If CrFileResult <> INVALID_HANDLE_VALUE then Begin SetFilePointer(CrFileResult, 2, nil, FILE_BEGIN ); ReadFile(CrFileResult, Buf, 1, BytesR, nil); MessageBox(0, PChar('$' + IntToHex(Buf,2)), '', $40 + $2000 + $00); CloseHandle(CrFileResult); End; End;
5R (: * 'Db ] ?# H # 3! V * M #$
8: ' ,8 $ ) 3! &! += - T h& LS (: 7! ] W0 (S : MMM P> ,/ ' R: () *) + , % & ' + T k : - MM 6 ;7! Y # V B