Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Побайтное чтение и запись, Неизвестная база *.DAT (возможно BTree) 
:(
    Опции темы
Chyslyvchyk
  Дата 4.12.2004, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть здоровення база неизвестного формата (есть подозрение, что это BTree). Вроде бы известен размер записи. smile
Нужно разбить базу на записи и записать в новый файл. Думаю, нужно сделать это побайтово.
smile smile smile


--------------------
Простота - сестра таланта!
PM MAIL   Вверх
<Spawn>
Дата 4.12.2004, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



А при чем тут тогда базы данных? Тебе нужно открыть файл и прочитать из него блоки нужного размера, если ты точно уверен, что это то что тебе нужноsmile Читать можешь при помощи TFileStream, Read, BlockRead, ReadFile... К примеру:

Код

var
 FileStream: TFileStream;
 Buffer: TBuffer; // Структура читаемых данных
begin
 with FileStream.Create('C:\FileName', fmOpenRead) do
 try
   while Position < Size do
     Read(Buffer, SizeOf(TBuffer));
     //Тут делаешь с прочитаными данными(Buffer) что хочешь
 finally
   Free;
 end;



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Chyslyvchyk
Дата 6.12.2004, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ругалось Access violation at address... на строке:
Код

with FileStream.Create('C:\MyFileName.DAT', fmOpenRead) do


Переписано:
Код

procedure TForm1.ButtonClick(Sender: TObject);
var
FileStream, OldFile: TFileStream;
Buffer: Variant;
F2: TextFile;
begin
AssignFile(F2, 'С:\MyFileName.txt');
Rewrite(F2);
OldFile := FileStream.Create('C:\MyFileName.DAT', fmOpenRead);
with OldFile do
begin
try
while Position < 331 do
Read(Buffer, 1);
Write(F2, Buffer);
finally
Free;
end;
end;
end;


Ругается Access violation at address... на строке:
Код

with OldFile do

smile


--------------------
Простота - сестра таланта!
PM MAIL   Вверх
Chyslyvchyk
Дата 6.12.2004, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ошибка найдена, нужно было написать:
Код

OldFile := TFileStream.Create('C:\MyFileName.DAT', fmOpenRead);


Вопрос следующий: как записать то, что считалось в другой файл?


--------------------
Простота - сестра таланта!
PM MAIL   Вверх
<Spawn>
Дата 6.12.2004, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Цитата
Ошибка найдена, нужно было написать:

Ага, я просто оЧеПятался.

Ответ смотри в
Общем разделе



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


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

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

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


 




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


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

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