Страница: 1 |
Страница: 1 |
Вопрос: Посоветуйте (Текстовая структура файлов)
Добавлено: 18.02.05 17:05
Автор вопроса: HACKER
Создаю я программно файл, который является образом какой-то папки, содержимое такого файла примерно слейдущее:
[C:\Floder]
file1.exe
file2.txt
итп...
[C:\Floder\Floder2]
file1.exe
file2.txt
итп...
[C:\Floder3]
file1.exe
file2.txt
итп...
Короче
[папка]
файлы...
И надо потом этот образ папки красиво нарисовать. Типа дерево папок, нажимаю на какую нибуть, открывается список файлов в этой папке, ну вооб максимально приблежонно к проводнику. Канешна моно делать как обычно, взять дерево, читать этот файл, создать дерево, массивы файлов итп... Потом рисовать файлы, иконки в соответствии типов файлов, итп итд... Ну на словах то легко, а так неполучается, точнее получается но так громоздко и не ровно что всё глючит, пути путаются... Может посоветуйте что-то по этому поводу, может контрол есть такой что структуру нарисовать может... Вообщем нужны идеи? Цель - надо нарисовать как делает это проводник.
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #1
Добавлено: 18.02.05 18:23
XML не пойдёт? в смысле - хранить дерево в формате XML, а отображать прямо в броузере (ну или в элементе управления WebBrowser). И никаких преобразований: в чём храним - в том и отображаем!
Номер ответа: 2
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #2
Добавлено: 18.02.05 19:42
Всё это очень классно, Comanche. Думаю, это один из лучших путей, чтобы сделать то, что требуется. Грамотно пользоваться XML я, к сожалению, не умею. Поможешь мне документацией / туториалами / исходниками? mc-black[гав]yandex.ru Пасиб!
Можно и таким путем пойти: данные описывать точно в таком порядке, как в TreeView при добавлении узла (использовать имена папок, а не полные пути). В качестве знаков-разделителей использовать Chr(0), Chr(1). В этом случае образ диска без компрессии будет чуть меньше по размеру.
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 18.02.05 22:53
ну это я и делал, плохо получается...
Насчёт XML можно небольшой примерчик, допустим есть 2 папки и нескотлко файлов в них, сделай это на XML plz
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 18.02.05 22:58
Кстати, mc-black это я именно для той проги что я тебе переслал, хотя думаю ты уже догадался...
Номер ответа: 5
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #5
Добавлено: 19.02.05 10:12
Догадался конечно, я тебе пример прислал как писать файл в формате типа TreeView.
Commanche, мне тоже эта тема интересна.
P.S. Когда думал про формат файла для сохранения деревьев в своё время писал структуру с комментариях или тэгах а-ля html. Тоже как вариант. XML вроде как естественней на это напрашивается. Есть небольшой пример загрузки TreeView средствами xml, но, думается, у Commmanche что-то проще и оригинальней.
Номер ответа: 6
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #6
Добавлено: 19.02.05 12:53
У меня есть только общая идея - выбрать для хранения такой формат, для отображения которого не надо будет делать дополнительных наворотов. Поскольку хранить нужно дерево папок, то я и задумался - а какой есть "древовидный" стандартный формат, который легко визуализируется? Кроме XML ничего в голову не приходит. Да наверное ничего больше и нету подобного.
Значит, остаётся задача "перегнать" результат рекурсивного поиска файлов в XML. Думаю, что в Сети несложно найти примеры работы с XML - к тому же, в данной задаче потребуется самый минимум из функционала библиотеки MSXML.
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 19.02.05 16:50
Ок, решено, используем XML, но я незнаю умеет ли XML красиво нарисовать... Я умею в XML тегами сделать дерево, но к сожеленю это всё что я умею. Мне надо перегнать структуру в XML тэги, это элементарно, но мне также надо потом красиво нарисовать, иконка файла, иконка папки... Ну вы понимайте про что я ?
Номер ответа: 8
Автор ответа:
Comanche
Вопросов: 87
Ответов: 459
Профиль | | #8
Добавлено: 19.02.05 17:53
Ну... если тебе надо с иконками - то беру все свои слова взад ) в XML отобразить иконки можно, но - насколько я знаю - не через указание пути к файлу иконки (типа HTML-ного тэга IMG), а "через одно место": перекодировать файл иконки в некий двоичный формат и запихать получившиеся кракозябры в текст XML-файла (конечно, в "специально отведённое" для таких случаев место файла). В общем, получится что-то типа Base64-закодированных строк, которые можно наблюдать, если открыть почтовое сообщение с аттачментами (в виде EML-файла) в каком-нибудь Блокноте. Короче, геморрой ещё тот Хотя... эта информация - где-то 3-годичной давности; м.б. за это время вышла новая спецификация XML, в которой можно работать с графикой полегче?!
А где именно (и для каких целей) тебе нужно "рисовательство" дерева папок? обычный SHBrowseForFolder никак не подходит? чувствую, что если ты не конкретизируешь свою задачу, то мы зайдём в тупик...
Номер ответа: 9
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #9
Добавлено: 19.02.05 22:43
ну для программы одной, программа для создания образов папок. Образ то можно сказать создал, а вот отобразить его красиво... Можно конешно штурмировать проблему в лоб, что я и делал, читал файл создавал списко файлов в текущей папки, вырисовывал, но это всё так гиморойно когда нужно учитывать навигацию по папкам, иконки у каждого типа файлов итп... Что я подумал может кто-то уже до меня подобное делал, вообщем если есть что показать кидайте сюды rusya@mail.ru