You are on page 1of 10

!

"

#$ % & '

() *) + , -
. /! 0*) 1 2 3! '

+= ; % 8$ > 56 7 8 % 9:! ;<! ! ;< 3 '-# . % *) 4


; 0 ?)9 !@ ' $%: ,< < A 2 * B * C - # : DE
G % -$I 8 , - H *) @ 2 ,8<! - # $ G DE += F 5 (: (
M ON 0 MMMM KL G J /

! ,T< 3 '-# S MM P Q 1 8- H 1 -R ! - #.% -- * ) 4


* U 2! ,$ ?R# & 9 V #W 8 ' *2 P T$ P 9 * B * T< % T
% -$ (: 8# / %;92 ' > (8: B0 % ' P T G * DE G1 . U 2! (S
M% *) 89 9 # + ;- 2 % $ P 9 %6 / !

8; 2 3 $ 8 * ; @ 2! ,$ J / ! % -$ Y -# A 2 3 > *) .% 6 X *) 4
M1 > -0 \ ]^ %Z[[ %Z % ,' " % / %9 ;

.J b , - 2% $ __ A ( 2 1 `a 2 1 $ . % *) 4
procedure AssignFile ( var FileHandle : TextFile; const FileName : string ) ;

> 2% 1 & (6 e ! ( 2 1 ] 9 d :&0 ' AssignFile J b c 2 $


1 Y-: %9 f # F - VB,/ ' %6 9 ! : % -' > 2 9 < > ! 6 a20
. Y-) 3! g 21$
+9 < 0 9 > 1 3 ' 3! FT ReSet J b , - 2 A9: J 9 1 Y-)
(8: - *8 # > - b S # ;7b %T @= !I L ) - J e! `;7
MO #B (: h&>
procedure Reset ( var FileHandle : TextFile ) ;
3 ' 3! FT ' 1 > U D 8 W ReWrite J b , - 2 A9: % -' 1 Y-)
% -' g - KL -<1 > % (: MM *W + (: (9; !Y &
M 1 J a20 - < > i 3 $ B0 !
procedure ReWrite ( var FileHandle : TextFile ) ;

; (: % -' Write J b , - 2 String % 2 % / % -'


M( ; DE @ &0 + ; j)2 (: % -' WriteLn !
1- procedure Write ( var FileHandle : TextFile; Expression1,Expression2) ;

2- procedure Write ( var FileHandle : TextFile; var Value) ;

; (: DE += k: % J 9 Read J b , - 2 String % 2 % / %6 9
M( ; DE @ &0 + ; (: Q % J 9 ReadLn
procedure Read ( var FileHandle : TextFile; var Value) ;

. 6 a20 1 -
procedure CloseFile ( var FileHandle : TextFile) ;

. %; %X !l

Var F:TextFile //TextFile


Begin
AssignFile(F,'C:\Test.txt ) ;// ! " ! # $
ReWrite(F) ;++%& '" ' ( ) ! *
Write(F,'Samle Text ... ') ;++% " ,
CloseFile(F) ;// ! $-
End

.$&

Var F:TextFile;
Temp:String;
Begin
If Not FileExists('C:\Test.txt') Then Exit;/+ ! / 01 21. #
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 ! '? E


FileExists : GHI! ! / 01 =$F #& ' /
P m - < L ;<Q P P 9 * B * T< + , - < A9: S . % -- * ) 4
M*) @ LS + , - ,8 # %; *J 0
MRecord/Packed %f ,' 8 , - - %) -R P 9 B A 2 `a
M{$A+}/{$A-} A T , 9- S - *8 # , - 2 3! '
M S # FT % i%' P T 3n: , / : $
TrunCate J b , - < $1 (: DE += # ! % op Seek J b
M( DE += / ;20 1 C- Y ! -

.*) @ LS 56 7 V L ^- % / ! 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 e . ^ N F : $N :V

{Or // {$A-} = Packed Record .// SizeOf(MyType) h$0 / ?$ iJ8 % f" :Cg
Type
MyType = Packed Record
Name:String[100];
Age:Byte;
Men:Boolean;
End;
FRec = File Of MyType;}

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 $& *? / 0 ! < O
ReSet(F) Else ReWrite(F);//'" 1. '5 $& ' ( ) ! '&?$Q i9? 2
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;
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 " ' B 'J : D$4
If Temp.Men Then
ShowMessage('I am Men')Else
ShowMessage('I am Women');
End;
CloseFile(F);// ! $-
End;

&" B '" ! o 4! p 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 $& *? / 0 ! < O
ReSet(F) Else ReWrite(F);//'" 1. '5 $& ' ( ) ! '&?$Q i9? 2
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 + J / ! % -' % ' % Y -# 82Q * ) @ 2 S! (S . % 6 X * ) 4


M %f ,' 8 , - d f + # P `< % 7 % m - # A9: MMM * 2
() (: % T P P Api R-<0 ,q) r S •
CreateFile = AssignFile
ReSet/ReWrite = ReadFile/WriteFile
Seek = SetFilePointer
{$I-}/{$I+} - # %;< IoResult % > ,^- 2 3 ' $ •
Ms 2 T , 9- SysUtils %: \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 O
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 " 'C g c. ‚ GJ <. b %C: M/IU ; M$ d '8

RecordCount // 9z < I?$ y ' 4! iJ8

RecordsWritten // h ! & &k iJk GJ ? c H $@ "

. J 9 J 0t D
BlockRead ( var FileHandle : File; var Buffer; RecordCount : Integer {; var RecordsRead
: Integer} ) ;

FileHandle // %• <1I"

Buffer //MA1$&! ' 4! 'C g dHK@ %C: M/IU ; M$ d '8

RecordCount // V.$& < I?$ y ' 4! iJ8

RecordsWritten // A1$&! & &k iJk GJ ? c H $@ "

. ___ A9: Windows.Pas u! Api P A9: (6 e 1 `a 2 1 $ l


## # (&&&' ! " #$%&$ % # . v/ & -7b A9: ( - t a %2 -<b # . %\
## ! # ' ) *%*+,- *%. " . v: < ' (< & V' !

. CreateFile % 4
Function CreateFile(lpFileName: PChar; dwDesiredAccess, dwShareMode: DWORD;
lpSecurityAttributes: PSecurityAttributes; dwCreationDisposition,
dwFlagsAndAttributes: DWORD;
hTemplateFile: THandle): THandle; stdcall;

! " # $

'( ) *+ ( & $ %
0#$# )+ /. ! , - & $ %
") ! *+ ( , - & $ %
'( ! & $ %

1 23 4) 5 657 8) ! , ( 9 ! " #$# !" #$

1 2 4) , 8) 8) *+ ( 9 ! :;57 $ !% %
1 2 4) , 8) , - 9 ! :;57 $ !% %
1 2 4) , 8) &<) ! :;57 $ !% %
1 2 > 2 4) , 8 , - *+ ( 9 ! 6= :;57 $ !% %

C= $> ! 2 ) > , ;B ! ( ) *( ! A; 8) ! ?@) ! & '

DE > E 8 F5( C + ?@$ ! & '

; H# ; # G) 6) " ! != #$# $+ $ $+

# 6 E (, 6" , ; ;) C = J I #$# )+ / %
+K G) #$#L M NO, 7; , - <) $ (, ; ;) C = J I #$# )+ / )! %
#$#L Q !?> Q P
# 6 E ; ;) 8-$ J I (, ; ;) ) & ,- .! %
#$# 8) + $ ; ;) 8-$ J I (, ; ;) ) & ,- )! %
# 6 E ; ;) 8-$ CR (, ; ;) ) & ,- .! %/
I (5<) " #$# E SL$ T J 6" I E !, G! &<) G) (, ; ;) ) & ( .! %0
(5<) ; ;) 8-$ J # 6 E

9 P #$# 1 + '

!?> ) *( %2 %
U O) ) *( % %
V ) *( , # %
'( *+ ( ) *( , )%
HW ) *( !)! # %/
*( ,#- !! 3 *( #-, )% *( , X$ Y B

V> ! 2 ) > , ;B ) M N2 2 $ S 7 #$# "

8 ) #O 8- $ F5() UB " !( C;-E 6 E &! N 6- , # + # E J # 8) " !(

3 3 # +1 6D) , - *+ ( : Z$ [

. SetFilePointer % 4
Function SetFilePointer(hFile: THandle; lDistanceToMove: Longint;
lpDistanceToMoveHigh: Pointer; dwMoveMethod: DWORD): DWORD; stdcall;

# , \; F5() "

U , - *+ ( ?@) 6( C ; + $#$4

V> ! 2 ) > , ;B 0 , 8) 5= . # !5= C = J Z, < )>5 * $]= H#O <$ + $#$4 % 1"

" 8- $

U = C;-$ C 8- $ ?@ ^ _ ! != ) 5 B # $ #$4 # "$

5` : 8) + $#$4 > #() ?@ 6( $ * %


`U ?@ C ; 8) + $#$4 > #() ?@ 6( $ ( %
` 2 8) + $#$4 > #() ?@ 6( $ %
. ReadFile/WriteFile % 4
Function ReadFile(hFile: THandle; var Buffer; nNumberOfBytesToRead: DWORD;
var lpNumberOfBytesRead: DWORD; lpOverlapped: POverlapped): BOOL; stdcall;

" ,& C;-$ C SL$ , - I # Z$ [ 8 (, EV F5() "

F5( a 8) , - *+ ( ^ E/ ") 8! " 4) 8- $ " *+ (

9 $5 # V <E 8) 5= C;-E C SL$ I 08). ) 9 !5 0*+ 7. , = ! U 0 ,. ^ < C; * 66

0 E+ 7. , =

0 E+ 7. , = 9 $5 # + ' ,6*& $ 3+ ' ,6*& $

0 E+ 7. , = E U 9 $5 # + >/ 0b$ , . , ' ,6*& +3 ' ,6*&

5 6= 0*+ 7. , = 8) #=c 0 E+ 7. , = 9 $5 # 8!, !, > ( T- $I # ! E #",

,2 -- " d [8 & E J ,2 -- A; 8) ?@) ,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 ] 8: ' ,8 $ ) 3! &! += - T h& LS (: 7!


?# H # 3! V * ] W0 (S : MMM P> ,/ ' R: () *) + , -
M #$ % & ' + T k : - MM 6 ;7! Y # V B

You might also like