Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
по идее, тебе нужна такая вещь как Коллекция. Во "взрослых" языках это реализовано вдоль и поперек (именованные коллекции, StringList, HashTable... штук 10 наверное есть разных на всякие случаи). В общем случае, это именованный список типа ключ=значение, имеющий кучу уже готовых методов (вставить, удалить, сдвиг, поиск) как по позиции, так и по имени ключа. Единственное что тебе надо - поиск и вытаскивание значения по маске, неполному имени ключа. Тут я гляжу многие типы коллекций сразу отпадают, им нужен точный ключ... ну если только не делать свой поиск, т.е. шерстить всю коллекцию и самому сравнивать ключ с маской. В принципе можно чтото набросать, посмотрю как будет работать с большими данными... кстати в каком-то плагине от hpw(?) я чтото подобное уже видел, там еще много методов для работы со строками...
Добавлено (30 Марта 2015, 16:42) --------------------------------------------- как у тебя точно структура списка выглядит которую ты грузишь, типа C:\путь\файл.дб[перевод строки] C:\путь\файл.дб[перевод строки] C:\путь\файл.дб или как?
DEMBEL, тут проблема в другом. Он сам не знает что он хочет. Давай оттолкнемся от первого поста. Вопрос темы решен. Весь список забить в базу и при выборе в EditBox мы можем получить весь нужный список.
Теперь новый вопрос, как в таблице выбрать несколько записей? А почему именно в таблице? С базой можно работать без отображения ее в таблице. Кто мешает полученные записи поместить в листбокс и там их выделять как угодно?
База в данном случае только для облегчения получения путей к файлам, а Омар хочет из нее сделать полноценный листбокс. Не хочешь читать хелп?
это не надо, я так думаю в итоге получается то что на скринах списка в начале темы было... в общем, я тебе хороший алгоритм поиска совпадений в строке заверну в плагин, написан на ассемблере, может хоть миллион строк пройти за секунду, будем надеяться это поборет необходимость структурировать данные, возьмем цель брутфорсом )
Добавлено (30 Марта 2015, 17:02) --------------------------------------------- а маску поиска уж сам подбери, вроде должно сработать
Добавлено (30 Марта 2015, 17:10) --------------------------------------------- скинь пока файл списка какой нибудь для теста
(В пришепке) Запустите 1.bat, он распакует все файлы из архива gamedata.dbc в папку gamedata. Далее открываем Preparing Lists указываем папку gamedata, удаляем лишний путь и сохраняем список в файл 1.txt (появится там же, в pubdir). Вот конечный пользователь видит список как он указан в 1.txt
Добавлено (30 Марта 2015, 17:12) ---------------------------------------------
Вот конечный пользователь видит список как он указан в 1.txt
И? Что дальше то? Ну видит он этот список, а дальше то что? Ты как будто только на форум пришел, все из тебя клещами вытаскивать надо.
Тот пример что ты даешь (я правда его еще не смотрел) человек познакомившийся с НБ в первый день сможет сделать. Нам то это зачем? Полностью поставленную задачу озвуч, а так... Вокруг да около. HPW я не люблю, потому что их не понимаю, в таблице не могу все записи выделить, тоже не понимаю... Не хочешь читать хелп?
Я всё сделал... осталось только реализовать поиск по маске по этому списку... почему использую листбокс, потому что очень важное значение имеет ещё то, если пользователь сам захочеть визуально выбрать определённые файлы (множественный выбор по ctrl)
Добавлено (30 Марта 2015, 17:27) --------------------------------------------- Ещё я мог бы вместо листбокса использовать дерево, если бы переменная дерева понимала структуру, то поиск не нужен вообще
а зачем батник? Не лучше Run "1.exe" "-unpack -2947ru gamedata.dbc" "RunOnce" "" "" ну параметры еще добавить нужные.
ЦитатаRezzoxe ()
осталось только реализовать поиск по маске по этому списку...
Ну плагин HPW я тебе не предлагаю, а лучшего я пока не встречал. Мож Дембель что сделает, посмотрим.
ЦитатаRezzoxe ()
почему использую листбокс,
Ну так и используй листбокс, зачем тебе таблица то? Мож я что не понимаю?
Добавлено (30 Марта 2015, 17:33) ---------------------------------------------
ЦитатаRezzoxe ()
Об этом я писал тут:
Этот плагин я вообще не советовал бы использовать никому. Рано или поздно он глючит. Хотя задумки там не плохие были, но их нужно было до ума доводить. Как и все работы этого автора.
Добавлено (30 Марта 2015, 17:34) ---------------------------------------------
ЦитатаRezzoxe ()
Ещё я мог бы вместо листбокса использовать дерево, если бы переменная дерева понимала структуру,
hpwTreeView понимает структуру, но опять же... С ним нужно разбираться. Не хочешь читать хелп?
а зачем батник? Не лучше Run "1.exe" "-unpack -2947ru gamedata.dbc" "RunOnce" "" "" ну параметры еще добавить нужные.
аррррр это для вас... в частности для Дембеля... просто понять саму суть подготовки списков... распаковка в конечном итоге и будет производится через Run:
Preparing List только для меня, для единоразовой подготовки списков. К конечному пользователю это не имеет отношения...
Добавлено (30 Марта 2015, 17:44) ---------------------------------------------
Цитатаmishem ()
Этот плагин я вообще не советовал бы использовать никому. Рано или поздно он глючит.
Понял...
Цитатаmishem ()
Ну так и используй листбокс
Использую... всё что задумал всё получилось с листбоксом кроме поиска:
Цитатаmishem ()
Мож Дембель что сделает, посмотрим
От этого и буду дальше отталкиваться... в противном случае:
Цитатаmishem ()
hpwTreeView понимает структуру, но опять же... С ним нужно разбираться.
Да нет там ничего сверхестественного. Просто в основном, все его плагины требуют сначала указать переменным значения, а после создавать объект. Самое сложное, это разобраться с этими переменными, какие обязательно указывать, какие нет. Все что касается шрифта, обязательно, иначе будут ошибки вываливаться, ну и по месту надо смотреть. А в остальном, все так же как и с другими плагинами. Не хочешь читать хелп?
тут проблема в другом. Он сам не знает что он хочет.
Увы, вот это я уже и сам понял.
ЦитатаDEMBEL ()
возьмем цель брутфорсом )
Это - не вариант.
Цитатаmishem ()
Полностью поставленную задачу озвуч, а так... Вокруг да около.
Вот именно!
И того плагина, про который я говорил хватит выше крыши. Все, что надо - понять конечную задачу, а дальше - просто организация.
Цитатаmishem ()
С базой можно работать без отображения ее в таблице. Кто мешает полученные записи поместить в листбокс и там их выделять как угодно?
+5! А пока я вижу только - то нужен список, то - нужно дерево...
Добавлено (30 Марта 2015, 18:15) ---------------------------------------------
ЦитатаRezzoxe ()
всё что задумал всё получилось с листбоксом кроме поиска:
Ну вот! А все, что надо - загнать (ПРАВИЛЬНО) список в базу, и выводи куда хочешь, ищи как хочешь, чего хочешь и сколько хочешь!
ЦитатаRezzoxe ()
Значит буду разбираться, стиснув зубы...
И нахрена, пардон?
Боюсь, что в данном случае, ситуацию спасет только полностью готовое от первой до последней строчки решение.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Мое мнение, для распаковки одиночных файлов, удобнее использовать дерево.
Омар, а ты не думал список папок вывести в дерево, а содержащиеся в них файлы уже в листбокс? Пожалуйста, не надо ко мне на "Вы", а то чувствую себя бабулькой)
Сообщение отредактировано Callisto - Пн, 30 Марта 2015, 18:34
Теперь необходимо в списке оставить элементы которые указываются в EditBox.
Т.е. поиск... Что имеем 1) SoC-AllFilesList.txt = 25684 строк 2) слово, например enemy_2.ogg Да тут любой поиск подвесит систему и не важно листбокс в НБ или дерево в плагине или регулярка. Только 2 варианта 1) бд 2) пересмотреть подход, т.е. реализовать не по поиску или выбору, а по неким шаблонам или группам или еще как
ЦитатаCallisto ()
Омар, а ты не думал список папок вывести в дерево, а содержащиеся в них файлы уже в листбокс?
Для конечного юзера будет не удобно, но это мое мнение
Ещё бы ты не понимала, ты наверно наизусть знаешь в какой папке какой конфиг
ЦитатаCallisto ()
Мое мнение, для распаковки одиночных файлов, удобнее использовать дерево.
Ну да, в отличие от листбокса всё сортировано, и поиск уже не нужен... Попробовал кстати дерево от hpw, но он не берет в переменную всю структуру, а только выбранный элемент и его родителя, а выше уже нет...
ЦитатаCallisto ()
Омар, а ты не думал список папок вывести в дерево, а содержащиеся в них файлы уже в листбокс?
Конвертер умеет распаковывать и по папкам, на это и расчёт если дерево использовать... к примеру кликнул по папке anims, она и распакуется со всем содержимым и сохранением структуры
еще один способ, сделать пошаговый выбор первое окно, одна группа, например звук, вторая видео, третья локации, четвертая оружие и в каждом выборе галка выбрать все, либо кнопка выбрать нужно. Понимаю, русские легких путей не ищут
Добавлено (30 Марта 2015, 18:55) ---------------------------------------------
ЦитатаRezzoxe ()
и поиск уже не нужен...
ну тогда уже легче
Добавлено (30 Марта 2015, 18:56) ---------------------------------------------
Rezzoxe, а что, в сталкер до сих пор гамают? я уж думал, что как мамонты...
Для конечного юзера будет не удобно, но это мое мнение
Спорный момент, мне бы было вполне удобно (хотя я вообще странная, мне и в восьмерке удобно работать ). Получится некий файловый менеджер с областю перехода.
Лично я для одиночной распаковки использую Total Commander с плагином. Пожалуйста, не надо ко мне на "Вы", а то чувствую себя бабулькой)
Который именно... который я приводил на той странице? FileUtils но Мишем заверил что он может выкинуть какой-нибудь сюрприз в самый неподходящий момент...
ЦитатаСергей ()
Rezzoxe, в хелпе смотрел, может где надо доп. переменную выставить, чтоб показать дерево с путями?
Все переменные от hpwtreeview вроде задействовал
ЦитатаСергей ()
первое окно, одна группа, например звук, вторая видео, третья локации, четвертая оружие и в каждом выборе галка выбрать все, либо кнопка выбрать нужно.
Ты издеваешься Я буду списки подготавливать не только по ТЧ\ЧН\ЗП, а ещё и по сборкам (44 сборки в среднем по 2 архива имеют)
ЦитатаСергей ()
Rezzoxe, а что, в сталкер до сих пор гамают? я уж думал, что как мамонты...
По части модмейкерства он наверно никогда не умрёт, до сих копают в основном сборки (билды) Просто бывает такое что надо только пару файлов распаковать... это займёт 2 секунды, а распаковка всей игры доходит до 10 минут (в зависимости от компа). Плюс к этому распаковывается не 10 кб (2 файла), а 6 гиг (30000 файлов) потом это удалять.
Вот я и решил упростить задачу модмейкерам. Ксения кстати одна из них, она понимает как это порой необходимо (распаковать только один файл) :)
Сообщение отредактировано Rezzoxe - Пн, 30 Марта 2015, 19:12
мало таких, а кто занимается мододеланием еще меньше и у них есть уже привычный для распаковки инструмент, может не такой удобный, как хочет Омар сделать, но зато привычный. А вообще, те кто занимается модостроением обычно хранят уже распакованные архивы, чтоб не заморачиваться с распаковкой (я хоть этим уже давно не балуюсь, но до сих пор все на компе )
Подобная программа пригодилась бы новичкам, но их сейчас очень мало, из-за угасающего интереса
Пожалуйста, не надо ко мне на "Вы", а то чувствую себя бабулькой)
дык, я то откуда знал. так немного понимаю, помню сам пытался моделировать для одной части, но забросил и просто переделывал под себя, моды других ))) Особенно попал под раздачу "тайные тропы"
Callisto, после того, как ты изучишь работу с базами, и поймешь насколько это гибкий, удобный и, во многом, универсальный инструмент, то желания улыбаться уже не будет!
ЦитатаRezzoxe ()
списки подготавливать не только по ТЧ\ЧН\ЗП, а ещё и по сборкам (44 сборки в среднем по 2 архива имеют)
И он ещё сомневается! Списки в блокноте... "Деревья" какие-то.... Брутфорсы...
Впрочем, я уже не раз говорил, что каждый сам себе режиссер. Если очень нравятся костыли, то нет проблем....
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
алгоритм с маской не попер, там маска не * а только ? вот другой, с частичным совпадением, алгоритм тупо загоняет все в память, перебирает в цикле все строки и ищет подстроку. За счет высокой скорости получается брутфорсим список ) Но, не стоит искать по коротким словам, см. коменты. Но это уже ограничение нб - тут самая дорогостоящая операция это наращивание строки для посылки результатов в необук (выделение, перемещение памяти и пр). В коде реального приложения в этом не было бы нужды, найденный элемент сразу пихался бы в список, что гораздо быстрее и работало бы даже с парой символов вполне быстро. Так что уж извини, быстрее не выйдет.
Добавлено (30 Марта 2015, 20:32) --------------------------------------------- DEMBEL, честно говоря этого достаточно... не понимаю про тормоза... ввёл ".ltx" сразу же найдены все файлы с таким расширением из того большого списка. Или ввёл как на скрине... тоже быстро нашёл.
Запросы в основном будут по полному слову... так что всё в порядке.
ну а в нормальном таком списке сразу с первой буквы искать начинает обычно... ну короче это уже надо свой компонент списка лепить с поиском, готовить и передавать инфу проект->плагин->проект это мееедленно. Как задавать вопросы