![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Привет всем!!!
у меня проблема с прогой,которая должна побайтово прочитать файл , и поместить каждый байт в массив.Но сколько бьюсь над ней ничего не выходит,то полностью читайт и в первую ячейку массива кладет,то один байт читает,или вообще не читает Pliase ПОМОГИТЕ УМНЫЕ ЛЮДИ!!!!!!!!!!!!!!!!!!!! Вот последний вариант сорса: Код:
program DAVP;
uses
windows;
var
Pointer:TOFSTRUCT;
BufferW:Array of Byte;
BufferGFS:Array of Byte;
hFile:THandle;
D:Cardinal;
BOW:Word;
SFP:Word;
i:integer;
begin
hFile:=OpenFile('DAVP.dpr',Pointer,OF_READ);
BOW:=GetFileSize(hFile,BufferGFS);
SetLength(BufferW,BOW);
SFP:=0;
For i:=1 to BOW do
begin
SFP:=SetFilePointer(hFile,SFP,nil,0);
ReadFile(hFile,BufferW[i],1,D,nil);
WriteFile(OpenFile('Write.txt',Pointer,OF_CREATE),BufferW[i],BOW,D,nil);
Inc(SFP);
end;
end.Последний раз редактировалось DELPHI-RUS, 02.05.2010 в 20:32. |
|
#2
|
||||
|
||||
|
И у вас это проходит без ошибок?
Код:
var Pointer:TOFSTRUCT; |
|
#3
|
||||
|
||||
|
Код:
var
f: Cardinal;
fSize: Cardinal;
buf: Pointer;
begin
f := FileOpen('file.dat');
try
fSize := FileSeek(f, 0, 2);
FileSeek(f, 0, 0);
buf := AllocMem(fSize);
try
FileRead(f, buf, fSize);
//здесь работа с buf
finally
FreeMem(buf, fSize);
//здесь уже buf освобожден
end;
finally
FileClose(f);
end;
end;написал по памяти, но работать должён |
|
#4
|
|||
|
|||
|
Можно еще проще:
Код:
var
FS : TFileStream;
MS : TMemoryStream;
begin
FS := TFileStream.Create('file.dat',mfOpenRead);
Try
MS := TMemoryStream.Create;
Try
MS.CopyFrom(FS,FS.Size);
// Здесь можно получить указатель на данные и работать как с PChar.
Finally
MS.Free;
Finally
FS.Free;
End;
end; |
|
#5
|
||||
|
||||
|
PHP код:
|