![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| SergeyMitrofanov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 30.1.2006 Репутация: нет Всего: нет |
Compiler: BC++ 3.1
На pure С написана программа, которая должна перебирать файлы из каталога в лексикографическом порядке, в алфавитном порядке. Использовались функции done = findfirst ("*.*", & info_file, 0); done = findnest(& info_file); Но почему-то, откомпилированный код иногда читает файлы не в алфавитном порядке. Файлы в директорию записывает пользователь под WindowsXP SP2. Просмотр файлов осуществляется в Far - где мы видим файлы в отсортированном порядке. Почему иногда программа читает файлы в алфавитном порядке, а иногда хаотично - берет первым файл из середины списка файлов? По какому правилу выбираются файлы функциями findfirst () и findnext ()? Разве не по правилу - что первый файл - это тот, который стоит самым первым в алфавитном списке файлов внутри директории? |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
||||
|
||||
| threef |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: 9 Всего: 10 |
Ну уж точно не в алфавитном порядке.
чтобы посмотреть, в каком порядке прочтет findnext запусти из командной строки dir. |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 8 Всего: 158 |
читают в том порядке, в котором файлы попадали в каталог.
по сути, каталог(директория,папка) = файл-список, где каждый файл представлен "строчкой". копируешь в каталог файлик - "строчка" с его именем и другими атрибутами дописывается в конец файла-списка(каталога). findfirst и findnext просто читают этот файл-список построчно. поэтому необходимо получаемый список сортировать, что и делают все файл-манагеры... |
|||
|
||||
| BreakPointMAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 15.9.2004 Где: Saratov Репутация: 14 Всего: 24 |
Если NTFS, то возвращаться будет в лексикографическом порядке.
-------------------- "Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце") |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 8 Всего: 158 |
хех.. не зналЬ
|
|||
|
||||
| threef |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: 9 Всего: 10 |
Это Борланд такой умный, что ль?
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
А причем здесь Борланд? За файловые системы и особенности размещений файлов в папке он не отвечает. |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Ну, скорее списка файлов в индексной таблице |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Ну, это и имелось в виду. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |