Ru-Board.club
← Вернуться в раздел «Программы»

» Mark - небольшой удобный редактор

Автор: tolja
Дата сообщения: 22.12.2004 14:22
vito333
Довольно часто нехватает функции ''всегда наверху''. Был бы рад услышать что ты планируешь ее...


Автор: vito333
Дата сообщения: 22.12.2004 17:00
tolja
я планирую её

Добавлено
ShIvADeSt

Цитата:
команда выполнить

пока не обдумывал

Цитата:
как сделать, чтобы ассоциировать Марк с файлами

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

Добавлено
zhuman
не сыпь мне соль на рану
Автор: ShIvADeSt
Дата сообщения: 23.12.2004 04:03

Цитата:
Решил делать в форме диалога, в котором сверху пояснение что к чему, а ниже одна строка со всеми расширениями через точку с запятой - редактируй, добавляй, удаляй. Только вот думаю, делать ли опциональный выбор ассоциировать иконку? или сразу и тип и иконку марка привязывать.

Все-таки ИМХО надо основные типы редактируемых файлов вынести отдельно, иначе не совсем удобно получается. по второму пункту, конечно ИМХО надо делать опцию.
Автор: vito333
Дата сообщения: 23.12.2004 04:50
ну, несколько основных типов можно и пре-забить, их не так и много, это же не медиаплеер, зато при таком подходе максимум гибкости и минимум объема кода, а от юникодовых строк знаешь как размер пухнет? мама не горюй
Автор: vito333
Дата сообщения: 23.12.2004 11:58
ShIvADeSt
мне вот тут подсказывают про потоки и чтение файла:
----------------
А работает это вот как.
Если ты считываешь-записываешь данные из файла в первоспенном потоке, то пока не закончится считывание
перерисовки окна не будет, если же создать дополнительный поток (вторичный), то так как данные будут
считываться-записываться в другом потоке, то ты будешь видеть и сами данные в не зависимости от того полностью они загружены или нет
----------------
поскольку я как обычно пока ни в зуб ногой в потоках, спрашиваю тебя - как считаешь, в этом есть смысл? и в связке с ричедитом будет работать?
Автор: o22
Дата сообщения: 23.12.2004 12:12
Нет вертикальных блоков.

Добавлено
Кстати, а как ты ричедит заставил досовскую кодовую страницу (псевдографику) поддержать ?
Вопрос шкурный
Автор: vito333
Дата сообщения: 23.12.2004 14:11
o22

Цитата:
а как ты ричедит заставил досовскую кодовую страницу (псевдографику) поддержать ?

юникод

Цитата:
Вопрос шкурный

почему шкурный?

ShIvADeSt
мысль такая - читать большой файл в буфер и одновременно грузить из буфера в рич? рич все равно медленнее. Экономия 30% точно должна быть.

o22

Цитата:
Нет вертикальных блоков

будут. правда не знаю пока, как делать, но будут.
а где ты видел в аналогичных прогах вертикальные блоки?

Добавлено
[+] в диалоге вставки даты\времени достаточно двойного клика на нужном формате.
Автор: o22
Дата сообщения: 23.12.2004 18:45
vito333

Цитата:
а где ты видел в аналогичных прогах вертикальные блоки?

Да в том-=же Бреде. Во втором - не помню, в третьем точно есть.

Цитата:
юникод

А как Rich определяет кодовую страницу (как он понимает, что это ДОС-текст) ?
Ты-же я так понимаю в случае загрузки DOS-файлов текст не перекодируешь ?

Цитата:
почему шкурный?

Потому-что для своих целей спрашиваю.

Добавлено

Цитата:
А как Rich определяет кодовую страницу (как он понимает, что это ДОС-текст) ?
Ты-же я так понимаю в случае загрузки DOS-файлов текст не перекодируешь ?


Блин, вероятно OEM_CHARSET
Так ?
Автор: HumVee
Дата сообщения: 24.12.2004 01:39
vito333
По поводу многопоточности у меня тоже была такая идея... И можно выдать окошко с прогрессбаром и кнопками Отмена,Стоп - чтобы прервать операцию загрузки файла. Но вот сложность реализации...

Цитата:
мысль такая - читать большой файл в буфер и одновременно грузить из буфера в рич? рич все равно медленнее.

А если сразу из другого потока в Рич, без буфера? Текст будет видно сразу или после полной загрузки?

Цитата:
Да в том же Бреде. Во втором - не помню, в третьем точно есть.

Третий бред использует не РичЕдит, а своё собственное окно редактирования (оно кажись Scintilla зовётся или что то в этом роде). Если с нуля создавать свой контрол, то конечно можно сделать и поддержку вертикальных блоков, и подсветку синтаксиса и многое другое, для чего рич едит изначально не предназначен, а вот переделывать существующий РичЕдит гораздо сложнее.

Цитата:
Блин, вероятно OEM_CHARSET
Так ?

Нет, собака зарыта в сообщении EM_STREAMIN, SF_USECODEPAGE, и цифре 866.
Автор: vito333
Дата сообщения: 24.12.2004 03:16
o22
в упор не вижу в Бред3 вертикальных блоков! ни в меню упоминаний, ни реакции на Alt-мышь или Ctrl-мышь. Подскажи, чего нажимать?

HumVee

Цитата:
можно выдать окошко с прогрессбаром и кнопками Отмена,Стоп - чтобы прервать операцию загрузки файла

это потом, главное сделать

Цитата:
Но вот сложность реализации...

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

Цитата:
А если сразу из другого потока в Рич, без буфера? Текст будет видно сразу или после полной загрузки?

не знаю, надо пробовать. на мой взгляд - выигрыша быть не должно - какая разница этот поток или другой.

Цитата:
Третий бред использует не РичЕдит, а своё собственное окно редактирования (оно кажись Scintilla зовётся или что то в этом роде).

почему ты решил, что Scintilla?

кстати, насчет своего контрола - будет время, качни и посмотри текстовый контрол Brainchild - я вот думаю на Новый год помимо доделывания марка его поглядеть (у меня лежит где-то). Может и правда есть смысл в таком решении?

o22

Цитата:
А как Rich определяет кодовую страницу (как он понимает, что это ДОС-текст) ?
Ты-же я так понимаю в случае загрузки DOS-файлов текст не перекодируешь ?

обычное (самодельное) распознавание кодировки и перекодировка (средствами системы).
Автор: ShIvADeSt
Дата сообщения: 24.12.2004 03:25
o22

Цитата:
Да в том-=же Бреде. Во втором - не помню, в третьем точно есть.

Нету тама блочного выделения.

Цитата:
Третий бред использует не РичЕдит, а своё собственное окно редактирования (оно кажись Scintilla зовётся или что то в этом роде).

Вообще-то судя по ресурсам класс называется LiteralА или LiteralW в зависимости от нужд.

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

Попробуй вроде должно сработать.
Автор: vito333
Дата сообщения: 24.12.2004 04:05
ShIvADeSt
о, привет! подскажи еще, как корректно дос-имя с "~" привести к нормальному имени?
Автор: OLEX
Дата сообщения: 24.12.2004 04:46
vito333
на первый взгляд хорошая штукенция, только блин я давно ищу вот такой блокнотик, чтобы была нумерация строк. Оччень не хватает

А есть ограничение на размер файла?

Добавлено
гм.... попытался открыть полтораметровый екзешник.... не хочет..... в процессах висит и все больше памяти отбирает, но ниче не появляется....

Добавлено
не дождался - вырубил
Автор: vito333
Дата сообщения: 24.12.2004 04:58
ShIvADeSt
эге, вот с форума бреда3:
Часто спрашивают про вертикальные блоки.
Чтобы ими пользоваться, отключите перенос длинных строк (из опций, или Ctrl+W), и включите опцию "курсор может выходить за края строк" (Ctrl+Alt+V). Удерживая Alt, выделяейте блок мышой или клавой...

хмм, не работает чего-то ...

Добавлено
OLEX

Цитата:
попытался открыть полтораметровый екзешник

программа для текста! хекс будет позже, скорее всего плагином - ShIvADeSt сделает

Цитата:
чтобы была нумерация строк

скоро будет

Цитата:
А есть ограничение на размер файла?

теоретически - 2 гб, а практически - более 50 мб думаю не стоит, да и открывать будет долго, так как основан на ричедит
Автор: ShIvADeSt
Дата сообщения: 24.12.2004 07:35

Цитата:
Чтобы ими пользоваться, отключите перенос длинных строк (из опций, или Ctrl+W), и включите опцию "курсор может выходить за края строк" (Ctrl+Alt+V). Удерживая Alt, выделяейте блок мышой или клавой...

А бубном при этом трясти не надо? Или может молитву прочитать надо. У меня то в принципе получилось выделить блок, только я б до таких извращений никогда не додумался. Так как перенос слов всегда включаю.

Цитата:
программа для текста! хекс будет позже, скорее всего плагином - ShIvADeSt сделает

Я сделаю не хекс едитор (типа WinHex), а просто чтобы в файлах можно было байтики править, на подобие как это было в старых бредах. Ибо если надо большее, то юзайте полноценные хекседиторы, а это когда срочно надо просто изменить что то где то.
Автор: vito333
Дата сообщения: 24.12.2004 11:51
ShIvADeSt
я имел в виду с путем, имя-то я могу

Добавлено
и еще, у меня регистрация на форуме бреда3 не идет - 2 раза регился - на почту ничего не приходит.
Может ты спросишь Клюга - КАК и почему бред2 так быстр в загрузке? я хотел закосить под дурака но вот не получается

Добавлено
[x]?? пофиксен баг отображения скроллбаров - под ХР при перемещении окна ниже экрана и сразу вверх (артефакты на пересечении скроллбаров), под вин2к - при восстановлении окна из минимизированного состояния - не перерисовывались скроллбары.
ТРЕБУЕТСЯ ПРОВЕРКА! особенно под вин2к, так как под рукой её нет.
Автор: ShIvADeSt
Дата сообщения: 24.12.2004 15:04
vito333

Цитата:
тройной клик мышью на строке выделяет всю строку.

ИМХО если возможно как в Опере выделяет все предложение, то есть от одного символа разделения предложения до другого.

Цитата:
?? пофиксен баг отображения скроллбаров - под ХР при перемещении окна ниже экрана и сразу вверх (артефакты на пересечении скроллбаров),

Пофиксен, баги не замечены.
Список ToDo внушает уважения, насчет твоего вопроса думаю, странно что функция которую тебе посоветовал так криво работает . Хотя должна вернуть то что надо.
Однако запрети в окне предпросмотра удалять редактировать текст и сделай по возможности растяжение вниз при ресайзе, чтобы можно было считать что диалоги открытия сохранения закончены.
Блин, жалко что я ламер в С.
Автор: o22
Дата сообщения: 24.12.2004 15:34
vito333

Цитата:
обычное (самодельное) распознавание кодировки и перекодировка (средствами системы).

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

Цитата:
Нет, собака зарыта в сообщении EM_STREAMIN, SF_USECODEPAGE, и цифре 866.

Попробую собаку откопать.
Спасибо.

Добавлено
b]ShIvADeSt[/b]

Цитата:
Так как перенос слов всегда включаю.

Я как раз наоборот, поэтому даже не думал, что это может быть для кого-то так нелегко.
Все эти настройки были включены по-умолчанию, сочетание клавиш для выделения вертикального блока - стандартное.
Автор: vito333
Дата сообщения: 24.12.2004 17:01
ShIvADeSt

Цитата:
тройной клик мышью на строке выделяет всю строку


я ничего не делал - просто сам наткнулся на такую фичу ричедита и решил другим напомнить

Цитата:
Пофиксен, баги не замечены

ты только под ХР проверял?

Цитата:
странно что функция которую тебе посоветовал так криво работает

я её как-то раньше пробовал, но она восстанавливала имя, а путь оставался кривым. Мож я чего-то не так делал.

Цитата:
Однако запрети в окне предпросмотра удалять редактировать текст и сделай по возможности растяжение вниз при ресайзе, чтобы можно было считать что диалоги открытия сохранения закончены.

постараюсь

Цитата:
Блин, жалко что я ламер в С.

вот это точно! но никогда не поздно начать, попробуй, мож тебе понравится? я сам-то года два как, С++ еще так себе. Чуть подучишь, я думаю, это займет у тебя очень немного времени, и сам будешь того же марка переделывать как тебе угодно.

Пришла регистрация на форум бреда3 - сам спрошу клюга.

o22

Цитата:
Подожди, я так понял перекодировки как раз нет

куда же без нее

Цитата:
Во что-ты перекодируешь псевдографику, если ее в 1251 нет ?

в псевдографику

ты уж раскрывайся, что для чего, бум посоветовать конкретнее, что знаем


Добавлено
ShIvADeSt

Цитата:
Список ToDo внушает уважения

ну уж пришлось сделать, а то письма приходят - люди спрашивают, а вопросы то одни и те же - верт. блоки, подсветка и пр.

Добавлено
слова автора бреда2
-------------------------------------------------------------
Bred2 уходит в историю вместе с pascal и richedit...
Добавить unicode или исправить поиск в нем нельзя, не переделывая все.
Потому лучше было начать с нуля.
Тяжелая судьба у программы.
Но, надеюсь, черная полоса неудач позади.

Спасибо C++ и STL, за то что они есть
-------------------------------------------------------------
так что давай начинай С++ осваивать ))))
Автор: HumVee
Дата сообщения: 24.12.2004 18:27
vito333

Цитата:
как корректно дос-имя с "~" привести к нормальному имени?

Попробуй заюзать GetLongPathName().
Автор: gera_serg
Дата сообщения: 24.12.2004 21:32
vito333

Марк замерзает при попытке открыть почти 1 мег. txt файл в котором глобально проставлены знаки "мягкого" переноса (16-код AD)

На маленьком примере 1 кб, вижу, он их скрывает и высвечивает почесному только на изломе строки!
Видимо отсюда и тормоза.
Текстовому редактору не стоит скрывать "мягкий" перенос или делать это надо опционально

Автор: ShIvADeSt
Дата сообщения: 25.12.2004 02:21
HumVee

Цитата:
Попробуй заюзать GetLongPathName().

Ты где такую нашел? Есть GetFullPathName
извини, есть такая но почему то в MS SDK которое у меня стоит ее нету поискал в инете нашел описание.

Цитата:
ты только под ХР проверял?

Да, так 2K под рукой не было.
Сижу думаю, как получить полное имя файла.

Добавлено
vito333
проверь мыло, там реализация получения полного имени файла
Автор: vito333
Дата сообщения: 25.12.2004 05:18
gera_serg
скинь мне этот файл, только весь наверное не надо, кб 300-500 достаточно, запакуй и кинь - посмотрю

Добавлено

Цитата:
На маленьком примере 1 кб, вижу, он их скрывает и высвечивает почесному только на изломе строки!
Видимо отсюда и тормоза.
Текстовому редактору не стоит скрывать "мягкий" перенос или делать это надо опционально

а то мне это непонятно

Добавлено
[+] имена в ДОС-формате (8.3 - с "~") при открытии файла автоматически
преобразуются в имена в "длинном" формате, которые и отображаются
в заголовке окна и в меню последних открывавшихся файлов.
Также теперь корректно отображаются имена файлов на русском языке,
drag'n'drop-нутых в Total Commander-е под Windows 2000 из панели
Total-а на иконку Mark в application bar Total-а.
Total Commander передает в командной строке вместо
русских букв коды F5B8 и т.д. Соответственно заголовок окна и
вкладка (и, соответственно, строчка в списке последних файлов)
выглядели ранее так же убого.


Добавлено
ShIvADeSt
dвроде ростой пример, а чего-то я не въехал, как же он длинный путь получает.
Нашел другое решение - через SHGetPathFromIDList

Добавлено
о, второе решение от тебя как раз такое

Добавлено
чуть-чуть отличается - попробую свое урезать на пару байт ...

Добавлено
[!] изменено поведение окна предпросмотра в диалоге "Открыть"
[x] мелкие баги в работе диалога "Открыть" и окне предпросмотра.
Автор: ShIvADeSt
Дата сообщения: 25.12.2004 09:52

Цитата:
dвроде ростой пример, а чего-то я не въехал, как же он длинный путь получает.
Нашел другое решение - через SHGetPathFromIDList
Добавлено
о, второе решение от тебя как раз такое
Добавлено
чуть-чуть отличается - попробую свое урезать на пару байт ...

Используй третье, это то что доктор прописал, как советовали выше GetLongPathName. Пример давно лежит у тебя в ПМ. Только убери кусок для систем типа НТ4 и 95, тогда будет всего одна строчка.
Автор: vito333
Дата сообщения: 25.12.2004 14:28
HumVee
респект - самое короткое решение!


Добавлено
[+] настраиваемая ассоциация с типами файлов (Настройки->Интеграция->
Ассоциировать: )
Внимание! Придется перенастраивать Mark!
Автор: tolja
Дата сообщения: 25.12.2004 19:46
vito333
Об оформлении... Имхо неоправданно-широкая панель инструментов, диспропорция глаза режет...
Автор: vito333
Дата сообщения: 25.12.2004 19:50
ShIvADeSt
не начал С++?

Добавлено
tolja
посмотрю
Автор: vito333
Дата сообщения: 26.12.2004 16:58
[!] уменьшена высота тулбара
Автор: tolja
Дата сообщения: 26.12.2004 18:52
vito333

Цитата:
уменьшена высота тулбара

Спасибо, конечно, но... не стартует Mark, зависает в ''задачах'''...
Автор: ShIvADeSt
Дата сообщения: 27.12.2004 02:10

Цитата:
Спасибо, конечно, но... не стартует Mark, зависает в ''задачах'''...

А ты ветку реестра чистил после скачки новой версии? Автор писал
Цитата:
Внимание! Придется перенастраивать Mark!
Правда, почему то не уточнил, что надо для этого самим реестр чистить как и в предыдущем случае.

Цитата:
не начал С++?

Пока еще нет, после нового года наверное с силами собирусь и морально настроюсь

Добавлено
Кстати vito333 в окне ассоциаций оно слишком высокое, не смотриться диспропорции какие то, попробуй строку ввода укоротить и поднять ее, так что бы кнопки ок отмена были справа от нее, и поменяй их местами ок выше отмены, так привычнее.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Какой нужен формат?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.