Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.05.2010, 20:25
DELPHI-RUS DELPHI-RUS вне форума
Прохожий
 
Регистрация: 02.05.2010
Сообщения: 1
Репутация: 10
По умолчанию HELP Побайтовое Чтение файла

Привет всем!!!
у меня проблема с прогой,которая должна побайтово прочитать файл , и поместить каждый байт в массив.
Но сколько бьюсь над ней ничего не выходит,то полностью читайт и в первую ячейку массива кладет,то один байт читает,или вообще не читает
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  
Старый 02.05.2010, 21:07
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

И у вас это проходит без ошибок?
Код:
var
Pointer:TOFSTRUCT;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 03.05.2010, 08:09
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Код:
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;

написал по памяти, но работать должён
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
  #4  
Старый 03.05.2010, 08:16
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Можно еще проще:
Код:
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  
Старый 03.05.2010, 09:19
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

PHP код:
procedure TForm1.Button2Click(SenderTObject);
var
  
hTHandle;
  
data: array of Char;
  
lenCardinal;
  
dummyCardinal;
  
iInteger;
begin
  h
:=CreateFile('Project1.dpr'GENERIC_READ0nilOPEN_EXISTING00);
  
len:=GetFileSize(hnil);
  
SetLength(datalen);
  
ReadFile(hdata[0], lendummynil);
  
CloseHandle(h);
  for 
i:=0 to dummy-do
    
Memo1.Lines.Add(data[i]);
end
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:52.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025