You are on page 1of 10

!

"

#$

()

% &

*)

'

+ , -

.
+=

% 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# / %;92 ' >

(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 $ . %

*)

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:

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

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

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. #
*

m - < L ;<Q P

P 9 * B * T< + , - < A9: S . %


M*)

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

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

<

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

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) ;

.*)

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$&!

'C g dHK@ %C:


I?$

'

& &k

iJk

M/IU

4!

; M$

(&&&'
##

! "

GJ ? c

'

#$%&$ % #

*%*+,- *%.

'8

iJ8
H

. ___ A9: Windows.Pas


##

$@

"

u! Api P
. v/
"

A9: (6 e 1 `a 2 1 $ l

& -7b A9: ( - t a %2 -<b # . %\

. 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 ;

* $]= H#O <$

+
+

$#$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 %

Function ReadFile(hFile: THandle; var Buffer; nNumberOfBytesToRead: DWORD;


var lpNumberOfBytesRead: DWORD; lpOverlapped: POverlapped): BOOL; stdcall;

" ,&

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

You might also like