Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по потокам   Найти похожие ветки 

 
begin...end ©   (2005-09-11 21:14) [80]

> Defunct ©   (11.09.05 20:52) [78]

> Однако, я категорически против такого "издевательства" на
> ОС.

Однако непонятно, почему. И пока что никто не объяснил, почему это можно считать издевательством над ОС.

> Этими словами можно сказать вы разделяете мой взгляд на
> то, что Алексканд Панов придерживается дисциплины, а пользователь,
> который вдруг изменит расширение  его ".exe" файла - дисциплины
> не придерживается.

Это не следует из сказанного мной в [77]. Я не знаю, о какой дисциплине идёт речь. А мои взгляды не изменились -- я считаю, что Александр Панов, используя функцию GetIniName из [10], поступает неправильно. И в изменении пользователем расширения исполняемого файла я не вижу ничего ненормального.


 
Defunct ©   (2005-09-12 01:12) [81]

> begin...end
> Однако непонятно, почему. И пока что никто не объяснил, почему это можно считать издевательством над ОС.

Тем, кто не работал в DOS, объяснить "почему" достаточно трудно. Если я ошибся в выводе относительно вашей практики работы в DOS, прошу извинить.

> Я не знаю, о какой дисциплине идёт речь.
В данном контексте речь идет о дисциплине соответствия расширения файла его типу. Ибо другого способа определения внутреннего формата файла пока нет.


> И в изменении пользователем расширения исполняемого файла я не вижу ничего ненормального.

Попробую вас переубедить. Если допустить переименование расширений файлов по принципу "от фонаря" где звуковые потоки назвать ".exe", видеопотоки - ".bmp", рисунки - ".mid" и т.п. наступит полная неразбериха и система будет не в состоянии определить, что делать с этими файлами, то ли скармливать процессору как исполнимый код, то ли скармливать какой-то программе как данные. Как следствие получим сбой в работе системы при определенных обстоятельствах.

Существует определенный общепринятый стандарт, который позволяет именно по расширению имени файла судить о его типе. Если этот стандарт по какой-то причине нарушается, то наносится вред в первую очередь пользователю, который позволил себе самовольное изменение расширения файла. Во вторую очередь (если допустить, что он распространяет файлы с заведомо неверным расширением) вредит и другим пользователям. Следовательно, произвольное изменение расширения файла наносит определенный вред (вызывает неразбериху при определении типа файла, что приводит в конечном счете к потере чьего-то времени), из чего следует, что изменение расширения исполнимого файла также наносит определенный вред. Нормальная работа системы приносит пользу. Ненормальная - вред.

Подытожив все сказанное, получим, что изменение расширения исполнимого файла - явление ненормальное, потому как наносит прямой или косвенный вред пользователям.


 
Defunct ©   (2005-09-12 05:04) [82]

> begin...end

Дабы вам было легче принять мою точку зрения, скажу
Мне известно следующее:
1. Как работает функция CreateProcess.
2. Как работает загрузчик ОС.
3. Внутренний формат EXE файла.
4. Far запускает EXE файл по внутреннему формату, а не по расширению.
5. Start запускает EXE файл по внутреннему формату, если не находит соответствия в базе типов-расширений.
6. Explorer запускает файл строго по расширению.
7. В коде [10] есть более серьезные ошибки, которые могут привести к deadlock"у.
8. Обсуждаемая функция не блеск, но и не ламерская.
9. SysUtils занимает доп. память.
10. ChangeFileExt не является функцией WinAPI.
11. От пользователя можно ожидать всего, но его нужно приучать к дисциплине.
12. .exe переименовывть нельзя (априори дурной тон)
13. нарушение п.12 влечет за собой возможность нарушения последующих пунктов.
14. каталог %SYSTEMROOT% удалять нельзя.
15. boot.ini удалять нельзя.
16. Своп отключать нельзя.
17. Диск форматировать нельзя.
18. Вирусы писать нельзя.
19. Пакостить нельзя.


 
Джо ©   (2005-09-12 05:10) [83]

20. Нельзя открывать в блокноте исполнимый файл и писать там макросы VBA (сам видел - клянусь!).

:)


 
Наиль ©   (2005-09-12 08:37) [84]

>[82]

> Мне известно следующее:

К сожалению этой фразой вы укрепили верность слов begin...end.
Потому как большинству не программистов, это не известно.
Из практики работы учителем, могу сказать, что большинство людей до 20 лет старается нарушить эти правила.
> Дабы вам было легче принять мою точку зрения, скажу

Уверен, что у begin...end, понимает Вашу точку зрения, но нет ничего предосудительного в его желании писать такие программы, которые продолжают работать, когда ОС уже висит.
Из своего личного опыта.
У нас в семье на троих был один компьютер. И если мне он нужен был для работы, то остальным для игр. Первым делом я стёр все игры. Но они появлялись снова. Тогда я пошёл на крайние меры. Все исполнимые программы переименовал в *.ехе (русскими буквами). Настроил их запуск и правильный показ в проводнике. А на стандартное расширение поставил запуск программы которая ругается страшными словами.
Выводы:
1. Расширение исполняемых файлов может быть отлично от exe.
2. Иногда, это делается не поглупости, а по необходимости.


 
begin...end ©   (2005-09-12 08:57) [85]

> Defunct ©   (12.09.05 01:12) [81]

> Если этот стандарт по какой-то причине нарушается, то наносится
> вред в первую очередь пользователю, который позволил себе
> самовольное изменение расширения файла.

Предположим, я переименовал расширения некоторых исполняемых файлов и запускаю их из командной строки. Они нормально запускаются. Не могу понять, какой вред будет нанесён мне в этом случае.

А если они не будут нормально запускаться и работать из-за функций типа [10] -- так это уже промах программиста. И место таких программ, как уже и было сказано -- в Recycle Bin.

> Подытожив все сказанное, получим, что изменение расширения
> исполнимого файла - явление ненормальное, потому как наносит
> прямой или косвенный вред пользователям.

Оно может нанести вред. А может и не нанести. "Всякий овощ ..." (с)

> В данном контексте речь идет о дисциплине соответствия расширения
> файла его типу. Ибо другого способа определения внутреннего
> формата файла пока нет.


> Defunct ©   (12.09.05 05:04) [82]

> 4. Far запускает EXE файл по внутреннему формату, а не по
> расширению.


То есть как это? В [81] Вы говорите, что внутренний формат файла (а значит, и EXE-файла) можно определить ТОЛЬКО по его расширению (что само по себе смешно, поскольку в этой ветке уже приведено много примеров обратного), а в [82] -- что Far таки определяет внутренний формат, НЕ ориентируясь на расширение файла!

Кстати, сейчас попробовал запустить EXE-файл с изменённым расширением в FAR"е -- почему-то не получилось. Может быть, объясните, почему?

> 9. SysUtils занимает доп. память.
> 10. ChangeFileExt не является функцией WinAPI.

И что? Что-то мешает написать свой правильный аналог ChangeFileExt, чтобы не использовать SysUtils?

> Мне известно следующее:
> 17. Диск форматировать нельзя.

LOL!

Извините, но [82] не облегчило понимание Вашей точки зрения. Скорее наоборот.


 
Defunct ©   (2005-09-12 10:22) [86]

begin...end ©   (12.09.05 08:57) [85]
> Кстати, сейчас попробовал запустить EXE-файл с изменённым расширением в FAR"е -- почему-то не получилось. Может быть, объясните, почему?

Объяснения может быть только одно - возможно версия старая.


> То есть как это? В [81] Вы говорите, что внутренний формат файла (а значит, и EXE-файла) можно определить ТОЛЬКО по его расширению

EXE является исключением. В [81] я говорил о любом файле, в [82] написано где определение типа ведется строго по расширению.

> Что-то мешает написать свой правильный аналог ChangeFileExt, чтобы не использовать SysUtils?

Что мешает написать свой аналог Windows чтобы не использовать продукции MicroSoft?
Могли бы и догадаться. Как всегда определяющий фактор - время.


>> 17. Диск форматировать нельзя.
>LOL!

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


 
begin...end ©   (2005-09-12 10:44) [87]

> Defunct ©   (12.09.05 10:22) [86]

> Объяснения может быть только одно - возможно версия старая.

Версия 1.70. У Вас более новая?

> EXE является исключением.

Похоже, не только EXE является исключением. Измените расширение у word-овского документа на любое другое, и откройте файл в Word. Измените расширение у MP3-файла, и откройте его в Windows Media Player. Возрадуйтесь интеллекту программ фирмы Microsoft.

> Что мешает написать свой аналог Windows чтобы не использовать
> продукции MicroSoft?
> Могли бы и догадаться. Как всегда определяющий фактор -
> время.

Вы это к чему вообще? В [10] не используется SysUtils, и для определения имени ini-файла написана новая функция. Могли бы и догадаться, что как раз для экономии времени лучше было бы подключить SysUtils и использовать стандартную ChangeFileExt. Если же хочется сэкономить ещё и память, то можно и свою функцию написать -- лишь бы она не была глючной.

> Да и вообще нет смысла форматировать.

Дадад. Новый винчестер купил -- и сразу, без форматирования, систему устанавливай на диск, не содержащий разделов.


 
Игорь Шевченко ©   (2005-09-12 12:02) [88]

исполняемые файлы с любым расширением запускаются командой start


 
Игорь Шевченко ©   (2005-09-12 12:04) [89]


> 12. .exe переименовывть нельзя (априори дурной тон)


А вот фирма-разработчик Windows не видит в этом ничего дурного...



Страницы: 1 2 3 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.63 MB
Время: 0.038 c
6-1119435840
Drema
2005-06-22 14:24
2005.10.16
Twebbrowser и события в нем


1-1127320220
JJ
2005-09-21 20:30
2005.10.16
Размер программы в памяти


14-1127476991
raymond
2005-09-23 16:03
2005.10.16
Язык С, тудыть его в качель...


8-1117035219
Narikmen
2005-05-25 19:33
2005.10.16
MediaPlayer1


3-1125838785
ALLexs
2005-09-04 16:59
2005.10.16
Тригеры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский