October 2025
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
2/23/18 10:38 pm
Текстовый редактор FOTON для DOS
Охрененная софтина была для 1989 года. Макросы, возможность компиляции программ, не выходя из бассейна из редактора и множество передовых фишек для того времени. А самое главное, в нем есть одна штука, которой до сей поры нет ни в одном более современном текстовом редакторе. Выделение прямоугольных блоков текста! Которые можно переносить, вставлять и т.д. Вот нет такого больше нигде и все, а надо иногда. Причем настолько надо, что периодически пользуюсь сим олдовым произведением программерского искусства. Хоть сам бери и пиши редактор с подобной функцией, блин.UPD. Есть, оказывается. Не знаю насчет vim и emacs, правда, но Notepad++ делает как надо. И Far (по Аlt+стрелки). А вот Студия делает, но не совсем так.
Его собственная внутренняя демка: https://youtu.be/vc5ONlBnPrgСкачатьЭто репост с сайта http://tolik-punkoff.com Оригинал: http://tolik-punkoff.com/2018/02/23/tekstovyj-redaktor-foton-dlya-dos/
2/23/18, 09:10 pm
> одна штука, которой до сей поры нет ни в одном более современном текстовом редакторе. Выделение прямоугольных блоков текста!
Чего? Notepad++ и MSVS - Alt-Shift-стрелки vim - Ctrl-B и стрелки В имаксе тоже наверняка есть, там всё есть))
2/23/18, 09:28 pm
О как! А я и не знал...
Хотя Студия все равно нешмогла наставить нужное количество пробелов/табуляций, чтоб блок потом вставился точно так же "прямоугольно" и остался там, куда его вставили. А вот Notepad++ смог!
(Anonymous)
2/23/18, 11:47 pm
>Ctrl-B Ctrl-V тащемта >стрелки Убивать?
2/24/18, 09:55 am
Промахнулся, да
ой, ну кто сейчас hjkl пользуется?
(Anonymous)
2/24/18, 10:41 am
да вся хипстерня пользуется активно
https://www.youtube.com/watch?v=OnUiHLYZgaA https://www.youtube.com/watch?v=Nim4_f5QUxA
2/24/18, 12:13 pm
На лаптопных клавах hjkl таки удобнее. Еще скажи, что ^A^E никто не пользуется.
(Anonymous)
2/24/18, 12:43 pm
Если руки не на home row, vim просто уебательски неудобен, кмк.
2/23/18, 09:21 pm
>Выделение прямоугольных блоков текста! Которые можно переносить, вставлять и т.д.
Есть в Emacs и Vim. Однако совершенно ненужная штука. Для форматирования есть HTML.
2/23/18, 09:43 pm
Ага, выше написали.
Однако совершенно ненужная штука Нужная, и совершенно не для форматирования. Для форматирования и Word есть. Например, когда куча переменных присваивается соответствующим полям элементов управления в форме, а потом из этих элементов надо данные вытащить и куда-нибудь деть, в БД, например, записать.
Вон как тут например где в form_load устанавливаются значения параметров элемента управления, а по нажатию ОК наоборот.
2/24/18, 01:06 am
ага. это называется «i cannot into regular expressions, and my editor sucks cocks».
2/24/18, 01:27 am
Насчет редактора соглашусь, насчет регулярных выражений не уверен, можно, конечно, все контролы в цикле обойти через массив Controls, но чтоб регулярными выражениями Oo. И то, обход в цикле хорош, когда у тебя куча однотипных контролов, text- или checkbox'ы какие-нибудь и в таблицу не добавится какое-нибудь поле, или на форму контрол, что бывает.
2/24/18, 01:33 am
этот код вообще ужасен абсолютно весь, сверху донизу. пример того, как никогда не надо делать data binding.
2/24/18, 01:47 am
А что там такого ужасного, поясни, если не влом, мы подправим. Я, конечно, универ давно закончил, но Лешину программу вполне бы приняли на какой-нибудь практической :) Были там изначально проблемы и косяки, которые Леха сам подправить не мог, но я вроде исправил все.
Впрочем меня больше data binding интересует. Сам всегда так делал - из полей базы берем, в какие нужно переменные записываем, и обратно...
2/24/18, 02:22 am
>программу вполне бы приняли на какой‐нибудь практической тю. если человек умеет делать нормальный код, он не квасит яйца в универах. там учат дебилы, и принимают дебилы. в лучшем случае они отстали лет на сорок, но обычно всё проще, и они не умеют вообще нихуя.
>из полей базы берем, в какие нужно переменные записываем, и обратно вот как только в этой части появляется «руками» (а там всё, блджад, руками сделано), то можно заканчивать, и выгонять из профессии за профнепригодность. и да, использование языка, в котором нельзя отпердолить исходник во время компиляции не оправдание, а дополнительная гиря к профнепригодности.
hint: declarative programming. задача программера — описать маппинг полей в переменные. всё остальное должен сделать компилятор. НИКАКОГО ручного кода быть нахер не должно.
2/24/18, 02:56 am
там учат дебилы, и принимают дебилы Вот поэтому я и спрашиваю, про то, что ужасного в Лешином коде, это ж я его учил, а я программирую от случая к случаю и вообще дикий любитель, когда-то краем биографии зацепивший универ.
2/24/18, 03:04 am
если упростить, то так: когда есть больше одного места, которое надо поправить руками — год говнище. можно спокойно считать, что ты уже проебал какую‐то правку. если говноязык не умеет обрабатывать свой код на стадии компиляции — значит, должен быть генератор, который выплёвывает data bindings на основе декларативного описания. но НИКОГДА не должно быть ручной каши с правкой. потому что делать такое — работа для машины. человек не должен этим заниматься.
2/24/18, 04:39 am
Справедливости ради, контролы к DataSet и вправду можно прибиндить, а вот насчет самодельного класса типа "Задания" в исходнике, я хз. Я и контролы редко биндил, т.к. мне казалось, что нагляднее как раз в коде все сделать. Но мысль вообще правильная, надо посмотреть, как это все можно оптимизировать. Мне ж казалось, что что-то делается не так... Теперь ты меня в этом уверил.
2/24/18, 09:50 am
>можно, конечно, все контролы в цикле обойти через массив Controls,
Не можно, а нужно. То есть вместо всех этих однотипных присваиваний =false/=true вешаешь на контрол флаг, а дальше ANDишь его со значением состояния. И никаких ручных простыней.
2/25/18, 08:06 pm
Это более-менее ясно, хоть тут и немного не тот случай, в форму данные не непосредственно из БД загружаются, а из объекта.
А как вот с объектом быть, как в этой программе, например. Есть класс "Задание" с кучей полей, его описывающих. Состояние объекта сохраняется в DataSet, в классе, соответственно, есть две функции, FromDataSet и ToDataSet, которые забирают/сохраняют все нужные значения полей из/в БД, вот там куча ручных присваиваний и сидит...
2/27/18, 02:02 am
хм... интересно, надо проэкспериментировать.
Ой, чтоб два раза не вставать, может подскажешь. Решаем в четыре головы учебную задачку, че-то никто толком нормального решения не подсказал.
Необходимо написать программу, отображающую все символы заданной кодовой таблицы. С однобайтными кодировками просто. тыц В функции FillTable перебираю 256 байт, генерирую символ Encoding'ом. А как быть с многобайтными кодировками? Пробовал тупо брутфорсом все возможные варианты перебрать, но это получилось жутко долго, может есть способ как нибудь оптимизировать?
2/27/18, 10:16 pm
А что имеется в виду под кодовой таблицей в твоём случае?
То есть для однобайтовых это понятие имело смысл: у нас есть ограниченный набор кодов, которыми надо отобразить более широкий набор символов. Конкретный отображаемый набор и будет являться кодовой таблицей.
Впрочем, есть такие же многобайтовые кодовые таблицы для всякого мунспика -- типа Shift_JIS и GB18030. У них более хитрое устройство -- спецификацию гугли, я в это не лазил никогда
И есть разные варианты Юникода, начиная с UTF-8 и кончая USC-32, которые означают одно и то же, и которых столько, что ими кодировать можно хоть небо, хоть Аллаха. Там всё просто: так как доступное пространство кодировани огроменно, оно разбито на чарты, которые полностью или частично заняты символами. Их всегда можно найти тут: http://www.unicode.org/charts/
2/27/18, 11:28 pm
А что имеется в виду под кодовой таблицей в твоём случае? В моем случае имеется ввиду, что программа должна разобраться, какую кодировку вводит пользователь (в смысле пользователь вводит CodePage, которую принимает Encoding.GetEncoding, или выбирает из списка доступных) и отобразить все символы, которые только есть в виде таблицы, как я сделал в примере для однобайтовых. В принципе, начало положено. Однобайтовые можно отделить от других флагом IsSingleByte, с Юникодовскими я тоже примерно представляю как решить, взять диапазоны для чартов и каждый отображать отдельно.
Остается два вопроса 1. Как отделить варианты Юникода от других кодировок. Флага IsUnicode вроде нет, а как я понямаю, UTF-16, UTF-8, UTF-7 или UTF-32 кодируют одно и то же, только разными способами, посему набор символов один для всех. Можно эту самую страничку с charts прямо с сайта скачать и распарсить. На том же unicode.org вроде где-то был файлик в plaintext или csv с тем же содержимым. 2. Про многобайтовые CP для мунспиков. Или переложить на плечи студента пояснительную записку, по типу "а хз что это такое, спецификации на китайском", или как-то эффективно их "сбрутфорсить", отобразить все возможные комбинации. Получится что-то типа RAW-просмотра, но хоть что-то.
Да, препод ебнутый, студент тупой, мы случайно оказались "в ответе за того, кого приручили", к тому же желательно решить без лямбда-выражений, потому что и студент не дошел еще до них, и мы не сталкивались, и учебник у них столетний по .NET Framework 2.0
2/28/18, 06:51 pm
А вообще под виндой есть charmap, можешь там подсмотреть как сделано.
Студент хоть ебабельный? ;)
2/28/18, 10:03 pm
charmap немного не то, он выводит все символы заданного шрифта. По чармапам видел неплохие примеры на C#
К сожалению нет. Это пожилой и страшненький капитан какого-то второстепенного военного корыта. Он вроде даже на ЛЖР есть.
2/28/18, 10:37 pm
> он выводит все символы заданного шрифта Отнюдь нет. Если тыцнешь галочку advanced, то там как раз появится выпадающий список с кодовыми таблицами.
И, кстати, шрифт это весьма важный вопрос -- если у тебя есть символ, но нет отображающего его глифа, как ты его будешь показывать?
2/28/18, 11:39 pm
>Если тыцнешь галочку advanced Привязанный к данному шрифту. Если шрифт не может в Юникод, как Fixedsys, например, то комбобокс с выбором кодировки будет неактивен.
Важный, потому на этот случай должна быть возможность выбора шрифта (и уже сделана), а так же, какой-нибудь встроенный шрифт, умеющий в Юникод (т.к. Encoding все равно перекодирует все символы в Юникод, ЕМНИС UTF-16, и их уже использует в программе, в т.ч. и отображает).
2/24/18, 01:06 am
во‐первых, давайте не быть пидорашками. никакой это не «фотон», а обыкновенный старенький multiedit.
а во‐вторых, навалом. в FAR'е есть. в Delphi есть. в куче других редакторов есть вертикальные блоки. и что характерно: нигде они нахуй не нужны.
2/24/18, 01:35 am
никакой это не «фотон», а обыкновенный старенький multiedit И тут спиздили?
Да, в FAR'е оказалось, есть, а я со времен DOS все фотон этот с собой специально для этого таскал :)
2/24/18, 02:14 am
спиздили, и ещё как: все копирайты затёрли к хуям, и вписали свои. а ты думал, денис попов — это так, школьник? хуй там плавал! это multiedit 2 или multiedit 3.
(Anonymous)
2/24/18, 06:37 am
Нужны. Но редко. Но когда нужны, просто до усрачки.
(Anonymous)
2/24/18, 03:06 am
С днем советской армии!
https://ic.pics.livejournal.com/chlentochka/84308165/291/291_original.jpg https://ic.pics.livejournal.com/chlentochka/84308165/585/585_original.jpg https://ic.pics.livejournal.com/chlentochka/84308165/964/964_original.jpg
2/24/18, 04:41 am
Re: С днем советской армии!
Блядь, это не то, чтоб репост. Это прямо настоящая БIМБА!
(Anonymous)
2/24/18, 10:52 am
>Не знаю насчет vim
ой блядь чего ты там не знаешь? ну сказали же тебе: есть в виме, есть
https://www.youtube.com/watch?v=KuLy5LzHEzU
2/25/18, 08:17 pm
есть и есть, ок. Я не знаю, не пользовался никогда потому что, и нет их у меня.
3/1/18, 06:40 pm
Прямоугольные блоки умел не только Фотон. Сам Фотон я запускал олин раз. Почему-то не впечатлило...
3/2/18, 01:11 am
А меня впечатлили изначально именно что прямоугольные блоки. Дико помогали с простынями на ассемблере под DOS, потом с запросами к пизданутым БД вроде Парадокса, еще с чем-то. В общем, так и таскал до недавнего времени с собой. А, еще первые HTML-странички на нем создавал, наделал макросов по вставке тегов, правда не найду сейчас, сто лет и два сгоревших компа назад было.
|