![]() |
|
Модераторы: bsa |
![]()
|
|
| Acer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
Доброго времени суток.
OS: Windows XP Compiler: gcc Проблема вот в чем: при чтении подряд двух директорий с путями типа [D:\dir1\subdir1] [D:\dir2\subdir2] все работает нормально. а вот когда путь типа D:\dir\subdir1 D:\dir\subdir2, то мой метод не работает. То есть на некоторое время зависает программа и потом завершает работу. вот мой код чтения директорий:
В метод передается путь к директории ( dn ) и ссылка на std::vector, в который записываются данные о том, что находится в директории( dn ) |
|||
|
||||
| andrew_121 |
|
||||||||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Acer, Что-то ты намудрил тут.
Папример:
А почему не:
И еще:
Для чего? Контейнер сам выделяем память. А это:
Для этого существует рекурсия. Вот: Присоединённый файл ( Кол-во скачиваний: 15 )
scandir.gz 1,36 Kb-------------------- Удалил аккаунт. Прощайте! |
||||||||
|
|||||||||
| Acer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
Если можно, ответьте на мой вопрос.
|
|||
|
||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
А ты задавал вопросы?
И вообще, какие значения параметров ты передаешь на вход? Это сообщение отредактировал(а) bsa - 25.8.2008, 22:24 |
||||
|
|||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Acer, А это не ответ?
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Acer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
указатель на чар - путь к директории. ссылку на вектор. с нулевым количеством элементов Это сообщение отредактировал(а) Acer - 25.8.2008, 23:15 |
|||
|
||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
просто ты привел пример в начала, что передав одни значения все работает, а с другими нет. Просто то, что ты показал, пары директорий. |
||||
|
|||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
bsa, Я ваще не въезжаю...чё ему нужно
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Acer |
|
||||||||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
Зачем писать, если ты не понимаешь о чем речь? Добавлено @ 19:18
Ну так и есть. Пары директорий. Смотри: программа должна прочитать 2 директории. Всего 2. Будем читать их двумя способами. 1-й способ: Читаем директории вот эти:
Программа читает содержимое директорий тем кодом, который я написал в первом посте. Вот так идет вызов метода, читающего диретории:
потом делаем вывод списка в консоль. Вот, что мы увидели после окончания работы программы.
2-й способ. Читаем вот эти директории
(различие в путях видно видно?) Не важно, что там Temp. Важно то, что first_dir и second_dir - находятся в одной директории. Вызываем метод чтения так же. Одна, потом вторая. Так вот во втором случае, код читает только D:\Temp\first_dir. Потом просто зависает. То же самое случается, если читать директории типа:
Это сообщение отредактировал(а) Acer - 26.8.2008, 19:23 |
||||||||||||||||||
|
|||||||||||||||||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Дебагер в каком месте показывает зависание?
|
|||
|
||||
| Acer |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
2 bsa
Вобщем, сначала сделал как ты писал. Твой код вообще не работает... Изначально зависание было на выходе из метода... Потом в свой код запихнул просто
вроде бы перестало зависать. То есть проблема была с буфером вывода... где-то что-то оставалось там лишнее. Хотя все указатели удалял... хз. После добавление "пустого" printf появилось зависание в другом месте: после чтения директорий, при выводе данных в консоль. Я выводил циклом.
так вот первый цикл проходил нормально, а в конце второго зависало все. к примеру, во втором 10 элементов. после вывода 10-го элемента прога висла. В данный момент переписал код вот так:
без std::vector::resize( size_type ) не работало... Может не грамотно, но работает. |
||||||
|
|||||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
И не буду! Не мне помощь нужна -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Acer, я не утверждал, что мой код работает. Так как я его не проверял. Я просто показал, как примерно это должно выглядеть.
я бы написал через push_back вместо resize... strncpy не работает?
|
|||
|
||||
| Acer |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 5.9.2007 Где: UA::DN Репутация: нет Всего: 8 |
strncpy не работает... по поводу string понял. Вопрос решен. Это сообщение отредактировал(а) Acer - 27.8.2008, 14:30 |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |