Total Commander Edit Redirector
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3, 4 ... 14, 15, 16  Next  :| |:
Total Commander -> Плагины Total Commander

#31:  Author: MVVLocation: Ростов-Дон PostPosted: Wed Oct 20, 2010 03:41
    —
Koljasik wrote:
Quote:
В подробном режиме представления в зависимости от текущей локали открытие выделенных файлов может не работать. Если это произошло, пожалуйста, сообщите мне, с какой локалью это происходит.

Мой случай. Что вы подразумеваете под локалью в windows 7?
Собственно, здесь очень хорошо написано, что такое локаль.

#32:  Author: GGS PostPosted: Wed Oct 20, 2010 09:54
    —
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

#33:  Author: CaptainFlintLocation: Москва PostPosted: Wed Oct 20, 2010 12:39
    —
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 и брось куда-нибудь, чтоб я мог глянуть.

#34:  Author: GGS PostPosted: Wed Oct 20, 2010 14:27
    —
CaptainFlint wrote:
Попробуй сделать логи этой версией

Сделал это на другом компе, но суть осталась (OS и TC те же). http://slil.ru/29841398

#35:  Author: CaptainFlintLocation: Москва PostPosted: Wed Oct 20, 2010 14:58
    —
GGS
Какие процессоры на обоих компах? Желательно с точностью до моделей или хотя бы поколений.

Попробуй эту версию:
http://flint-inc.ru/files/mlang/tcer_x32_nosse_1.0.0.0.rar

#36:  Author: GGS PostPosted: Wed Oct 20, 2010 15:32
    —
CaptainFlint wrote:
Какие процессоры на обоих компах?

Сейчас http://ipicture.ru/uploads/101020/Bo6X2Wvg38.png
Предыдущий примерно такой же Embarassed
CaptainFlint wrote:
tcer_x32_nosse_1.0.0.0.rar

Этот работает!

#37:  Author: CaptainFlintLocation: Москва PostPosted: Wed Oct 20, 2010 16:03
    —
GGS
Понятно. Я компилировал с использованием SSE/SSE2, не рассчитывал, что старых процессоров используется достаточно для того, чтобы их пользователи пересеклись с TCER.

#38:  Author: Reflector PostPosted: Wed Oct 20, 2010 16:45
    —
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 символов или нет и... Да, и бинарник бы опять стал больше, это ужасно Smile

#39:  Author: CaptainFlintLocation: Москва PostPosted: Wed Oct 20, 2010 17:39
    —
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 байт памяти.

Это осознанный шаг, документированный в коде. Описанная тобой утечка — не утечка, потому что программа завершает выполнение, и память автоматически освобождается системой. Если кто-то захочет использовать код в другом проекте, где при возникновении ошибок процесс не завершается, эту ситуацию надо будет разруливать. Я об этом знаю, я об этом предупреждаю в коде. Предпринимать со своей стороны дополнительные шаги, потенциально влияющие на скорость выполнения кода, считаю в данном конкретном случае излишним.

#40:  Author: KoljasikLocation: СПб PostPosted: Thu Oct 21, 2010 04:53
    —
CaptainFlint wrote:
Что выставлено в языковых и региональных настройках Панели управления?

Россия, Русский, естественно.

tcer_dirlist.log

#41:  Author: CaptainFlintLocation: Москва PostPosted: Thu Oct 21, 2010 10:27
    —
Koljasik
А, шоб ему… Sad Совершенно забыл, что размер может быть с единицами указан, а не в байтах. Подумаю, как это можно исправить.

Спасибо за лог.

#42:  Author: Den_KlimovLocation: Ukraine.Kiev PostPosted: Sun Oct 31, 2010 02:16
    —
Вижу несмотря на то что я пропал [работа волк, догоняет и кусает, не убежишь Sad ] тут процесс вовсю кипит. Smile

#43:  Author: ask-rusLocation: Russian Federation PostPosted: Sun Oct 31, 2010 09:55
    —
CaptainFlint wrote:
Поддерживаются все режимы представления, кроме эскизов.

А в чем фишка? Из чего исходил? Ведь если файлы в эскизах нельзя послать редактору, "перенаправлялка" кажется неполноценной.

#44:  Author: CaptainFlintLocation: Москва PostPosted: Sun Oct 31, 2010 11:29
    —
ask-rus wrote:
А в чем фишка?

В особенностях работы Тотала. В режиме эскизов нет возможности получить из внешней программы список выделенных файлов в панели Тотала (во всяком случае, я его не нашёл). Единственный способ — запускать программу не как редактор, а как стороннее приложение с параметром %L, но этот способ несовместим с остальными сценариями работы редактора, в частности — с открытием файлов на редактирование из архивов, с FTP, из FS-плагинов.

Теоретически, можно было бы сделать следующее: если включён режим эскизов, автоматически послать в Тотал команду, запускающую внешнюю прогу с %L, а та прога уже распарсит список и запустит редакторы. Но тут возникает сразу несколько сложностей. Во-первых, я пока не нашёл способа отличить режим эскизов от прочих. Во-вторых, режим эскизов может быть включён и в архиве, а там %L не работает. В-третьих, двойной запуск программы — двойная задержка, пользователь может успеть сменить каталог или поменять выделение, не подозревая, что программа ещё только-только в процессе запуска. В-четвёртых, для подобного действия необходимо предварительно создать в Тотале EM-команду, которая запускала бы этот редактор, т.к. передать произвольной программе %L не получится (это, конечно, не страшно, но установка редиректилки становится нетривиальной, а ридми ж почти никто не читает).

#45:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Oct 31, 2010 11:43
    —
ask-rus
К сказанному CaptainFlint хочу добавить, что в силу вышесказанного с режимом эскизов не справляются и другие аналогичные программы. F4Menu, скажем, честно сообщает, что режим эскизов не поддерживается, а ChoiceEditor молча игнорирует выделение и открывает в редакторе только файл под курсором.



Total Commander -> Плагины Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3, 4 ... 14, 15, 16  Next  :| |:
Page 3 of 16

Powered by phpBB © 2001, 2005 phpBB Group