Как это не работает

Давайте разбираться!

Создаём пустую папку. Внутри создаём новые пустые текстовые файлы:
0.TXT
A.TXT
1.TXT

Ничего в них не заносим. Все они нулевого размера. Но это не важно.

Теперь сортируем их по именам в списке. И видим:

0.TXT
1.TXT
A.TXT

Понятно, что имена сортируются по принципу: сначала цифры, потом буквы.

Замечательно.

Теперь пририсовываем впереди имён нолики:

00.TXT
01.TXT
0A.TXT

Сортируем по именам снова. (F5 – достаточно нажать.)

И что получаем? Вот что:

00.TXT
0A.TXT
01.TXT

Как же так? А вот так!

А если вместо нолика впереди напишем букву «A»?

A0.TXT
AA.TXT
A1.TXT

Жмём F5. Получаем:

A0.TXT
A1.TXT
AA.TXT

Здесь снова цифры впереди, буквы в последнюю очередь.

А если вместо первой буквы нарисуем цифру «1»:

10.TXT
11.TXT
1A.TXT

То после F5 получим:

1A.TXT
10.TXT
11.TXT

Вот тебе и раз! Неужели?

Оказывается, что в современных Виндоусах у «Проводника» своеобразное представление о методе сортировки имён файлов. Оказывается, что цифры в имени, идущие подряд, воспринимаются, как числа. А буквы своим порядком. Поэтому «1A» меньше чем «10» или «11»!!!

А «0A» меньше чем «01», но больше чем «00»!!!

Но и это ещё не всё. Если вы начнёте сортировать такие имена:

0.TXT
00.TXT
000.TXT

То после нажатия F5 получите:

000.TXT
00.TXT
0.TXT

Получается, что «000» меньше, чем «00» и «0» ? Фантастика!

Я не поверил своим глазам, когда натолкнулся на этот эффект. Мне нужно было поставить по порядку файлы изображений отсканированных страничек одной книжки, но странички уже имеют номера. Поэтому, – решил я, – буду писать в имени файла тот номер, который нарисован в углу файла-изображения. Но что делать с титульными страницами и обложкой? Они номеров не имеют, а продолжать нумерацию выше 000-001.TXT некуда!

А пусть титульные листы и обложка будут с буквами. Вот так:

0000A.TXT
0000B.TXT
0000C.TXT
000-001.TXT
002-003.TXT

Если бы сортировка имён работала традиционно, то так бы и вышло. Но! Получалось лишь так:

000-001.TXT
0000A.TXT
0000B.TXT
0000C.TXT
002-003.TXT

Первый лист упрямо лез вверх. Почему? Потому что «-» минус и не буква, и не цифра и лежит в списке сортировки выше всех них. Но при этом любая комбинация из «0000» + «буква» оказывается меньше, чем «002-003». Виндоус упрямо считает «002-003» = «2-3», до тех пор, пока вы не подсунете, например, «0002-0003». В этом последнем случае имя «0002-0003» оказывается меньше, чем «002-003» и лезет вверх!

«И кто же это придумал такую хитрую штуку?»

– Я! Я-я! Я-я-я! – закричала лягушка по имени Майкрософт и полетела вниз…

3:00:36 13.10.2010


http://support.microsoft.com/kb/318872/

Файлы и папки, имена которых включают 10 или более последовательных цифр, неправильно сортируются в проводнике Windows. Допустим, что имеются папки со следующими именами:

1111111111
2222222222
3333333333
4444444444
5555555555

В проводнике Windows эти имена папок сортируются как:

2222222222
3333333333
4444444444
1111111111
5555555555

Примечание. По умолчанию система Windows XP сортирует имена файлов и папок в соответствие с их числовыми значениями. Дополнительные сведения о порядке сортировки в Windows XP см. в следующей статье базы знаний Майкрософт:
319827   (http://support.microsoft.com/kb/319827/ ) Порядок сортировки файлов и папок, имена которых включают цифры, в системах Windows Vista, Windows XP и Windows Server 2003 отличается от порядка сортировки в Windows 2000 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)


http://www.pw.bafa.ru/articles/a318872.shtml

Неправильный порядок сортировки в Проводнике в Windows XP
Информация в этой статье относится к:

Microsoft Windows XP Home Edition
Microsoft Windows XP Professional

ПРИЗНАКИ

Файлы и папки, в названии которых содержится 10 или более последовательных цифр, неправильно сортируются в Проводнике. Например, предположите, что у Вас есть папки с такими именами:

1111111111
2222222222
3333333333
4444444444
5555555555

В Проводнике, эти имена папок отсортированы так:

2222222222
3333333333
4444444444
1111111111
5555555555

ПРИЧИНА

Такое поведение вызвано проблемой в коде оболочки.

РЕШЕНИЕ

Для решения этой проблемы установите Windows XP Service Pack 1.

Английская версия исправленной библиотеки должна иметь следующие или более поздние атрибуты файла:

Дата        Время Версия      Размер  Имя файла
-------------------------------------------------
14-Mar-2002 08:32 6.0.2600.37 391 168 Shlwapi.dll

ИНФОРМАЦИЯ

Если у Вас есть папки, названия которых содержат цифры, порядок сортировки в Windows 2000 и Windows XP различен. В Windows 2000, следующий порядок сортировки имен файлов и папок:

Ie4_01
Ie4_128
Ie401sp2
Ie5
Ie501sp2
Ie6

В Windows XP, те же самые файлы и папки сортируются так:

Ie4_01
Ie4_128
Ie5
Ie6
Ie401sp2
Ie501sp2

Метод сортировки в Windows XP изменен. Метод, который используется для сортировки, описан на следующем Веб сайте MSDN:

Функция StrCmpLogicalW

Вместо того, чтобы сортировать символ-В-символ, любая числовая строка, в имени файла, обрабатывается как число. Поэтому в Windows XP, на примере приведенном выше, 401 - больший номер чем 6, поэтому файл Ie401sp2 отсортирован после Ie6. 501 больше, чем 401, 4, и 6, поэтому Ie501sp2 отсортирован последним.



Рецензии
Признаюсь честно - меня на это не хватило.

Максим Максимов 3   15.10.2010 01:10     Заявить о нарушении
В смысле не интересно? Это понятно.

А вот если бы вы посидели за компьютером в качестве программиста 20 лет и поседели от обилия глюков, версий, мелочных особенностей, диалектов разных языков, динамически разделяемых библиотек, всяких патчей, сервис-паков различных дат и номеров выпуска, директ-иксов и -саундов, и всякой другой такой херни, которую фирмы разработчики наматывают на мозги людям из года в год, и хотят чтобы люди в это вникали... За 20 лет я так на это всё насмотрелся, что меня теперь от этого просто тошнит.

Самое обидное, что все накопленные знания оказались «скоропортящимся продуктом», который устаревает через очень короткое время. По сути дела – это не знания. Это навыки. Знать где какую кнопку нажать в данной версии Виндоуса то же самое, что знать, где какой оператор поставить в данной версии языка программирования. Как только сменится версия Винда и языка, так все навыки сливай и закачивай в мозги заново.

Это проблема связана с тем, что наука информатика – не существует. Всё делается наобум. Промышленные корпорации кроят все стандарты, как им понравится на текущий момент, совершенно не учитывая ни последовательности в своих действиях, ни предыстории развития, ни инерционности человеческой психики, ни элементарной эргономичности процесса обучения. Я уже даже не мечтаю о концептуальной целостности проектирования, поскольку она может родиться только из Теории, а её нет. Как фон-Нейман описал свою машину, как помер Эйдсгар Дейкстра, так и сошли на нет все учёные. Один Вирт со своим Паскалем копается в Швейцарии потихоньку, рождая диалекты под названием «Оберон» и всё. И ещё в Америке 20 лет Дональд Кнут пытается собрать в кучу все алгоритмы, составив из них хоть какую-нибудь классификацию. Но его планы по мере работы становятся всё безбрежнее и безбрежнее! Сначала он планировал написать 3 тома (и написал! молодец). Потом он их редактировал 10 лет, и у него уже получилось 5 томов, которые он ни как не может закончить. А сам он говорит, что видит монографию размером в 20 томов. Но на это видимо потребуется лет 200, которых у него конечно нет. А главное! Все его изыскания, как вы сами только что наглядно видели, ни коем образом не влияют на кривизну того же самого алгоритма сортировки от фирмы Майкрософт. Потому как их видимо тоже «на это не хватает»!!!

Мало создать хорошую систему. Надо, чтобы она стала понятной людям. И если завтра вы придёте и заявите, что теперь всё будет по-другому, то вы просто поставите крест на своих идеях. Люди раз переменят свои привычки под вас, два переменят под ваше чудо, а на третий пошлют вас на хер! Скажут, иди-ка ты со своими продвинутыми системами куда подальше.

Однажды от отчаяния я придумал такую аналогию, как убийственный аргумент против этой чехарды: Если бы Господь Бог менял Законы Вселенной с маниакальной периодичностью разработчиков софта и компьютерного железа, долго бы протянула наша Физика, Химия, Астрономия? А?

Поэтому при каждом удобном случае я пинаю, и буду пинать этих «редисок», которые отняли у меня 20 лет жизни, а в результате превратили мои мозги в свалку погибших кораблей. Лучше бы я пошёл в астрономы! Звезды хотя и меняют своё положение на небе, но очень медленно. Поэтому самый близкий мне персонаж из классической литературы – это узник замка Иф. Но его 14 лет заточения не идут ни в какое сравнение с моими умственными изысками и накалом напряжения, которые я отдал своей неблагодарной профессии!

Беда в том, что в том месте, где я живу понятие «Вычислительный центр» ликвидировали, как антиквариат. И местные аборигены не понимают разницы между сервис-инженером службы поддержки, системным администратором и программистом-разработчиком. Для них всё, что касается компьютера – это сфера деятельности одного человека КОМПЬЮТЕРЩИКА. А проникнуть глубоко во всё сразу невозможно по определению. Поэтому местные кадры, которые дают объявления в газетах «Переустановка операционных систем, подключение к интернету, настройка программ, антивирус» – делают всё на очень низком уровне. Они, как дрессированные обезьянки, знают когда какой диск вставить в лоточек, когда какой сетап запустить, какую кнопочку тыкнуть мышкой. Но что происходит внутри? Об этом они даже не догадываются. Я же всю жизнь привык лезть до самых основ, как учил Козьма Прутков «Зри в корень!» Поэтому, когда я начинаю рассказывать о подробностях дизассемблирования отладчиком DEBUG той же самой FORMAT.COM , из которой мне нужно было вытащить недокументированную функцию для своих нужд, то все эти «якобы спецы» просто рты открывают от изумления. Они в такие подробности никогда не входили. И даже не думали о возможности такого подхода!

Это что! А я вот был знаком с людьми, которые не только сами писали программы, но и сами делали компьютеры, клавиатуры, мышки, подключали бытовой магнитофон в качестве накопителя, понимали всё с точностью до байта, до уровня сигнала на ножках микросхем!

Ведь всё похерили!!! Вот эта кодла необразованных чиновников, которые списали всех специалистов, программистов, электронщиков вслед за своей вычислительной техникой.

Да. Я работал на плохой советской вычислительной технике: CM-4, CM-1420! Но наша ли вина, что на космос и ракеты деньги выделяли, а мы сидели без зарплаты? А?

А потом пришли «писюки» – и все ВЦ просто позакрывали!

А теперь показывают по телевизору, что оказывается в ядерном центре в Сарове делают супер-пупер компьютеры российского производства. Это чтобы заткнуть рот вот таким изгоям, как я. Мол, у нас есть собственные наработки и не хуже зарубежных, и даже лучше. Правильно. Есть. Только они все не про нашу честь. Человек рядовой в магазине обычном купит всё тот же IBM PC, а не ваш супер-компьютер. И даже не в том дело, что он стоит в десять раз дороже. А важно, что вы их выпускаете по 20шт. в месяц! Курам на смех.

В России 140 миллионов населения. Если из них хотя бы 10% пользуются компьютерами, то мы получаем около 10 миллионов компьютеров. Компьютеры морально устаревают через каждые 5 лет. Значит, каждый год есть потребность в 2 миллионах компьютеров для России! А если выпускать по 20 шт. в месяц (240 шт. в год), то потребуется 8 000 лет с хвостиком, чтобы удовлетворить спрос российского рынка.

А все сказки с экранов телевизора о собственных компьютерах есть тогда ни что иное, как подлое враньё! Единственной целью которого является заморочить людям мозги, распалить в них национальное честолюбие, и уверить всех, что Россия впереди всех, только с другого конца...

Потому что у неё всегда всё не так, как у других: в место головы – задница. Во всём мире структуры управления создаются под людей, а у нас наоборот – люди разводятся под структуры управления.

Фу-у! Как я зол.

Мудman   15.10.2010 12:34   Заявить о нарушении
Бог с вами! Я и половины, (да какой там половины - больше!) употребляемых вами терминов не знаю. К моему стыду я как те "местные аборигены не понимают разницы между сервис-инженером службы поддержки, системным администратором и программистом-разработчиком. Для них всё, что касается компьютера – это сфера деятельности одного человека КОМПЬЮТЕРЩИКА".
Однако нашел для себя в потоке вашего негодования рациональное и очень ценное зерно, вот оно:
"Мало создать хорошую систему. Надо, чтобы она стала понятной людям. И если завтра вы придёте и заявите, что теперь всё будет по-другому, то вы просто поставите крест на своих идеях. Люди раз переменят свои привычки под вас, два переменят под ваше чудо, а на третий пошлют вас на хер! Скажут, иди-ка ты со своими продвинутыми системами куда подальше".

Максим Максимов 3   15.10.2010 14:48   Заявить о нарушении
Согласен. ... Уже пошёл...

;-)

Мудman   15.10.2010 18:45   Заявить о нарушении
Это к вам Мудman, не относится.

Максим Максимов 3   15.10.2010 20:04   Заявить о нарушении
Да я понял... Просто не смог упустить случая – скаламбурить.

За ради красного словца
Не жаль в рассоле огурца.
Да что там хрукт! И от Смирнова
Не жаль столового винца!

Я рекомендую вам, Максим, прочитать мою любимую (одну из…), называется «О ЧЁМ НЕ НАПИСАЛ АРТУР КОНАН ДОЙЛЬ».

Только постарайтесь спокойно перенести мой симбиоз с Антоном Павловичем Чеховым. В этом слиянии и есть «вся фишка», как сейчас говорят. И прошу вас, постарайтесь решить предложенную Антоном Павловичем простейшую математическую задачку до того, как её по ходу рассказа решит доктор Ватсон. Вы получите тогда огромное удовольствие.

Фирма гарантирует.

Приятного чтения.

Мудman   15.10.2010 23:19   Заявить о нарушении
Кстати, вот и ссылка, чтобы вы не теряли время на поиск:
http://www.proza.ru/2005/02/01-190

Мудman   15.10.2010 23:53   Заявить о нарушении
Спасибо за приглашение. Обязательно им воспользуюсь, но в другой раз. Сейчас уже мозги плавятся - боюсь опозорюсь с вашей задачей...

Максим Максимов 3   16.10.2010 02:06   Заявить о нарушении
Конечно! Задачки надо решать на свежую голову.

Мудman   16.10.2010 07:37   Заявить о нарушении
Прочитал с интересом, который вы хорошо подогрели, но задачу не решил.
Списал бы если бы было у кого... Шучу.
Прочитал ваши рассуждения об информации и искусственном интеллекте. Не согласен. Мир устроен сложнее. Логика - счета (черная), логика - абстрактных рассуждений и понятия облекаемых в слова и фразы (белая).
Оппозиция логике - этика, тоже делится на - интро и -экстро. Логика и этика - рациональные элементы мироздания. Кроме них есть ещё такая же пара оппозиций только иррациональной природы. Итого система состоит из 8 аспектов - 4 оригинальных делящихся на "свет" и "тень".
Это соционика - рекомендую.

Максим Максимов 3   20.10.2010 02:39   Заявить о нарушении
Это напоминает мне разговор Хоттабыча с Волькой. Помните? Хоттабыч уверял, что ему нет равных в познании мира, и на уроке географии устами Вольки стал излагать Теорию «Хрустального купола небес»…

Беда всех теорий – они придумываются, как абстрактные схемы, в соответствии с имеющимися на момент их создания данными. А потом костенеют. Жизнь преподносит новые факты, а заложники теорий пытаются впихнуть их в свою любимую теорию. Радуются, когда факты подходят. И морщатся, когда они противоречат. И уже не видят, что давно изучают не окружающий мир и его законы, а свою Теорию. И борются с оппозицией, хотя и не в состоянии объяснить, почему это у них 8 аспектов, а не 9 или не 7?

Я же исхожу из собственных представлений, которые питаю современными данными. Посмотрите: учёные генетики находят всё больше разных генов, которые отвечают за качества человека. Ген ответственный за ожирение, за пристрастие к курению, за склонность к преступным действиям, последние сведения: найден ген, отвечающий за желание помогать людям!

Я согласен полностью, что нравственные категории не логичны. Но что это такое? Откуда они берутся?

В моём представлении мозг человека разделён на сознание и подсознание не случайно. Сознание наполнено понятиями, которыми человек пополняет свою «базу данных» с самого рождения. Этот «клубок понятий» напоминает гипертекст с перекрёстными ссылками. В ней нет ни начала, ни конца (т.е. это нереляционная база данных, напоминающая по своему строению Интернет). Логика включает в себя и числа (числа такие же абстрактные понятия, как и остальные в нашей «базе данных»), только мы имеем возможность проверить соответствие между абстрактным понятием из нашей головы реальному объекту (пересчитать предметы и сказать – их столько на самом деле). Когда же мы говорим о неисчислимых понятиях, таких как сердечная привязанность, то мы обречены делать допущение, что наш объект наполнен теми чувствами, что и мы. А так ли это? Этого мы не в состоянии знать. Это мы можем определить лишь по косвенным признакам. Поэтому и говорят, чтобы узнать человека надо с ним пуд соли съесть.

А способность вообще испытывать сердечную привязанность – она откуда? Это эмоции! Это наши базовые стратегии. Они находятся в подсознании человека и довлеют над логикой. Да. А их принципиальная возможность заложена на уровне генов.

Вот и вся простая схема устройства головы человека и его личности. И никаких восемь «хрустальных полусфер» и «света и тьмы», «позиций и оппозиций»… Ничего этого не надо для понимания.

Нужно лишь принять за основу простые положения:

1. Генотип определяет набор базовых стратегий – эмоций.
2. Эмоции генерируются из подсознания.
3. Сознание отвечает за логику, и умеет оперировать как с исчислимыми понятиями, так и с неисчислимыми.
4. Эмоции не бывают положительными и отрицательными. Они различаются лишь по силе. Плюс и минус им присваивает разум.

Поэтому понятно, почему крайности сходятся, почему человек может и плакать от горя и от радости, и смеяться от тех же самых вещей.

Но в отличие от компьютера, разум человека в основном оперирует качественными категориями, которые не выражаются в числах. Заметьте! Не выражаются не потому, что они действительно не имеют числового эквивалента. А потому, что человек их конкретного значения не знает! У каждого свой индивидуальный «клубок понятий», который вырос, как розовый куст в индивидуальных условиях. И у одного понятие «красный» лежит в одном месте, а у другого в другом. Но каждый мозг знает, куда ему надо залезть, когда требуется именно эта область памяти.

Если бы мы смогли оцифровать данную личность, то построили бы модель его «клубка понятий». А по генотипу посмотрели бы набор задатков. Провели бы тестирование подсознания и выяснили, в какой мере эмоции развились. Так можно было бы добавить нашей модели конкретного человека базовые стратегии его поведения и присвоить им весовые коэффициенты. И вот уже получился бы компьютерный аналог.

Но сначала нам нужно запрограммировать механизм пополнения базы данных новыми понятиями, чтобы личность могла развиваться и дальше. Иначе она будет статичным слепком с данного человека на момент оцифровки.

Ну, вот… Как-то так…

А изучать «хрустальные полусферы» разных умных теорий – это не для меня. Я программист. Я – практик. Мне важна возможность создания конкретной программы, а не жонглирование красивыми терминами.

Мудman   18.11.2010 17:42   Заявить о нарушении
Вы правы, практика - критерий истины. У каждого своя практика и свои истины. Спорить - непродуктивно. Мы свою правду докажем делами. По вашему практикой.
Ну, вот... Как-то так...

Максим Максимов 3   18.11.2010 18:02   Заявить о нарушении
Только что в программе «ВРЕМЯ» увидел наглядное подтверждение своих слов. Мошенник звонил наобум и вымогал деньги из пенсионеров, представляясь их детьми. Разговор начинал со слов: «Мам, помоги. Я попал в беду». И даже непохожесть голоса объяснял: «Так я подрался. У меня нос разбит». И тут же в кадре женщина разводит руками и восклицает: «В такие моменты мозги не работают!»

Правильно. Срабатывает базовая стратегия: помочь близкому тебе человеку, выручить из беды. А логика остаётся в стороне. Работает эмоциональное мышление на уровне более глубоком, подсознательном.

А ведь так просто, стоило только спросить: «Коля, как зовут нашего кота?» А сына может быть, вовсе и не Коля зовут, и кота никакого у неё нет в помине. И посмотреть, как мошенник будет крутиться, словно вошь на гребешке…

Мудman   18.11.2010 20:07   Заявить о нарушении