Автор Тема: Создание базы данных. Концепция  (Прочитано 10320 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2785
  • Репутация: 470
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
AutoIt: 3.3.12.0

Категория: База данных

Описание: Создание базы документов. Документы в базе не кодированы и не сжаты
Функции предназначены для создания базы документов и работы с ними: запись, редактирование, удаление. Не путать с архиватором.

Примеры
Создание базы:
(нажмите для показа/скрытия)

Работа с базой:
(нажмите для показа/скрытия)

Исходник
DB.au3
В архиве варианты UDF
DB_33120 - AutoIT 3.3.12.0
DB_33140 - Autoit 3.3.14.0
DBSD_33140 - Autoit 3.3.14.0 (используется Scripting.Dictionary)

Источник: autoit-script.ru
Автор(ы): joiner
« Последнее редактирование: Июль 11, 2015, 00:15:43 от joiner »
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Русское сообщество AutoIt

Создание базы данных. Концепция
« Отправлен: Апрель 09, 2015, 15:06:18 »

Оффлайн inververs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 2135
  • Репутация: 461
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Создание базы данных. Концепция
« Ответ #1, Отправлен: Апрель 09, 2015, 15:42:58 »
Какую проблему решает? Зачем это? Можно поподробнее?

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2785

  • Автор темы
  • Репутация: 470
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Создание базы данных. Концепция
« Ответ #2, Отправлен: Апрель 09, 2015, 15:54:51 »
проблем нет. ключевое слово  - "концепция"
общий смысл - хранение многого в одном. возможность редактировать часть записи без перезаписи всего файла и пр.  :)

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Создание базы данных. Концепция
« Ответ #3, Отправлен: Апрель 09, 2015, 22:34:05 »
joiner
почему 12 байт? почему текст? можно прикрепить маленький пример базы?
Конференция посвященная AutoIt на jabber.ru - [email protected]
Как попасть на конференцию читаем тут


Русское сообщество AutoIt

Re: Создание базы данных. Концепция
« Ответ #3 Отправлен: Апрель 09, 2015, 22:34:05 »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2785

  • Автор темы
  • Репутация: 470
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Создание базы данных. Концепция
« Ответ #4, Отправлен: Апрель 09, 2015, 23:52:00 »
Это не готовый продукт, все условно. Пример базы можно получить, запустив примеры выше. Я хотел немного порассуждать , как создать своё, не прибегая к общеизвестным типам баз данных :)

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Создание базы данных. Концепция
« Ответ #5, Отправлен: Апрель 10, 2015, 00:59:47 »
joiner  [?]
Цитировать
Пример базы можно получить, запустив примеры выше
я знаю, что так можно получить базу. но ни под рукой, ни на расстоянии "километра", винды нет. иначе бы не спрашивал.

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2785

  • Автор темы
  • Репутация: 470
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Создание базы данных. Концепция
« Ответ #6, Отправлен: Апрель 10, 2015, 01:55:32 »
damien2008  [?]
Цитировать
эээ ... Package UDF  ?
почитай здесь http://autoit-script.ru/index.php?topic=9479.15
там я указал на ограничение такой записи
если в двух словах, то в моем примере мы лишь получаем список документов с указателями на позиции документов в базе. чтение нужного документа происходит не методом перебора , как это сделано в Package
Yashied  [?]
Цитировать
Еще раз про падение скорости. Технически, для извлечения каждого пакета необходимо сначала найти его в архиве, последовательно перечислив все пакеты, располагающиеся до искомого пакета. Таким образом получается, что чем дальше от начала файла находится извлекаемый пакет, тем больше времени потребуется на его поиск.
а установкой указателя на нужную позицию и чтение. это дает значительный прирост в скорости получения содержания документа


Добавлено: Апрель 10, 2015, 02:13:54
пример содержание базы. смотри скрин
http://autoit-script.ru/autoit_rv_ua/files/Administration/base.jpg


Добавлено: Апрель 10, 2015, 02:22:00
следующие два фото - пример, когда заполнен первый блок и начат второй - 200 документов. два снимка базы
http://autoit-script.ru/autoit_rv_ua/files/Administration/base1.jpg
 http://autoit-script.ru/autoit_rv_ua/files/Administration/base2.jpg
« Последнее редактирование: Апрель 10, 2015, 02:22:00 от joiner, Причина: Объединение сообщений »

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Создание базы данных. Концепция
« Ответ #7, Отправлен: Апрель 10, 2015, 02:37:04 »
это только для текстовых данных? можно ли иметь одинаковые имена документов?

Русское сообщество AutoIt

Re: Создание базы данных. Концепция
« Ответ #7 Отправлен: Апрель 10, 2015, 02:37:04 »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2785

  • Автор темы
  • Репутация: 470
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Создание базы данных. Концепция
« Ответ #8, Отправлен: Апрель 10, 2015, 03:12:13 »
в данной реализации - только текстовые. так как все задумывалось для хранения информации а не файлов. то есть, это не архиватор в прямом смысле.
хотя , можно без больших переделок, как мне кажется, реализовать хранение разного рода информации. я не делал кодирование строк, файл читаем в текстовом редакторе. считаю это опцией. хотя, если база будет в несколько мегабайт или гигабайт, то ее затруднительно будет открыть в редакторе  ;D

можно иметь одинаковые имена.проверка на совпадение не производится. каждый документ имеет свою позицию в файле.


Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Создание базы данных. Концепция
« Ответ #9, Отправлен: Апрель 10, 2015, 23:23:39 »
joiner  [?]
Цитировать
можно иметь одинаковые имена
а вот это строка в функции _ReadDoc что делает?
Код: AutoIt [Выделить]
If Not StringCompare(StringStripWS($NameDoc, 3), $ListDoc[$i][0]) Then


Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2785

  • Автор темы
  • Репутация: 470
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Создание базы данных. Концепция
« Ответ #10, Отправлен: Апрель 10, 2015, 23:49:48 »
Ищет совпадение по имени. Но при записи в базу нет проверки. Соответственно, все документы с одинаковыми именами выводятся в список

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2785

  • Автор темы
  • Репутация: 470
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Создание базы данных. Концепция
« Ответ #11, Отправлен: Май 02, 2015, 03:47:03 »
Изменения в UDF
1.Функции загрузки базы объединены в одну с параметрами загрузки(смотри пример)
   а)загрузка документов по имени
   б)загрузка документов по дате
   в)загрузка документов по типу
   г)загрузка всего списка (по умолчанию)
2. Функция записи документа в базу может дописывать документ в существующую базу без загрузки списка . Массовая дописка документов(смотри пример создания базы)
3. Имя документа ограничено 250-ю символами.
Если есть возможность, протестируйте.
« Последнее редактирование: Май 04, 2015, 12:07:39 от joiner »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2785

  • Автор темы
  • Репутация: 470
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Создание базы данных. Концепция
« Ответ #12, Отправлен: Май 25, 2015, 16:32:13 »
изменение функции загрузки базы.
функция возвращает массив с указателями на два массива - массив списка и массив последних позиций для записи(смотри описания к функциям)
изменены примеры в первом сообщении.
плюс некоторые мелкие поправки

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2785

  • Автор темы
  • Репутация: 470
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Создание базы данных. Концепция
« Ответ #13, Отправлен: Июль 11, 2015, 00:17:23 »
Сделал изменения согласно последней версии AutoIT 3.3.14.0
В архиве три варианта (смотри первое сообщение темы)

Русское сообщество AutoIt

Re: Создание базы данных. Концепция
« Ответ #13 Отправлен: Июль 11, 2015, 00:17:23 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
4223 Просмотров
Последний ответ Март 02, 2012, 13:15:40
от ---Zak---
2 Ответов
3434 Просмотров
Последний ответ Август 20, 2012, 21:05:09
от VasiliyRS
13 Ответов
5953 Просмотров
Последний ответ Сентябрь 11, 2012, 12:59:50
от Kaster
31 Ответов
15282 Просмотров
Последний ответ Ноябрь 28, 2012, 11:18:36
от XpycT
3 Ответов
2581 Просмотров
Последний ответ Февраль 26, 2014, 17:55:53
от Afonichev
2 Ответов
2368 Просмотров
Последний ответ Февраль 16, 2014, 19:35:36
от SlavaS
1 Ответов
1433 Просмотров
Последний ответ Март 19, 2015, 12:02:29
от vitaliy4us
5 Ответов
7297 Просмотров
Последний ответ Апрель 26, 2015, 17:18:33
от DanSaratov
22 Ответов
8626 Просмотров
Последний ответ Июнь 05, 2016, 06:53:34
от ВиталийВВ
0 Ответов
724 Просмотров
Последний ответ Февраль 09, 2016, 19:50:06
от Yashied