Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка с Tfilestream 
:(
    Опции темы
Illusion Dolphin
Дата 30.6.2003, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



Почему выдаётся ошибка?:

procedure TForm1.Button1Click(Sender: TObject);
var x,xrgb : array of byte; fs:Tfilestream; z:integer;
begin
fs:=Tfilestream.Create('C:.db', fmOpenRead);
// file 'C:.db' существует.
fs.seek(0,soBeginning); // можно и без этого
setlength(x,8);
fs.Readbuffer(x,8); // или fs.Read(x,8);
FreeAndNil(fs); // Error! fs.free выдаёт то же самое.
Z:=x[1]; //просто так...
end;

Или же каким образом считать из файла в динамический массив энное количество битов?


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
Unregistered
Дата 30.6.2003, 15:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Тут дело в fs.ReadBuffer(x, 8); В случае fs.Read(x, 8); ошибки нет
  Вверх
Illusion Dolphin
Дата 30.6.2003, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



Я извиняюсь, но "В случае fs.Read(x, 8);" ошибка тоже есть! ХЭЛП!


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
SmaLL
Дата 30.6.2003, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 557
Регистрация: 17.12.2002
Где: Voronezh

Репутация: 1
Всего: 2



а имя файла 'C:.db' - реальное?? Если да, то такое бывает?


--------------------
Что ни делается - всЁ к лучшему! SmallWeb
Мой адрес не дом и не улица, мой адрес родной пивзавод!
PM MAIL WWW ICQ   Вверх
SmaLL
Дата 30.6.2003, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 557
Регистрация: 17.12.2002
Где: Voronezh

Репутация: 1
Всего: 2



Код
procedure TForm1.CutFile;
var
 Buffer: array of byte;
 read, write: integer;
begin
 FInFile := TFileStream.Create(FFileName, fmOpenRead);
 Log('In file - ' + FFileName);
 FOutFile := TFileStream.Create(FCutFileName, fmCreate);
 try
   FInFile.Seek(4, soFromBeginning);
   SetLength(Buffer, BufSize);
   repeat
     read:= FInFile.Read(Pointer(Buffer)^, BufSize);
     write:= FOutFile.Write(Pointer(Buffer)^, read);
   until (read <> write) or (read <> BufSize);

 finally
   FInFile.Free;
   FOutFile.Free;
 end;
end;



--------------------
Что ни делается - всЁ к лучшему! SmallWeb
Мой адрес не дом и не улица, мой адрес родной пивзавод!
PM MAIL WWW ICQ   Вверх
Fantasist
Дата 30.6.2003, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


Профиль
Группа: Участник Клуба
Сообщений: 1517
Регистрация: 24.3.2002

Репутация: нет
Всего: 41



Цитата

fs.Readbuffer(x,8); // или fs.Read(x,8);


Неправильная запись. Тут в процедуру Readbuffer передается х - который является указателем, лежащим на стеке. Размер указателя 4 байт. Следующими 4-мя байтами в стеке идет переменная fs - тоже указатель (в коде, конечно, стоит xrgb, но так как она не используется, то оптимизатор ее выкидывает). Вызовом Readbuffer ты перезаписываешь оба указателя непонятно чем.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0427 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.