Форум: "Основная";
Текущий архив: 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