25-08-2012, 10:35 AM
السلام عليكم
هذه طريقة للكتابة في نهاية الملف eof = end of file
باللون الاصفر الفواصل والاحمر النص ( معلوماتنا )
![[صورة: 20120825103443.png]](http://img19.imageshack.us/img19/6089/20120825103443.png)
للكتابة
للقرائةالوحدة المستخدمة
هذه طريقة للكتابة في نهاية الملف eof = end of file
باللون الاصفر الفواصل والاحمر النص ( معلوماتنا )
![[صورة: 20120825103443.png]](http://img19.imageshack.us/img19/6089/20120825103443.png)
للكتابة
PHP كود :
program Project1;
{$APPTYPE CONSOLE}
uses
uEof;
var txt:string;
begin
Writeln('your text here : ');
Read(txt);
WriteEof('Project2.exe', txt, 'BEGIN', 'END');
end.
للقرائة
PHP كود :
program stub;
uses
Dialogs,
uEof;
begin
ShowMessage(ReadEof('BEGIN', 'END'));
end.
PHP كود :
{ uEOF
Author: Xash
Description: Read/Write in EOF
}
unit uEof;
interface
uses
Windows;
function ReadFile(FileName: String): AnsiString;
function ReadEof( Delimit1, Delimit2 :String) :String;
function WriteEof(FileName, Res, Delimit1, Delimit2 :String) :String;
implementation
function ReadFile(FileName: String): AnsiString;
var
F :File;
Buffer :AnsiString;
Size :Integer;
ReadBytes :Integer;
DefaultFileMode:Byte;
begin
Result := '';
DefaultFileMode := FileMode;
FileMode := 0;
AssignFile(F, FileName);
Reset(F, 1);
if (IOResult = 0) then
begin
Size := FileSize(F);
while (Size > 1024) do
begin
SetLength(Buffer, 1024);
BlockRead(F, Buffer[1], 1024, ReadBytes);
Result := Result + Buffer;
Dec(Size, ReadBytes);
end;
SetLength(Buffer, Size);
BlockRead(F, Buffer[1], Size);
Result := Result + Buffer;
CloseFile(F);
end;
FileMode := DefaultFileMode;
end;
function ReadEof(Delimit1, Delimit2 :String) :String;
var
Buffer :AnsiString;
ResLength :Integer;
i :Integer;
PosDelimit :Integer;
begin
Buffer := ReadFile(ParamStr(0));
if Pos(Delimit1, Buffer) > Pos(Delimit2, Buffer) then
PosDelimit := Length(Buffer)-(Pos(Delimit1, Buffer)+Length(Delimit1))
else PosDelimit := Length(Buffer)-(Pos(Delimit2, Buffer)+Length(Delimit2));
Buffer := Copy(Buffer, (Length(Buffer)-PosDelimit), Length(Buffer));
ResLength := Pos(Delimit2, Buffer)-(Pos(Delimit1, Buffer)+Length(Delimit1));
for i := 0 to (Reslength-1) do
Result := Result+Buffer[Pos(Delimit1, Buffer)+(Length(Delimit1)+i)];
end;
function WriteEof(FileName, Res, Delimit1, Delimit2 :String) :String;
var
F: TextFile;
begin
AssignFile(F,FileName);
Append(F);
Writeln(F,Delimit1+Res+Delimit2);
CloseFile(F);
end;
end.

