Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 20.01.2011, 09:37   #1
Smerch66
Пользователь
 
Регистрация: 22.03.2010
Сообщений: 33
Репутация: 10
Восклицание Ошибка "Файл не найден" при выборе большого числа файлов

Здравствуйте уважаемые знатоки! Прошу вашей помощи.
При выборе большого количества файлов, с помощью компонента opendialog, выводится ошибка, что какой-либо файл, из выбранных, не найден.
В районе 600 файлов открывает нормально, без ошибок.
Почему так происходит? Как мне преодолеть эту ошибку.
Тут дело в том, что у меня проигрыватель аудиофайлов, и нужно в плейлист загружать ну хотя бы пару тысяч песен.
Smerch66 вне форума   Ответить с цитированием
Старый 20.01.2011, 09:56   #2
ben95
Новичок
Джуниор
 
Аватар для ben95
 
Регистрация: 22.12.2007
Сообщений: 204
Репутация: -42
По умолчанию

Код в студию.
__________________
[IMG]http://keep4u.ru/imgs/b/080207/3f/3f6988e4d8520dd8a5.jpg[/IMG]
ben95 вне форума   Ответить с цитированием
Старый 20.01.2011, 10:30   #3
Smerch66
Пользователь
 
Регистрация: 22.03.2010
Сообщений: 33
Репутация: 10
По умолчанию

Цитата:
Сообщение от ben95 Посмотреть сообщение
Код в студию.
Какой код? Там одна строка для открытия opendialog.
Открывается opendialog, в нём я выделяю кучу файлов, нажимаю открыть, и не открывает он. ругается. а вот если поменьше выбрать, то всё норм.
Проанализировал, что если имена файлов короткие, то можно больше открыть, чем при длинных именах файлов.
Smerch66 вне форума   Ответить с цитированием
Старый 20.01.2011, 10:36   #4
Smitt&Wesson
Профессионал
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Адрес: г. Киров
Сообщений: 13,937
Репутация: 815

skype: forwardbiznes
По умолчанию

Скажите хотябы, что за ошибка? Что компилятор выдаёт?
У меня подозрение, что под буфер выделяется мало памяти, такое иногда случается.
Но не проанализировав сообщение компилятора, трудно сказать что-либо более внятное.
__________________
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума   Ответить с цитированием
Старый 20.01.2011, 10:42   #5
NoName_emaNoN
Форумчанин
 
Аватар для NoName_emaNoN
 
Регистрация: 15.11.2007
Адрес: в первом измерении
Сообщений: 229
Репутация: 39

icq: 7723215
По умолчанию

Может быть из-за того что в OpenDialog файлы передаются через TStrings, а его размер ограничен максимальным числом Integer или же параметр Text это тип string и он тоже ограничен каким-то максимальным размером?
Попробуйте посчитать размер OpenDialog1.Files.Text может он окажется 65535...

UPD: Да, скорей всего всё ограничивается размером типа string (если судить по тому что если открывать файлы с короткими именами, то "влезает" больше.
__________________
Компьютер не подчиняется законам физики: глюки возникают из ниоткуда, файлы исчезают в никуда, а вес измеряется в метрах.
NoName_emaNoN вне форума   Ответить с цитированием
Старый 20.01.2011, 11:35   #6
asmodey1
Форумчанин
 
Регистрация: 20.12.2010
Сообщений: 808
Репутация: 308
По умолчанию

Цитата:
Сообщение от Smerch66 Посмотреть сообщение
В районе 600 файлов открывает нормально, без ошибок.
А на кой нужно одновременно открывать столько файлов ???
Это что - новая разновидность мазохизма ?
Или просто желание напакостить в системе ?
asmodey1 вне форума   Ответить с цитированием
Старый 20.01.2011, 13:15   #7
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,929
Репутация: 2242
По умолчанию

Цитата:
нужно в плейлист загружать ну хотя бы пару тысяч песен.
заставлять пользователя выбирать столько файлов?!

SelectDirectory + FindFirst + while + FindNext = узнать все файлы в указанной папке.
как пользоваться
примеры в справке (F1 Delphi Example)
поиск по форуму
google поиск
использовать в любом порядке.

P.S. SelectDirectory есть ДВЕ функции с одинаковым прототипом (delphi7)
uses Qdialog
uses fileCtrl
__________________
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 20.01.2011 в 13:29.
evg_m вне форума   Ответить с цитированием
Старый 20.01.2011, 15:19   #8
veniside
Профессионал
 
Регистрация: 03.01.2011
Сообщений: 2,508
Репутация: 868
По умолчанию

Цитата:
Сообщение от Smerch66 Посмотреть сообщение
Почему так происходит?
Так захотел Борланд:

Код:
MultiSelectBufferSize = High(Word) - 16;

Цитата:
Сообщение от Smerch66 Посмотреть сообщение
Как мне преодолеть эту ошибку.
Вызвать GetOpenFileName() руками, и задать в nMaxFile буфер побольше.
__________________
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума   Ответить с цитированием
Старый 20.01.2011, 21:15   #9
Smerch66
Пользователь
 
Регистрация: 22.03.2010
Сообщений: 33
Репутация: 10
По умолчанию

Цитата:
Вызвать GetOpenFileName() руками, и задать в nMaxFile буфер побольше.
Я немного не понял как пользоваться этой функцией.. Не могли бы вы привести пример кода?
И как потом из этой функции извлечь: имена файлов полные, имена файлов обычные, и путь к директории где они лежат?
Буду очень признателен, если с комментариями напишите.

Последний раз редактировалось Stilet; 20.01.2011 в 21:25.
Smerch66 вне форума   Ответить с цитированием
Старый 20.01.2011, 22:13   #10
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Адрес: Internet
Сообщений: 371
Репутация: 44
По умолчанию

Попробуй драг & дроп юзать
__________________
Хакинг - не преступление, а способ выживания.
Ghost of Night вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка "не найден файл vc60.bpl" обьясните Нур C++ Builder 4 23.12.2009 00:12
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder AleksP C++ Builder 7 11.04.2009 13:06
настроить при открытии Excel 2003 в окошке "Тип файлов" вывод пункта "Все файлы (*.*)" по умолчанию? Unior Microsoft Office Excel 2 01.03.2009 03:42


17:12.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.