Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

Хранение и работа с данными без использования...   Найти похожие ветки 

 
Кудесник ©   (2004-03-07 01:57) [0]

... BDE, ini и типизированных файлов. Поделитесь опытом... плз


 
Кудесник ©   (2004-03-07 02:09) [1]

Если можно, то с описанием задачи в общем виде, для которой это делалось.


 
Германн ©   (2004-03-07 02:24) [2]

Имхо, вопрос поставлен слишком "общо".
Да, было время, я хранил и работал с данными без вышеупомянутых. Я просто записывал все на бумаге авторучкой, а потом читал написанное глазами. :-)
И "описание задачи" тут тебе не поможет. Дело было не в задаче, а в возможности ее решения. Компа не было никакого.


 
Плохиш   (2004-03-07 02:27) [3]

Да ему про ADO хочется услышать :-) Денег-то на книжку не хватает и пираты с хелпом на...(обманули) :-(


 
Германн ©   (2004-03-07 02:40) [4]

2 Плохиш   (07.03.04 02:27) [3]
Если бы в вопросе звучало только "без использования BDE", я бы согласился. Но объединение "BDE, ini и типизированных файлов" - мне не понятно.

2 Кудесник ©   (07.03.04 01:57)
Да, забыл упомянуть еще один способ хранения данных.
Нетипизированный файл. Очень часто имеет расширение "cfg". Предназначен для хранения специфических настроек "чего-то". Предполагает заранее установленную структуру хранящихся данных.
Боюсь, однако, что и это не то, что нужно для вас :(( см. {2]


 
Кудесник ©   (2004-03-07 02:41) [5]

to Германн ©   (07.03.04 02:24)
Тут Делфи или бумажная контора?

>> Плохиш   (07.03.04 02:27)

ADO мне не надо. Охота узнать сабж.


 
Fay ©   (2004-03-07 02:47) [6]

По сабжу.
CreateFile
WriteFile(Ex)
ReadFile(Ex)

А вАщЕ-то Вам следует расшифровать понятие "работа с данными".


 
Германн ©   (2004-03-07 03:12) [7]

Самое смешное - это то, что тут и не Делфи, и не бумажная контора.

Если есть "Охота узнать сабж." без разъяснений сабжа, читай Fay ©   (07.03.04 02:47) [6]
Вот абсолютно полный ответ на сабж! (Кроме последней строки. Там еще раз указано на непонятность сабжа.


 
Алхимик ©   (2004-03-07 03:38) [8]

Вы хотите поставить нас в тупик своими вопросами?
Таки мы поставим Вас в тупик своими ответами...


 
ZyXEL   (2004-03-07 11:08) [9]

Хранение и работа с данными без использования... компьютера; а лучше - без использования самих данных; абстракция в чистом виде!
См. [3] или [6] и не выпендривайся!


 
Anatoly Podgoretsky ©   (2004-03-07 11:25) [10]

Кудес не бывает


 
Кудесник ©   (2004-03-07 13:02) [11]

Задачи? Ну, например:

Небольшие справочники: без комментариев.
Деревья: TreeView.
Игры: список победителей.

и т.д. и т.д. и т.д. мало ли задач, для которых использование BDE -излишество, а типизированные файлы - громозко, ini-файлы - не достаточно гибко, но то и другое слишком открыто.

Была идея писать всё в виде непрерывного двоичного кода, переводимого в символы. Например, 3 поля:
первое - длина второго поля, одинаковая для всех, например, 5, что даёт длину второго поля от 0 до 31 бита.
второе - длина данных в байтах (8 бит), продолжая пример - это даст от 0 до 2147483647 символов.
третье - сами данные.

Т.к. поля переменной длииы и пишутся как целое, то это даст сдвиг, что приведёт к нечитабельности содержимого файла и проблематичность его редактирования.

Но это так... лишь сырая мысль... хотелось бы узнать, что делают в подобных случаях мастаки.


 
Cobalt ©   (2004-03-08 01:14) [12]

Текстовый файл - вот панацея!
;)
Хотя...Это тоже типизированный файл (почти)
Во! XML - и текстовый файл, и не типизированный.


 
Германн ©   (2004-03-08 01:15) [13]

Хм.
>Т.к. поля переменной длииы и пишутся как целое, то это даст >сдвиг, что приведёт к нечитабельности содержимого файла и >проблематичность его редактирования.

Проблематичность редактирования чем? Блокнотом?
А НЕХ-редакторы?


 
Knight ©   (2004-03-08 02:20) [14]


> [13] Германн ©   (08.03.04 01:15)
> Хм.
> Проблематичность редактирования чем? Блокнотом?
> А НЕХ-редакторы?

Возьми строку символов, переведи в бинарный код припиши спереди 3 единицы, а сзади допиши до кратного восьми нулями, а потом назад в строку... думаю, если человек только думает, что он Cool-хацкер, то HEX ему не поможет.


 
Knight ©   (2004-03-08 02:21) [15]

Если я правильно понял...


 
Германн ©   (2004-03-08 02:36) [16]

2 Knight ©   (08.03.04 02:20) [14]
А Вы уверены в своем ответе?
Или Вы его неправильно адресовали?


 
Knight ©   (2004-03-08 18:13) [17]

>> [16] Германн ©   (08.03.04 02:36)
> 2 Knight ©   (08.03.04 02:20) [14]
> Или Вы его неправильно адресовали?
В смысле, неправильно?


> Проблематичность редактирования чем? Блокнотом?
> А НЕХ-редакторы?

Твой вопрос? Я дал ответ...

По вышеприведённому методу с некоторой доработкой (необходимо, чтобы начало данных не попало на начало байта, если это происходит, то надо добавлять ко второму полю 0 впереди) мой ник в Hex выглядит так:
11 92 DB 9A 59 DA 1D

Где в бинарном виде:
Первое поле - 00100 длина=5 бит; Значение=4 (бита)
Второе поле - 0110  длина=4 бита (увеличенное на 1); Значение=6 (байт)
Третье поле - 010010110110111001101001011001110110100001110100 = "Knight"

Строку не привожу, т.к. часть символов тут едва ли пройдёт.

Вроде, нигде не напутал :)

Т.е. против Cool-хацкеров, которые могут только пользоваться готовыми кряками, редактировать открытый текст и писать вири при помощи конструкторов и ничего не понимают в Hex-коде... этого вполне достаточно.


 
Германн ©   (2004-03-09 04:15) [18]

2 Knight ©   (08.03.04 18:13) [17]

Теперь после ветки о никах, я тебя понял.

Имхо, используй все, что придумаешь сам.
Но можешь и использовать какие-нибудь стандартные алгоритмы криптографии. Их много, и они довольно продвинутые, так, что защищают не только от Cool-хацкеров. А что тебе мешает использовать оные?

Однако, причем же тут сабж? Ни BDE, ни ini, ни типизированные файлы - не противоречат криптографии!


 
Verg ©   (2004-03-09 09:17) [19]

FIFO в файле.
Т.е. нужно было подобие кольцевого буфера, но не в памяти, а на диске, чтобы даже при "аварийном завершении" (типа шнурок из розетки выдернули) приложения данные в этом буфере сохранялись с максимальной вероятностью.
Класс этот был назван гордым именем "Циклическая база данных" :))
год рождения - 1992. Еще на Турбо Паскале.
Сейчас этот прототип выглядит так:
type
 PBase = ^TBase;
 TBase = class
   Opened : boolean;
   BFile : File;
   HeaderSize : longint;
   BegPos, EndPos, ItemSize, MaxSize : Longint;
   constructor Create(BFileName:string;  AItemSize, AMaxSize:longint);
   destructor destroy; override;
   function  Open:boolean;
   procedure CloseBase;
   function  PosInBase(BPos:longint):boolean;
   function  InsertItem(var Item):word;
   function  InsertItems(var ITems; ItemCount:longint):word;
   function  GetItem(var Item; IPos:longint):word;  virtual;
   function  GetItemCnt(var Item; IPos:Longint; Cnt:longint):word;  virtual;
   function  DeleteItem(Count : Longint):word; virtual;
   function  PutItem(var Item; IPos:longint):word; virtual;
   procedure FindPos(BPos:Longint);
   function  GetBegPos :longint;
   function  GetEndPos :longint;
   function  GetFree   :longint;
   function  GetCount  :longint;
   function  GetBaseSpace:longint;
   function  GetMaxBaseSpace:longint;
   procedure TruncateBase;
   procedure StoreHeader; virtual;
   procedure ReStoreHeader; virtual;
 end;

 PCashBase = ^TCashBase;
 TCashBase = class(TBase)
   StartLoc, EndLoc,
   CashSize:longint;
   Cash : pointer;
   destructor Destroy; override;
   function  GetItem(var Item; IPos:longint):word; virtual;
   function  GetItemCnt(var Item; IPos:Longint; Cnt:longint):word; virtual;
   function  DeleteItem(Count : Longint):word; virtual;
   function  PutItem(var Item; IPos:longint):word; virtual;
   procedure OpenCash(Asize:shortint);
   procedure CloseCash;
private
   function Pos2Loc(BPos : Longint):longint;
   function Loc2Pos(BLoc : Longint):longint;
   function Loc2Index(BLoc:longint):longint;
   function  PosInCash(BPos: longint):boolean;
   function  MoveCash(IPos:longint):word;
   procedure ResetCash;
 end;

 TCBuffer = class
   CurrPos : longint;
   Base : TBase;
   destructor Destroy; override;
 public
   CurrRecord : pointer;
   constructor Create(ABase : TBase);
   function Next:boolean;
   function Prior:boolean;
   function  FindIndex(Idx : int64):boolean;
   procedure Last;
   procedure First;
   function IsNull: boolean;
   function CurrentIndex:Int64; virtual; abstract;
 end;


 
REA ©   (2004-03-09 10:24) [20]

В свое время некий француз поставил мне задачу сделать иерархическую базу данных на VC. Ну сделал, что-то, но работать с этим в большом проекте все-равно нельзя. Ни тебе SQL (хотя некое подобие я тоже сделал), ни тебе транзакций и т.п. Короче в "потрепаться".



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.035 c
14-1078140492
John S.
2004-03-01 14:28
2004.03.28
AVP кто нибудь юзает ?


1-1078407626
RLucky
2004-03-04 16:40
2004.03.28
Фон для ListBox


3-1077704772
ПИТОН
2004-02-25 13:26
2004.03.28
MySQL -> Oracle


3-1077696063
Asdor
2004-02-25 11:01
2004.03.28
Про TClientDataset...


14-1078058540
Lexer
2004-02-29 15:42
2004.03.28
Д. Кнут "Искуство программирования"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский