Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Офф-топ

Страница: 1 | 2 |

 

  Вопрос: CommonDialog: Выбор нескольких файлов для открытия Добавлено: 12.05.07 18:47  

Автор вопроса:  Боцман | Web-сайт: Rus-Skipper.narod.ru | ICQ: 295725312 
Заголовок это пункт из библиотеки кодов.
Далее написано следующие: Ответ кроется в устанавливаемом флажке cdlOFNAllowMultiselect.
Вы получите строку, содержащую полный путь к отрываемой папке.
 Вам останется только разделить полученную строку на отдельные элементы. Я могу это сделать, а Вы?И на этом все и заканчивается. Вот мне сегодня как раз это Multiselect и понадобилось для Comdlg32.dll. Четыре часа ломал себе голову, но сделал. Выбранных 750 файлов записыват сразу в два LictBox_са примерно за пол секунды в одном имя файла в другом путь к его директории.Больше картинок просто нет. Ну и что теперь по анологии с библиотекой то же написать Я могу это сделать, а Вы?Как вы относитись к пословице собака на сене?

Ответить

  Ответы Всего ответов: 24  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 12.05.07 19:04
Если этот поток сознания имеет целью спросить "Почему автор примера из библиотеки не разжевал мне всё ещё подробнее?", то ответ на этот вопрос сложен, многозначен и относится скорее к философии, чем к программированию.
Если этот поток сознания имеет целью что-то другое, тогда я, конечно, затрудняюсь ответить.

Ответить

Номер ответа: 2
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #2
Добавлено: 12.05.07 19:24
'Здесь распологается Ваш код (не забудьте, что путь к выбранному файлу Вы считываете из свойства FileName)

Это ты считешь не разжевал мне всё ещё подробнее?"

Ответить

Номер ответа: 3
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #3 Добавлено: 12.05.07 20:00
Да.
А почему нет?

Ответить

Номер ответа: 4
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #4
Добавлено: 12.05.07 20:42
Потому что приходя в (БИБЛИОТЕКУ) и взяв энциклопедию, я не ожидаю в ней такого ответа, типа родился тогда то, зовут так то, а остальное сам допишешь.
Ибо приведенный код ничего не значит для открытия в функциональном варианте, а только говорит это возможно.
И получишь ты строку типа C:\1.bmp2.bmp3.bmp4.bmp
и на ее извлечение с записью в List кода у меня ушло 20 строк. Но когда напишешь вроде не сложно, а в инете вообще тема эта на VB мала и туманна. Все потуги модулей работают или один раз, максимум два и глючат. А эту строчку OpenFile.flags = OFN_EXPLORER Or OFN_ALLOWMULTISELECT я как бы и сам знал кто ее не знает, раз ищет?. Представляю примерчик где вместо основного продолжения кода идет ну сам допишешь... А сам я ЗНАЮ как!Вот в чем дело.
ведь БИБЛИОТЕКА!

Ответить

Номер ответа: 5
Автор ответа:
 GSerg



Вопросов: 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-сайт: Rus-Skipper.narod.ru
 Профиль | | #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-сайт: Rus-Skipper.narod.ru
 Профиль | | #7
Добавлено: 12.05.07 22:20
Дело в другом, библиотека не место до догадок, переданные знания должны быть законченными. Если нужно что бы человек напряг мозги, существуют викторины, а здесь как видищь подход к решению может быть и совсем другим отличным от твоего.
Сколько людей, столько и вариантов.
Что было не понял?

Ответить

Номер ответа: 8
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #8
Добавлено: 12.05.07 22:22
 К стати, мой код работает в разы быстрее, хоть и длинее.

Ответить

Номер ответа: 9
Автор ответа:
 GSerg



Вопросов: 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-сайт: Rus-Skipper.narod.ru
 Профиль | | #10
Добавлено: 12.05.07 23:47
Что было не понял - это не отражение кирилицы выше.
Действительно, решение может быть кривым и некривым.

http://www.vbnet.ru/forum/show.aspx?id=113991 или смотри год назад на форуме есть еще, не кого не хочу обидеть просто что в поиске сразу есть, то и воткнул.
Насчет последнего у меня все теже 750 файлов и разница в записи, не говоря о дальнейшей функциональности эной заметна имено в разы, проверял прежде чем писать.
Это в высшей степени забавно.
Человек посягает на программирование

Ты наверно декларации API сам пишешь, нафиг библиотеки напрягЁм мозг.

Ответить

Номер ответа: 11
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #11
Добавлено: 13.05.07 01:23
Можно конечно и одной строчкой, а дальше?
Text1.Text = Replace(OpenFile.lpstrFile, Chr(0), vbCrLf)
А дальше спать пора.

Ответить

Номер ответа: 12
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #12
Добавлено: 13.05.07 12:22
В чем напряжение мозгов в ручном описании API?

Ответить

Номер ответа: 13
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #13 Добавлено: 13.05.07 18:26
Угу, и ещё в религии, наверное, которая не позволяет использовать поисковики, искать примеры итп...

Ответить

Номер ответа: 14
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #14
Добавлено: 14.05.07 00:21
Воскресные загородные гуляния кончились, приехал и читаю форум, и думаю или я не понимаю или меня? Ведь вопрос был о БИБЛИОТЕКЕ, как об источнике знаний, а не приколов, ведь в других примерах такого не однозначного ответа нет. Частенько наблюдаю такую картину, задают вопрос, а в ответ очень точная фраза и ожидание реакции на нее, это нормально ведь некогда не знаешь квалификации задающего вопрос.
Но библиотека, кодов это все-таки вариант решения задачи, а не встречный вопрос. И вот при простом вопросе о корректности ответа из (БИБЛИОТЕКИ)мы чуть ли не кодами стали обменивается. Я извиняюсь за части приведенного кода, это не код, а рассуждение как можно решить, просто оно понятно, но не является правильным кодом, хотя и работает за счет обрезки строки очень быстро, но при соблюдением юзером некоторых правил, а это не правильно.
Эти ответы не относятся к теме о БИБЛИОТЕКЕ, но я отвечу.
Sharp я так думаю, что 99.999% юзают API-Guide при этом доверяют, описанию, константам и копируют их, а не пишут сами. Проблема не в ручном написании, а в их запоминании. Ибо это не кому не нужно, главное (въехать) и запомнить хотя бы название, чтоб потом легче найти.
HACKER поиском я пользовался, на Delfi и С++ к стати примеров много, я даже кое что понял в их языке, закончил поиск на пункте по моему в феврале прошлого года, когда ты делился модулем по этой теме, то что он глючит при множественном открытии, меня и подвинуло писать самому и отказаться от дальнейших поисков (Ты Своим Авторитетом остановил). Правда, ты предупреждал, что где то его скамуниздил, и писал работает и фиг с ним. Но ведь тема не об этом а, о том, что есть библиотека? К стати библиотека этого сайта мне очень помогла и я считаю ее полезной на 100%, хотя и не полной.

Ответить

Номер ответа: 15
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #15 Добавлено: 14.05.07 12:55
Нет, ну я про то, что кроме нашей библиотеки есть ещё сотни других, по которым бегает гугл, яндекс и др.. Вопрос этот достаточно популярый, на форуме тоже много раз рассматривался. Т.е. в принципе информации много. А вот в библиотеке, да, ответа грубо говоря нету, есть намёк... с этим я согласен..

Теперь по существу..
Нету чего-то в библиотеке - потому что ею никто не заинмается, нет времени, желания итп..
Твои предложения?

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам