Professional Documents
Culture Documents
4074
4074
"
#$
()
% &
*)
'
+ , -
.
+=
% 8$ >
?)9
56 7 8 % 9:! ;<!
!@
'
G % -$I 8 , - H
*)
$%:
/!
0*)
! ;<
1 2 3! '
3 '-# . %
,< < A 2 * B *
@ 2 ,8<! - # $ G DE
*)
C - # : DE
+=
(: (
M ON 0 MMMM KL G J /
! ,T<
3 '-# S MM P Q 1
U 2! ,$
?R#
8-
1 -R !
& 9 V #W 8 ' *2
(8: B0 % '
M%
8; 2 3 $ 8 * ;
.J
> -0
b , - 2%
T$ P 9
]^ %Z[[
$ __ A
G1
89 9 # + ;- 2
Y -# A 2 3 >
%Z %
-- * )
* B * T< %
G * DE
*)
@ 2! ,$ J / ! % -$
M1
- #.%
. U 2! (S
% $ P 9 %6 / !
*) .% 6 X *)
,'
" % / %9 ;
( 2 1 `a 2 1 $ . %
*)
> 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:
9
-
>
*8
1
#
3 ' 3! FT ReSet J
> - b
;7b %T
! 6 a20
21$
b , - 2 A9: J 9 1 Y-)
@=
!I L ) - J e! `;7
MO #B
b c 2 $
(: h&>
3 ' 3! FT
% -'
' 1
g - KL
>
U D 8 W ReWrite J
-<1
>
(: MM *W
M
(: (9;
!Y
&
i 3 $ B0 !
;
M(
(: % -' Write J
b , - 2 String % 2 % / % -'
DE
@ &0 +
(: DE
M(
+=
;
k: %
DE
J 9 Read J
@ &0 +
(:
b , - 2 String % 2 % / %6 9
Q %
J 9 ReadLn
. 6 a20
. %;
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. #
*
m - < L ;<Q P
MRecord/Packed %f
# FT
TrunCate J
, 9-
%
M(
@
- %) -R P 9
S
i%'
b , - < $1
.*)
LS + , -
,' 8 , -
M{$A+}/{$A-} A
M S
DE
-- * )
,8 # %;
B
*8
T 3n: , /
# , - 2 3! '
:
+= # ! % op Seek J
+=
/ ;20 1
^-
*J
A 2 `a
(: DE
LS 56 7 V L
C- Y
b
! -
% / ! 92 ! F-'2 1 $ 3Q
. %;
%X !l
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
<
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 '"
" '
4!
J / ! % -' % ' %
M %f
Y -# 82Q * )
,' 8 , - d f + # P
()
(: % T
4"
D$4
*? / 0
!
'&?$Q i9? 2
<
@ 2 S! (S . % 6 X * )
`< % 7 %
.$&
'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
# %;<
, 9- SysUtils
'
$
P
.*)
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;}
{***************************************}
//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?$
'
& &k
iJk
<.
4!
b %C:
M/IU
; M$
'8
iJ8
GJ ? c
$@
"
. 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$&!
'
& &k
iJk
M/IU
4!
; M$
(&&&'
##
! "
GJ ? c
'
#$%&$ % #
*%*+,- *%.
'8
iJ8
H
$@
"
u! Api P
. v/
"
A9: (6 e 1 `a 2 1 $ l
. 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 $
!"
!%
!%
!%
#$
%
%
%
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 #$#
*(
,#-
!!
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<)
!%
) > , ;B
!( C;-E 6 E
&! N 6-
)
)
)
)
%2 %
%
%
, # %
, )%
!)! # %/
X$ Y B
"
E J
# 8) "
+1 6D) , -
'
$ S 7 #$#
# + #
*(
*(
*(
*(
*(
*( ,
M N2 2
,
!(
*+ ( :
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 ;
+
+
$#$4
$#$4 % 1"
" 8- $
`U
= C;-$ C 8- $
5`
?@ C ;
`
?@
^ _ ! != ) 5
B # $
: 8)
+ $#$4 > #() ?@ 6( $
8)
+ $#$4 > #() ?@ 6( $
2 8)
+ $#$4 > #() ?@ 6( $
#$4 # "$
*
(
%
%
%
. ReadFile/WriteFile %
" ,&
C;-$ C SL$ , - I
F5(
9 $5
# V <E
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