Собственно, здесь очень хорошо написано, что такое локаль.Koljasik писал(а):Мой случай. Что вы подразумеваете под локалью в windows 7?В подробном режиме представления в зависимости от текущей локали открытие выделенных файлов может не работать. Если это произошло, пожалуйста, сообщите мне, с какой локалью это происходит.
Total Commander Edit Redirector
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
CaptainFlint
При запуске tcer.exe получаю:
P.S. tcer.ini - копия tcer.sample.ini (аналогично с пустым tcer.ini = 0 байт). Если удалить tcer.ini, то при запуске tcer.exe просто ничего не происходит.
P.P.S. Отчёт об ошибке, перехваченный из %TEMP%, http://zalil.ru/29840728
При запуске tcer.exe получаю:
WinXP SP3+ (rus); TC 7.55a. Какие логи/дампы нужны и куда выложить?tcer.exe - обнаружена ошибка. Приложение будет закрыто.
Приносим извинения за неудобства.
P.S. tcer.ini - копия tcer.sample.ini (аналогично с пустым tcer.ini = 0 байт). Если удалить tcer.ini, то при запуске tcer.exe просто ничего не происходит.
P.P.S. Отчёт об ошибке, перехваченный из %TEMP%, http://zalil.ru/29840728
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Что выставлено в языковых и региональных настройках Панели управления?Koljasik писал(а):Что вы подразумеваете под локалью в windows 7?
Скачай, пожалуйста, эту прожку:
http://flint-inc.ru/Temp/tcer_dirlist.rar
распакуй в какой-нибудь каталог, где уже есть несколько файлов, выставь Подробный режим, выдели несколько файлов (можно все) и запусти tcer_dirlist.exe. Она стащит список выделенных файлов из активной панели в том виде, в каком их отдаёт Тотал, и забросит во временный файл (%TEMP%\tcer_dirlist.log). Выложи его куда-нибудь (только не надо копипастить прямо в текст сообщения: это порушит все пробелы и табуляции, а мне именно они и важны, как раз по ним выполняется анализ и выделение имени файла).
Попробуй сделать логи этой версией: http://flint-inc.ru/Temp/tcer_logging.rarGGS писал(а):При запуске tcer.exe получаю:tcer.exe - обнаружена ошибка. Приложение будет закрыто.
Скачай её и замени ей исполняемый файл. После этого сделай то же самое, что привело к крэшу, из временного каталога (%TEMP%) вытащи файл с именем tcer_trace.log и брось куда-нибудь, чтоб я мог глянуть.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Сделал это на другом компе, но суть осталась (OS и TC те же). http://slil.ru/29841398CaptainFlint писал(а):Попробуй сделать логи этой версией
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
GGS
Какие процессоры на обоих компах? Желательно с точностью до моделей или хотя бы поколений.
Попробуй эту версию:
http://flint-inc.ru/files/mlang/tcer_x3 ... .0.0.0.rar
Какие процессоры на обоих компах? Желательно с точностью до моделей или хотя бы поколений.
Попробуй эту версию:
http://flint-inc.ru/files/mlang/tcer_x3 ... .0.0.0.rar
Почему же, ё-моё, ты нигде не пишешь "ё"?
Сейчас http://ipicture.ru/uploads/101020/Bo6X2Wvg38.pngCaptainFlint писал(а):Какие процессоры на обоих компах?
Предыдущий примерно такой же
Этот работает!CaptainFlint писал(а):tcer_x32_nosse_1.0.0.0.rar
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Добавил в твой проект vector, размер бинарника вырос на 8к при том, что Array я не удалял, т.е. реально будет еще меньше. Это много? Не думаю... В чем неудобство тоже не понятно. Допустим ты пишешь:CaptainFlint писал(а): Во-первых, я ненавижу STL. Хоть и мощный, но крайне неудобный в использовании (не говоря уж о километровых сообщениях об ошибках, чуть что не так). Во-вторых, я совсем не уверен, что vector сможет жить в программе сам по себе, ничего больше не затащив вместе с собой из STL. В этом случае вряд ли получится экономия. В-третьих, я разрабатывал с учётом возможного отказа от CRT, что в случае использования STL вызвало бы дополнительные проблемы.
Array<int> abc;
abc.Append(10);
if (abc.GetLength() == 0) ...
чем это код сложнее такого?
vector<int> abc;
abc.push_back(10);
if (abc.empty()) ...
Очевидно он ничем не сложнее, более функционален и при необходимости я легко могу заменить vector на list или map, собственная реализация которых была бы уже не такой простой, как твой Array. Почему для тебя это не очевидно? Видимо ты сначала изучал чистый С потому плохо знаешь С++ и его библиотеки. В частности это видно по использования таких чисто сишных особенностей, как передача void в качестве аргументов функций и использование typedef при определении структур и перечислений. Ты пишешь на С++ так, будто это С, игнорируя все рекомендации ведущих С++ программистов. К чему это приводит? К функциям на 800 строк внутри которых огромное количество мест с потенциальными утечками памяти. Например, когда прога выдает "Configuration file not found!", то утекает 2048 + 2048 + 12 + 20 + 2048 + 2048 байт памяти. Если я возьму любую ошибку выдаваемую выше нее в текущем блоке кода, а это:
Memory allocation error!
Failed to find myself
Too long INI file name!
Too long path to INI!
COMMANDER_INI variable undefined!
Too long path to myself!
то везде будут утечки памяти. Естественно ниже они буду тоже, но многих их них можно было бы избежать используя string и исключения, еще и код бы стал короче, надежнее, понятнее, ты бы не думал будут строки больше 1024 символов или нет и... Да, и бинарник бы опять стал больше, это ужасно
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
Не много. Но зачем, если можно без? Преимуществ перед моим решением я пока не вижу.Reflector писал(а):Добавил в твой проект vector, размер бинарника вырос на 8к при том, что Array я не удалял, т.е. реально будет еще меньше. Это много? Не думаю...
Я говорил не конкретно про vector, а про STL в целом. Мне его сверх-навороченные шаблоны не нравятся. То, что vector в данном случае достаточно прост и может обходиться без сверх-наворотов — всего лишь счастливая случайность.Reflector писал(а):В чем неудобство тоже не понятно.
А оно надо? Я ещё раз повторяю: моя цель — максимальная компактность и производительность. Чтобы программа запускалась и выполнялась реактивно, чтобы пользователь не успел сменить каталог или нажать лишний пробел, изменив список выделенных файлов до того момента, как программа их успеет из Тотала выдрать. Вот зачем мне прямо сейчас сдался map или list? Дадут они мне большую производительность, чем даёт сейчас мой Array? Что я получу за эти восемь килобайт, кроме осознания того, что я, такой крутой программист, умею использовать стандартные библиотеки вместо изобретания велосипедов?Reflector писал(а):Очевидно он ничем не сложнее, более функционален и при необходимости я легко могу заменить vector на list или map, собственная реализация которых была бы уже не такой простой, как твой Array.
Знать библиотеки и использовать их — несколько разные вещи, не находишь? Я не вижу смысла пихать в каждый из своих проектов все мыслимые плюсовые навороты только из-за того, что они существуют в природе. Я использую то, что считаю нужным и тогда, когда считаю нужным.Reflector писал(а):Почему для тебя это не очевидно? Видимо ты сначала изучал чистый С потому плохо знаешь С++ и его библиотеки.
void генерирует Студия при создании класса. Я решил лишь следовать этому шаблону, только и всего. typedef остались от копипаста из системных H-файлов, которые рассчитаны на C. Да, каюсь, забыл привести в более "плюсовый" вид… Сам не люблю typedef'ы для структур.Reflector писал(а):В частности это видно по использования таких чисто сишных особенностей, как передача void в качестве аргументов функций и использование typedef при определении структур и перечислений.
Это осознанный шаг, документированный в коде. Описанная тобой утечка — не утечка, потому что программа завершает выполнение, и память автоматически освобождается системой. Если кто-то захочет использовать код в другом проекте, где при возникновении ошибок процесс не завершается, эту ситуацию надо будет разруливать. Я об этом знаю, я об этом предупреждаю в коде. Предпринимать со своей стороны дополнительные шаги, потенциально влияющие на скорость выполнения кода, считаю в данном конкретном случае излишним.Reflector писал(а):Например, когда прога выдает "Configuration file not found!", то утекает 2048 + 2048 + 12 + 20 + 2048 + 2048 байт памяти.
Почему же, ё-моё, ты нигде не пишешь "ё"?
Россия, Русский, естественно.CaptainFlint писал(а):Что выставлено в языковых и региональных настройках Панели управления?
tcer_dirlist.log
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
-
Den_Klimov
- Сообщения: 207
- Зарегистрирован: Пт ноя 03, 2006 11:27
- Откуда: Ukraine.Kiev
А в чем фишка? Из чего исходил? Ведь если файлы в эскизах нельзя послать редактору, "перенаправлялка" кажется неполноценной.CaptainFlint писал(а):Поддерживаются все режимы представления, кроме эскизов.
«Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица
- CaptainFlint
- Сообщения: 6239
- Зарегистрирован: Вт дек 14, 2004 22:34
- Контактная информация:
В особенностях работы Тотала. В режиме эскизов нет возможности получить из внешней программы список выделенных файлов в панели Тотала (во всяком случае, я его не нашёл). Единственный способ — запускать программу не как редактор, а как стороннее приложение с параметром %L, но этот способ несовместим с остальными сценариями работы редактора, в частности — с открытием файлов на редактирование из архивов, с FTP, из FS-плагинов.ask-rus писал(а):А в чем фишка?
Теоретически, можно было бы сделать следующее: если включён режим эскизов, автоматически послать в Тотал команду, запускающую внешнюю прогу с %L, а та прога уже распарсит список и запустит редакторы. Но тут возникает сразу несколько сложностей. Во-первых, я пока не нашёл способа отличить режим эскизов от прочих. Во-вторых, режим эскизов может быть включён и в архиве, а там %L не работает. В-третьих, двойной запуск программы — двойная задержка, пользователь может успеть сменить каталог или поменять выделение, не подозревая, что программа ещё только-только в процессе запуска. В-четвёртых, для подобного действия необходимо предварительно создать в Тотале EM-команду, которая запускала бы этот редактор, т.к. передать произвольной программе %L не получится (это, конечно, не страшно, но установка редиректилки становится нетривиальной, а ридми ж почти никто не читает).
Почему же, ё-моё, ты нигде не пишешь "ё"?
ask-rus
К сказанному CaptainFlint хочу добавить, что в силу вышесказанного с режимом эскизов не справляются и другие аналогичные программы. F4Menu, скажем, честно сообщает, что режим эскизов не поддерживается, а ChoiceEditor молча игнорирует выделение и открывает в редакторе только файл под курсором.
К сказанному CaptainFlint хочу добавить, что в силу вышесказанного с режимом эскизов не справляются и другие аналогичные программы. F4Menu, скажем, честно сообщает, что режим эскизов не поддерживается, а ChoiceEditor молча игнорирует выделение и открывает в редакторе только файл под курсором.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.