Вопрос: CommonDialog: Выбор нескольких файлов для открытия | Добавлено: 12.05.07 18:47 |
Автор вопроса: ![]() |
Заголовок это пункт из библиотеки кодов.
Далее написано следующие: Ответ кроется в устанавливаемом флажке cdlOFNAllowMultiselect. Вы получите строку, содержащую полный путь к отрываемой папке. Вам останется только разделить полученную строку на отдельные элементы. Я могу это сделать, а Вы?И на этом все и заканчивается. Вот мне сегодня как раз это Multiselect и понадобилось для Comdlg32.dll. Четыре часа ломал себе голову, но сделал. Выбранных 750 файлов записыват сразу в два LictBox_са примерно за пол секунды в одном имя файла в другом путь к его директории.Больше картинок просто нет. Ну и что теперь по анологии с библиотекой то же написать Я могу это сделать, а Вы?Как вы относитись к пословице собака на сене? |
Ответы | Всего ответов: 24 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #1 | Добавлено: 12.05.07 19:04 |
Если этот поток сознания имеет целью спросить "Почему автор примера из библиотеки не разжевал мне всё ещё подробнее?", то ответ на этот вопрос сложен, многозначен и относится скорее к философии, чем к программированию.
Если этот поток сознания имеет целью что-то другое, тогда я, конечно, затрудняюсь ответить. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 12.05.07 19:24 |
'Здесь распологается Ваш код (не забудьте, что путь к выбранному файлу Вы считываете из свойства FileName)
Это ты считешь не разжевал мне всё ещё подробнее?" |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #3 | Добавлено: 12.05.07 20:00 |
Да.
А почему нет? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 12.05.07 20:42 |
Потому что приходя в (БИБЛИОТЕКУ) и взяв энциклопедию, я не ожидаю в ней такого ответа, типа родился тогда то, зовут так то, а остальное сам допишешь.
Ибо приведенный код ничего не значит для открытия в функциональном варианте, а только говорит это возможно. И получишь ты строку типа C:\1.bmp2.bmp3.bmp4.bmp и на ее извлечение с записью в List кода у меня ушло 20 строк. Но когда напишешь вроде не сложно, а в инете вообще тема эта на VB мала и туманна. Все потуги модулей работают или один раз, максимум два и глючат. А эту строчку OpenFile.flags = OFN_EXPLORER Or OFN_ALLOWMULTISELECT я как бы и сам знал кто ее не знает, раз ищет?. Представляю примерчик где вместо основного продолжения кода идет ну сам допишешь... А сам я ЗНАЮ как!Вот в чем дело. ведь БИБЛИОТЕКА! |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #5 | Добавлено: 12.05.07 21:14 |
И получишь ты строку типа C:\1.bmp2.bmp3.bmp4.bmp
и на ее извлечение с записью в List кода у меня ушло 20 строк. Если не заботиться о скорости, а только о компакности, то for each f in split(FileName,vbNullChar)
list1.add f next Если заботиться о скорости, и учесть, что первый элемент - это путь, то dim f() as string, i as long
f=split(FileName,vbNullChar) for i=lbound(f)+1 to ubound(f) list1.add f(lbound(f)) & f(i) next 20 строк, говоришь? Ну-ну... а в инете вообще тема эта на VB мала и туманна
MSDN читать надо. И не за "примерами на VB", а именно за описанием того, как всё работает. Чтобы, поняв это, легко сделать всё самому. где вместо основного продолжения
Единственный вызов Split - это для тебя основное продложение? Тогда вопросов не имею... |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 12.05.07 22:19 |
Split ¬Я¬Ц¬д ¬У¬а¬б¬в¬а¬г¬а¬У.
¬®¬а¬Ы ¬Ь¬а¬Х ¬в¬С¬Т¬а¬д¬С¬Ц¬д ¬У ¬в¬С¬Щ¬н ¬Т¬н¬г¬д¬в¬Ц¬Ц, ¬з¬а¬д¬о ¬Ъ ¬Х¬Э¬Ъ¬Я¬Ц¬Ц. Dim StrokaCommDlg
StrokaCommDlg = Replace(OpenFile.lpstrFile, Chr(0), vbCrLf) Dim putKdir As String putKdir = Left(StrokaCommDlg, OpenFile.nFileOffset - 1) Dim shetThk shetThk = Split(StrokaCommDlg, "." ![]() shetThk = UBound(shetThk) ' Me.Caption = "-" & shetThk Dim faili As String faili = Mid(StrokaCommDlg, OpenFile.nFileOffset + 2, Len(StrokaCommDlg)) Dim lSearchPos As Long Dim rubez As Long lSearchPos = InStr(1, faili, "." ![]() Do While (lSearchPos <> 0) rubez = lSearchPos + 3 ' lSearchPos = InStr(lSearchPos + 1, faili, "." ![]() Loop faili = Left(faili, rubez) Dim ©ц As Long For ©ц = 1 To shetThk ' Dim file As String Dim rez As String rez = InStr(1, faili, "." ![]() file = Left(faili, rez + 3) Me.List1.AddItem Left(faili, rez + 3) Me.List2.AddItem putKdir & "\" ' faili = Mid(faili, Len(file) + 3, Len(faili)) Next ¬Ґ¬Ц¬Э¬а ¬У ¬Х¬в¬е¬Ф¬а¬Ю, ¬Т¬Ъ¬Т¬Э¬Ъ¬а¬д¬Ц¬Ь¬С ¬Я¬Ц ¬Ю¬Ц¬г¬д¬а ¬Х¬а ¬Х¬а¬Ф¬С¬Х¬а¬Ь, ¬б¬Ц¬в¬Ц¬Х¬С¬Я¬Я¬н¬Ц ¬Щ¬Я¬С¬Я¬Ъ¬с ¬Х¬а¬Э¬Ш¬Я¬н ¬Т¬н¬д¬о ¬Щ¬С¬Ь¬а¬Я¬й¬Ц¬Я¬Я¬н¬Ю¬Ъ. ¬¦¬г¬Э¬Ъ ¬Я¬е¬Ш¬Я¬а ¬й¬д¬а ¬Т¬н ¬й¬Ц¬Э¬а¬У¬Ц¬Ь ¬Я¬С¬б¬в¬с¬Ф ¬Ю¬а¬Щ¬Ф¬Ъ, ¬г¬е¬л¬Ц¬г¬д¬У¬е¬р¬д ¬У¬Ъ¬Ь¬д¬а¬в¬Ъ¬Я¬н, ¬С ¬Щ¬Х¬Ц¬г¬о ¬Ь¬С¬Ь ¬У¬Ъ¬Х¬Ъ¬л¬о ¬б¬а¬Х¬з¬а¬Х ¬Ь ¬в¬Ц¬к¬Ц¬Я¬Ъ¬р ¬Ю¬а¬Ш¬Ц¬д ¬Т¬н¬д¬о ¬Ъ ¬г¬а¬У¬г¬Ц¬Ю ¬Х¬в¬е¬Ф¬Ъ¬Ю ¬а¬д¬Э¬Ъ¬й¬Я¬н¬Ю ¬а¬д ¬д¬У¬а¬Ц¬Ф¬а. ¬і¬Ь¬а¬Э¬о¬Ь¬а ¬Э¬р¬Х¬Ц¬Ы, ¬г¬д¬а¬Э¬о¬Ь¬а ¬Ъ ¬У¬С¬в¬Ъ¬С¬Я¬д¬а¬У. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 12.05.07 22:20 |
Дело в другом, библиотека не место до догадок, переданные знания должны быть законченными. Если нужно что бы человек напряг мозги, существуют викторины, а здесь как видищь подход к решению может быть и совсем другим отличным от твоего.
Сколько людей, столько и вариантов. Что было не понял? |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 12.05.07 22:22 |
К стати, мой код работает в разы быстрее, хоть и длинее. |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #9 | Добавлено: 12.05.07 23:07 |
Если нужно что бы человек напряг мозги, существуют викторины
Это в высшей степени забавно. Человек посягает на программирование, отстаивая при этом своё право не напрягать мозги. - Молодой человек, помогите мне вставить дискетy в компьютеp. - Вы же сказали, что yмеете pаботать с компьютеpом... - Умею. Я же Вас не пpошy текст за меня печатать. А дискетy вставлять я yметь не должен: я пользователь. (c) Денис Яцутко, http://pascal.sources.ru/humor/bidiot_log.htm а здесь как видищь подход к решению может быть и совсем другим отличным от твоего.
Действительно, решение может быть кривым и некривым. Что было не понял?
Не только не понял, что было, но даже не понял, к чему относится этот вопрос. К стати, мой код работает в разы быстрее, хоть и длинее.
Врёшь. |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 12.05.07 23:47 |
Что было не понял - это не отражение кирилицы выше. Действительно, решение может быть кривым и некривым.
http://www.vbnet.ru/forum/show.aspx?id=113991 или смотри год назад на форуме есть еще, не кого не хочу обидеть просто что в поиске сразу есть, то и воткнул. Насчет последнего у меня все теже 750 файлов и разница в записи, не говоря о дальнейшей функциональности эной заметна имено в разы, проверял прежде чем писать. Это в высшей степени забавно.
Человек посягает на программирование Ты наверно декларации API сам пишешь, нафиг библиотеки напрягЁм мозг. |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 13.05.07 01:23 |
Можно конечно и одной строчкой, а дальше?
Text1.Text = Replace(OpenFile.lpstrFile, Chr(0), vbCrLf) А дальше спать пора.
|
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #12 | Добавлено: 13.05.07 12:22 |
В чем напряжение мозгов в ручном описании API? |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #13 | Добавлено: 13.05.07 18:26 |
Угу, и ещё в религии, наверное, которая не позволяет использовать поисковики, искать примеры итп... |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 295725312 Вопросов: 53 Ответов: 830 |
Web-сайт: Профиль | Цитата | #14 | Добавлено: 14.05.07 00:21 |
Воскресные загородные гуляния кончились, приехал и читаю форум, и думаю или я не понимаю или меня? Ведь вопрос был о БИБЛИОТЕКЕ, как об источнике знаний, а не приколов, ведь в других примерах такого не однозначного ответа нет. Частенько наблюдаю такую картину, задают вопрос, а в ответ очень точная фраза и ожидание реакции на нее, это нормально ведь некогда не знаешь квалификации задающего вопрос.
Но библиотека, кодов это все-таки вариант решения задачи, а не встречный вопрос. И вот при простом вопросе о корректности ответа из (БИБЛИОТЕКИ)мы чуть ли не кодами стали обменивается. Я извиняюсь за части приведенного кода, это не код, а рассуждение как можно решить, просто оно понятно, но не является правильным кодом, хотя и работает за счет обрезки строки очень быстро, но при соблюдением юзером некоторых правил, а это не правильно. Эти ответы не относятся к теме о БИБЛИОТЕКЕ, но я отвечу. Sharp я так думаю, что 99.999% юзают API-Guide при этом доверяют, описанию, константам и копируют их, а не пишут сами. Проблема не в ручном написании, а в их запоминании. Ибо это не кому не нужно, главное (въехать) и запомнить хотя бы название, чтоб потом легче найти. HACKER поиском я пользовался, на Delfi и С++ к стати примеров много, я даже кое что понял в их языке, закончил поиск на пункте по моему в феврале прошлого года, когда ты делился модулем по этой теме, то что он глючит при множественном открытии, меня и подвинуло писать самому и отказаться от дальнейших поисков (Ты Своим Авторитетом остановил). Правда, ты предупреждал, что где то его скамуниздил, и писал работает и фиг с ним. Но ведь тема не об этом а, о том, что есть библиотека? К стати библиотека этого сайта мне очень помогла и я считаю ее полезной на 100%, хотя и не полной. |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #15 | Добавлено: 14.05.07 12:55 |
Нет, ну я про то, что кроме нашей библиотеки есть ещё сотни других, по которым бегает гугл, яндекс и др.. Вопрос этот достаточно популярый, на форуме тоже много раз рассматривался. Т.е. в принципе информации много. А вот в библиотеке, да, ответа грубо говоря нету, есть намёк... с этим я согласен..
Теперь по существу.. Нету чего-то в библиотеке - потому что ею никто не заинмается, нет времени, желания итп.. Твои предложения? |
|