Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
26.02.2014, 17:37
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
Ну т.е. хочу менять картинку в PictureBox. Задал folder с "картинками" -понятно. Меняем по таймеру - понятно. Там какие-то файлы. Ну например про каждый файл (годится/не годится) по каким-то критериям я сделаю (быстрый анализ на предмет картинка/не картинка, и какой у нее размер). Т.е. как мне зная текущий "picture1.jpg", вычислить следующий "picture2.jpg" -чтоб бегал "по кругу"? Без составления ручных списков файлов или программного списка? И какие ф-ции использовать для этого? Scripting.File или как там его я не перевариваю. Дайте идею. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.02.2014, 17:57
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
Dir. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.02.2014, 19:43
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
AntonariyDir. Судя по документации и паре тестов, согласен. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
*.jpg - только jpg *.* -все файлы А как задать маску, чтоб находил *.jpg, *.bmp, *.gif а все остальное *.txt *.pdf и т.д. игнорировал? Вариант ...\*.jpg|*.bmp|*.gif не прокатил. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.02.2014, 20:38
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
Через запятую. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.02.2014, 20:48
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
AntonariyЧерез запятую. Код: vbnet 1.
Не понимаю, не получается ...\(*.jpg, *.bmp) не работает Напиши как переделать. Боюсь придется *.* и анализировать расширения ручками, если нет - переход к след. файлу. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.02.2014, 21:55
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
a$ = "bmp" a$ = "jpg" a$ = "gif" cur_file = Dir("C:\Documents and Settings\All Users\Application Data\MyProga\Image\*." & a$ , vbNormal) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 00:55
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
Volodbka, Что-то я не понимаю. Ну и найдет он gif только, а надо все *.jpg, все *.bmp и все *.gif Похоже одной маской никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 01:45
|
|||
---|---|---|---|
|
|||
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
Либо 2 вложенных цикла - по расширениям и по файлам, либо перебор всех файлов (*.*) и проверка расширения. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 03:40
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
Дмитрий77AntonariyЧерез запятую. Код: vbnet 1.
Не понимаю, не получается ...\(*.jpg, *.bmp) не работает Напиши как переделать. Боюсь придется *.* и анализировать расширения ручками, если нет - переход к след. файлу.ммм, это в консоли через запятую: dir *.jpg,*.bmp Попробуй установить текущей директорией C:\Documents and Settings\All Users\Application Data\MyProga\Image\ (не помню функцию) и сделать Dir("*.jpg,*.bmp") Если не сработает, то *.*, а расширения проверять кодом: Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 04:01
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
AntonariyПопробуй установить текущей директорией C:\Documents and Settings\All Users\Application Data\MyProga\Image\ (не помню функцию) и сделать Dir("*.jpg,*.bmp") Не, с ChDir и ChDrive лучше без необходимости не играться. Сделал "по-простому". Но голова разболелась. Там с логикой и так напряжно, пути, имена файлов, 2 цикла. И потом я все равно делаю более сложную проверку через GDI+. Плясать думаю от статически заданной картинки (т.е. задан не folder, а конкретный валидный файл, где он лежит, в той folder и роемся), ну как вариант запоминать cur_file в настройках, чтоб при перезапуске проги с нее и начиналось (а не с первой). Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 04:34
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
Че-то ты перемудрил. Говоря про dir, я имел ввиду следующее. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
И всё. Чудовище GetNextFile вообще не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 04:38
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
Дмитрий77 Плясать думаю от статически заданной картинкиНи одна галерея так не делает, только музыкальные плей-листы. А они хранят списки воспроизведения в файле. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 06:54
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
Antonariy, чет я не догоняю или ты забыл описание Dir (хотя я если честно только вчера прочел и осмыслил) http://kbyte.ru/ru/Programming/Guides.aspx?id=94&mode=show Код: vbnet 1.
Ни фига тут круга не получится, это всегда будет возвращать один и тот же ПЕРВЫЙ файл Чтобы получить СЛЕДУЮЩИЙ, надо вызвать Dir() без параметров. Перемудрил я только в том, что моя GetNextFile не рассчитывает на то, что Dir уже вызывался до этого (где гарантия, что я не вызову этот Dir в другом месте программы между тиками слайд-таймера?). AntonariyДмитрий77 Плясать думаю от статически заданной картинкиНи одна галерея так не делает, только музыкальные плей-листы. А они хранят списки воспроизведения в файле. Делает. Стандартная "Программа просмотра изображений и факсов" (оно же фотогалерея и т.п.). При нажатии просмотр слайдов тупо пляшет по folder где находится тек. картинка начиная с нее по кругу. Мне эта идея нравится, т.к. не надо делать лишних настроек. Задаем фоновую картинку, нажали на кнопку "менять картинку раз в N минут" и поехали. Пользовательские картинки для таких целей обычно в одной папке лежат. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 09:52
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
Дмитрий77 или ты забыл описание Dirтипа того я понадеялся, что пустая строка проканает как "без параметра" но невелика беда: Код: vbnet 1. 2. 3. 4. 5.
Дмитрий77 Мне эта идея нравитсяОк, прогони Dir до нужного файла перед запуском таймера. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 09:56
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
Дмитрий77где гарантия, что я не вызову этот Dir в другом месте программы между тиками слайд-таймера?У меня сложилось впечатление, что до сих пор ты не использовал ее вообще. Ну так и не используй нигде кроме галереи. Это и будет гарантией. А на будущее заведи глобальный флажок, который будет показывать, активна галерея или нет, и соответственно можно или нельзя использовать Dir. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.02.2014, 20:48
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
AntonariyУ меня сложилось впечатление, что до сих пор ты не использовал ее вообще. Использовал и дольно активно. 1) для проверки существования конкретного файла 2) в цикле для поиска файла по маске, обработке его и удаления - по циклу переход к следующему файлу Но! Я не знал что Dir() без параметра, вызванный за Dir(маска) с параметром возвращает СЛЕДУЮЩИЙ файл, когда ты мне написал Dir(), я не поленился почитать документацию. Честно говоря уже думал в направлении FindFirstFile function FindNextFile function Что касается, запоминать/незапоминать, использовался ли Dir "между" - мне проще пробежаться по всем файлам каждый раз (с "гарантией"), это не накладно для ресурсов. Особенно если сравнивать с вычислением "среднего цвета картинки" по пикселям, кот. я делаю каждый раз при смене картинки. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.02.2014, 11:24
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
Дмитрий77 Использовал и дольно активно. 1) для проверки существования конкретного файла 2) в цикле для поиска файла по маске , обработке его и удаления - по циклу переход к следующему файлу Но! Я не знал что Dir() без параметра, вызванный за Dir(маска) с параметром возвращает СЛЕДУЮЩИЙ файл , когда ты мне написал Dir(), я не поленился почитать документацию. Мне страшно представить, как выглядит этот код. Дмитрий77 Честно говоря уже думал в направленииDir это обертка над этими функциями. Пользоваться ими имеет смысл только если ты используешь файловые дескрипторы или для скорости. Дмитрий77 мне прощеВ смысле тебе проще написать нечто мозговыносящее типа GetNextFile? Ок, я всеми руками за простоту, только у меня на нее другой взгляд. Мне вот лень писать, и я делаю все, чтобы писать меньше. Например, пишу программы, пишущие программы за меня. Я пишу маленькую программу, а она большую. Профит. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.02.2014, 15:23
|
|||
---|---|---|---|
А как сделать слайд-шоу? Перебор файлов в папке. |
|||
#18+
AntonariyВ смысле тебе проще написать нечто мозговыносящее типа GetNextFile? Не в смысле я уже вынес мозг, написав этот GetNextFile и мне проще прекратить вынос мозга. AntonariyМне страшно представить, как выглядит этот код.? не, этот не страшный 1) для проверки существования конкретного файла Код: vbnet 1.
2) в цикле для поиска файла по маске, обработке его и удаления - по циклу переход к следующему файлу Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=60&mobile=1&tid=2156484]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 264ms |
total: | 389ms |
0 / 0 |