Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Двоичные файлы [D7, WinXP]


Gigik ©   (2007-09-28 13:22:00) 

Добрый день. Как работать с двоичными фалами? Как их открыть и изменять как мне хочется. Спасибо!


Рамиль   (2007-09-28 14:26:00) [1]

TFileStream + F1


Anatoly Podgoretsky   (2007-09-28 14:03:00) [2]

> DVM  (28.09.2007 13:42:02)  [2]

Важно, он открывает всегда двоичный, высокоуровневые функция Паскаля не доступны.


Anatoly Podgoretsky   (2007-09-28 13:49:00) [3]

> Gigik  (28.09.2007 13:22:00)  [0]

Методов открытия множество, а изменение - это изменение байтов в буфере, с последующей записью в файл.


DVM   (2007-09-28 13:42:00) [4]


> Как их открыть

CreateFile(), например, открывает любой файл и неважно двоичный он или текстовый.


> и изменять

WriteFile()

Вот тебе пример лога:

procedure Log(const LogFileName: string; LogMessage: string;);
var
 hLogFile: HFILE;
 dwPointer: DWord;
 Len: integer;
 NumberOfBytes: Cardinal;
begin
 LogMessage := TimeToStr(Time) + ' - ' + LogMessage + #13#10;
 hLogFile := CreateFile(PChar(LogFileName), GENERIC_WRITE, FILE_SHARE_READ or
                        FILE_SHARE_WRITE, nil, OPEN_ALWAYS,
                        FILE_ATTRIBUTE_NORMAL or FILE_FLAG_WRITE_THROUGH, 0);
 if hLogFile <> INVALID_HANDLE_VALUE then
   begin
     dwPointer := SetFilePointer(hLogFile, 0, nil, FILE_END);
     if dwPointer <> $FFFFFFFF then
       begin
         Len := lstrlen(PChar(LogMessage));
         WriteFile(hLogFile, LogMessage[1],  Len, NumberOfBytes, nil);
       end;
     CloseHandle(hLogFile);
   end;
end;


Сергей М.   (2007-09-28 13:27:00) [5]


> Как работать с двоичными фалами?


Так же как и с любыми другими фалами.


Наверх

Титульная страница Поиск, карта сайта Написать письмо