View previous topic :: View next topic |
Author |
Message |
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Wed Oct 20, 2010 03:41 Post subject: |
|
|
Koljasik wrote: | Quote: | В подробном режиме представления в зависимости от текущей локали открытие выделенных файлов может не работать. Если это произошло, пожалуйста, сообщите мне, с какой локалью это происходит. |
Мой случай. Что вы подразумеваете под локалью в windows 7? | Собственно, здесь очень хорошо написано, что такое локаль. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
GGS
Joined: 02 May 2009 Posts: 322
|
(Separately) Posted: Wed Oct 20, 2010 09:54 Post subject: |
|
|
CaptainFlint
При запуске tcer.exe получаю:
Quote: | tcer.exe - обнаружена ошибка. Приложение будет закрыто.
Приносим извинения за неудобства. |
WinXP SP3+ (rus); TC 7.55a. Какие логи/дампы нужны и куда выложить?
P.S. tcer.ini - копия tcer.sample.ini (аналогично с пустым tcer.ini = 0 байт). Если удалить tcer.ini, то при запуске tcer.exe просто ничего не происходит.
P.P.S. Отчёт об ошибке, перехваченный из %TEMP%, http://zalil.ru/29840728 |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
(Separately) Posted: Wed Oct 20, 2010 12:39 Post subject: |
|
|
Koljasik wrote: | Что вы подразумеваете под локалью в windows 7? |
Что выставлено в языковых и региональных настройках Панели управления?
Скачай, пожалуйста, эту прожку:
http://flint-inc.ru/Temp/tcer_dirlist.rar
распакуй в какой-нибудь каталог, где уже есть несколько файлов, выставь Подробный режим, выдели несколько файлов (можно все) и запусти tcer_dirlist.exe. Она стащит список выделенных файлов из активной панели в том виде, в каком их отдаёт Тотал, и забросит во временный файл (%TEMP%\tcer_dirlist.log). Выложи его куда-нибудь (только не надо копипастить прямо в текст сообщения: это порушит все пробелы и табуляции, а мне именно они и важны, как раз по ним выполняется анализ и выделение имени файла).
GGS wrote: | При запуске tcer.exe получаю:
Quote: | tcer.exe - обнаружена ошибка. Приложение будет закрыто. |
|
Попробуй сделать логи этой версией: http://flint-inc.ru/Temp/tcer_logging.rar
Скачай её и замени ей исполняемый файл. После этого сделай то же самое, что привело к крэшу, из временного каталога (%TEMP%) вытащи файл с именем tcer_trace.log и брось куда-нибудь, чтоб я мог глянуть. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
GGS
Joined: 02 May 2009 Posts: 322
|
(Separately) Posted: Wed Oct 20, 2010 14:27 Post subject: |
|
|
CaptainFlint wrote: | Попробуй сделать логи этой версией |
Сделал это на другом компе, но суть осталась (OS и TC те же). http://slil.ru/29841398 |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
|
Back to top |
|
|
GGS
Joined: 02 May 2009 Posts: 322
|
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
(Separately) Posted: Wed Oct 20, 2010 16:03 Post subject: |
|
|
GGS
Понятно. Я компилировал с использованием SSE/SSE2, не рассчитывал, что старых процессоров используется достаточно для того, чтобы их пользователи пересеклись с TCER. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
Reflector
Joined: 29 Nov 2009 Posts: 56
|
(Separately) Posted: Wed Oct 20, 2010 16:45 Post subject: |
|
|
CaptainFlint wrote: |
Во-первых, я ненавижу STL. Хоть и мощный, но крайне неудобный в использовании (не говоря уж о километровых сообщениях об ошибках, чуть что не так). Во-вторых, я совсем не уверен, что vector сможет жить в программе сам по себе, ничего больше не затащив вместе с собой из STL. В этом случае вряд ли получится экономия. В-третьих, я разрабатывал с учётом возможного отказа от CRT, что в случае использования STL вызвало бы дополнительные проблемы.
|
Добавил в твой проект vector, размер бинарника вырос на 8к при том, что Array я не удалял, т.е. реально будет еще меньше. Это много? Не думаю... В чем неудобство тоже не понятно. Допустим ты пишешь:
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 символов или нет и... Да, и бинарник бы опять стал больше, это ужасно |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
(Separately) Posted: Wed Oct 20, 2010 17:39 Post subject: |
|
|
Reflector wrote: | Добавил в твой проект vector, размер бинарника вырос на 8к при том, что Array я не удалял, т.е. реально будет еще меньше. Это много? Не думаю... |
Не много. Но зачем, если можно без? Преимуществ перед моим решением я пока не вижу.
Reflector wrote: | В чем неудобство тоже не понятно. |
Я говорил не конкретно про vector, а про STL в целом. Мне его сверх-навороченные шаблоны не нравятся. То, что vector в данном случае достаточно прост и может обходиться без сверх-наворотов — всего лишь счастливая случайность.
Reflector wrote: | Очевидно он ничем не сложнее, более функционален и при необходимости я легко могу заменить vector на list или map, собственная реализация которых была бы уже не такой простой, как твой Array. |
А оно надо? Я ещё раз повторяю: моя цель — максимальная компактность и производительность. Чтобы программа запускалась и выполнялась реактивно, чтобы пользователь не успел сменить каталог или нажать лишний пробел, изменив список выделенных файлов до того момента, как программа их успеет из Тотала выдрать. Вот зачем мне прямо сейчас сдался map или list? Дадут они мне большую производительность, чем даёт сейчас мой Array? Что я получу за эти восемь килобайт, кроме осознания того, что я, такой крутой программист, умею использовать стандартные библиотеки вместо изобретания велосипедов?
Reflector wrote: | Почему для тебя это не очевидно? Видимо ты сначала изучал чистый С потому плохо знаешь С++ и его библиотеки. |
Знать библиотеки и использовать их — несколько разные вещи, не находишь? Я не вижу смысла пихать в каждый из своих проектов все мыслимые плюсовые навороты только из-за того, что они существуют в природе. Я использую то, что считаю нужным и тогда, когда считаю нужным.
Reflector wrote: | В частности это видно по использования таких чисто сишных особенностей, как передача void в качестве аргументов функций и использование typedef при определении структур и перечислений. |
void генерирует Студия при создании класса. Я решил лишь следовать этому шаблону, только и всего. typedef остались от копипаста из системных H-файлов, которые рассчитаны на C. Да, каюсь, забыл привести в более "плюсовый" вид… Сам не люблю typedef'ы для структур.
Reflector wrote: | Например, когда прога выдает "Configuration file not found!", то утекает 2048 + 2048 + 12 + 20 + 2048 + 2048 байт памяти. |
Это осознанный шаг, документированный в коде. Описанная тобой утечка — не утечка, потому что программа завершает выполнение, и память автоматически освобождается системой. Если кто-то захочет использовать код в другом проекте, где при возникновении ошибок процесс не завершается, эту ситуацию надо будет разруливать. Я об этом знаю, я об этом предупреждаю в коде. Предпринимать со своей стороны дополнительные шаги, потенциально влияющие на скорость выполнения кода, считаю в данном конкретном случае излишним. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
Koljasik
Joined: 13 Nov 2007 Posts: 59 Location: СПб
|
(Separately) Posted: Thu Oct 21, 2010 04:53 Post subject: |
|
|
CaptainFlint wrote: | Что выставлено в языковых и региональных настройках Панели управления? |
Россия, Русский, естественно.
tcer_dirlist.log |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
(Separately) Posted: Thu Oct 21, 2010 10:27 Post subject: |
|
|
Koljasik
А, шоб ему… Совершенно забыл, что размер может быть с единицами указан, а не в байтах. Подумаю, как это можно исправить.
Спасибо за лог. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
Den_Klimov
Joined: 03 Nov 2006 Posts: 207 Location: Ukraine.Kiev
|
(Separately) Posted: Sun Oct 31, 2010 02:16 Post subject: |
|
|
Вижу несмотря на то что я пропал [работа волк, догоняет и кусает, не убежишь ] тут процесс вовсю кипит. |
|
Back to top |
|
|
ask-rus
Joined: 10 Nov 2009 Posts: 2076 Location: Russian Federation
|
(Separately) Posted: Sun Oct 31, 2010 09:55 Post subject: |
|
|
CaptainFlint wrote: | Поддерживаются все режимы представления, кроме эскизов. |
А в чем фишка? Из чего исходил? Ведь если файлы в эскизах нельзя послать редактору, "перенаправлялка" кажется неполноценной. _________________ «Минимализм - это кратчайший путь бесконечного стремления к идеалу»
«Не бойся, что не знаешь, - бойся, что не учишься» Китайская пословица |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
(Separately) Posted: Sun Oct 31, 2010 11:29 Post subject: |
|
|
ask-rus wrote: | А в чем фишка? |
В особенностях работы Тотала. В режиме эскизов нет возможности получить из внешней программы список выделенных файлов в панели Тотала (во всяком случае, я его не нашёл). Единственный способ — запускать программу не как редактор, а как стороннее приложение с параметром %L, но этот способ несовместим с остальными сценариями работы редактора, в частности — с открытием файлов на редактирование из архивов, с FTP, из FS-плагинов.
Теоретически, можно было бы сделать следующее: если включён режим эскизов, автоматически послать в Тотал команду, запускающую внешнюю прогу с %L, а та прога уже распарсит список и запустит редакторы. Но тут возникает сразу несколько сложностей. Во-первых, я пока не нашёл способа отличить режим эскизов от прочих. Во-вторых, режим эскизов может быть включён и в архиве, а там %L не работает. В-третьих, двойной запуск программы — двойная задержка, пользователь может успеть сменить каталог или поменять выделение, не подозревая, что программа ещё только-только в процессе запуска. В-четвёртых, для подобного действия необходимо предварительно создать в Тотале EM-команду, которая запускала бы этот редактор, т.к. передать произвольной программе %L не получится (это, конечно, не страшно, но установка редиректилки становится нетривиальной, а ридми ж почти никто не читает). _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10280 Location: Россия, Саратов
|
(Separately) Posted: Sun Oct 31, 2010 11:43 Post subject: |
|
|
ask-rus
К сказанному CaptainFlint хочу добавить, что в силу вышесказанного с режимом эскизов не справляются и другие аналогичные программы. F4Menu, скажем, честно сообщает, что режим эскизов не поддерживается, а ChoiceEditor молча игнорирует выделение и открывает в редакторе только файл под курсором. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|