Snusmumriken
Вообще, в именах папок слеш запрещён. А точка нет!
Snusmumriken
Тут есть очень много правил, и у разных ОС разные. Например под вендой запрещены имена для файлов и папок COM и ещё несколько других, потому что это резервные имена. Блин, просто открываешь RFC венды/линекса и делаешь по ним. А потом адаптируешь. ... Или берёшь готовую либу, где это сделали за тебя и для тебя.
Snusmumriken
Берёшь и вставляешь содержимое библиотеки себе в файл со скриптом, или только нужную его часть. Но вообще лучше отдельно.
Snusmumriken
ДАААА
Hello, World! 🎄
Не, это называется украсть код
Snusmumriken
Hello, World! 🎄
Я привык писать сам стараюсь писать сам где это возможно
Hello, World! 🎄
А что такого? Использовав библиотеку я просто буду использовать её api. А сделав сам с нуля я пойму как это работает изнутри.
Snusmumriken
И так очевидно как оно работает. Берёт и типично потрошит строчки учитывая всякие мелкие хернюшки конкретных ос. Ничему не научишься, и тем более не поймёшь почему пока не начнёшь всё прогугливать. Тупа унылый бойлерплейт.
Snusmumriken
Ладно )
Hello, World! 🎄
Ладно )
Лучше зацени мой редактор кода, в Love2d беседу скинул love архив
Snusmumriken
Видел )
Hello, World! 🎄
Я только, что минут 10 скинул обновленный
Snusmumriken
У него правда с первого же запуска был косячок
Snusmumriken
Он умеет только енглиш
Snusmumriken
Hello, World! 🎄
Он умеет только енглиш
Даааа) Это из-за string:sub скорее всего
Snusmumriken
Да, крайне желательно адаптировать под юникод
Hello, World! 🎄
Адаптирую попозже, у меня щас были баги с переносом строк, указателем на символ и т.д. Вроде всё пофиксил.
Hello, World! 🎄
Ну и самая важная проблема я написал спагетти код, надо будет потом в отдельные файлы переместить функции.
Snusmumriken
Базовый вариант — local utf8 = require'utf8' function utf8.sub(self, a, b) a = a and utf8.offset(self, a) b = b and utf8.offset(self, b + 1) a = a or 1; b = b and b - 1 or #self return self:sub(a, b) end
Hello, World! 🎄
А вот ещё интересный вопрос, как лучше сделать запуск кода в редакторе, через корутины?
Snusmumriken
Нет )
Snusmumriken
Через os.execute разумеется.
Hello, World! 🎄
Через os.execute разумеется.
Была такая проблема, что пока скрипт выполняется, он не выводит результат своего выполнения
Snusmumriken
Конечно
Hello, World! 🎄
Нужно как-то консоль читать
Snusmumriken
Тут ты приходишь к огромному пласту ОС-специфичной ерунды и сишки.
Igor
io.popen
Snusmumriken
Это то же самое буквально, для редактора.
Snusmumriken
Карочи, для начала у тебя есть start/fork для os.execute/io.popen.
Hello, World! 🎄
io.popen
У меня щас ls выполняется через него (для получения файлов в директории)
Snusmumriken
в луа сырые строки? O_o
Не строки а байты. Да. И это во многом прекрасно.
usernameak
Не строки а байты. Да. И это во многом прекрасно.
хотя я встречал некую странную реализацию, где строки обрабатывались как GB2312, при этом все эти функции понимали многобайтные чары
Hello, World! 🎄
Карочи, для начала у тебя есть start/fork для os.execute/io.popen.
В общем гляну как читать что выводит в строку запущеный процесс
Snusmumriken
хотя я встречал некую странную реализацию, где строки обрабатывались как GB2312, при этом все эти функции понимали многобайтные чары
Можно переопределить стандартную библиотеку string на работу с любой кодировкой. Но потеряется работа с байтами, увы.
usernameak
но я в итоге его выбросил, потому что от этого лезли какие-то непонятные баги
Snusmumriken
У меня на работе луа работает стандартными регулярками с 1251. Оно конечно однобайтное, но в регулярках шаблоны тянут кириллицу. Это кек.
Захар
1251 ещё не вымер
Snusmumriken
1251 ещё не вымер
Он всё ещё крайне удобен в куче мест, и за счёт однобайтности с ним крайне высокая скорость работы. Как с ascii.
usernameak
он путь и не однобайтный, но символы фиксированной длины :)
Snusmumriken
Когда ты делаешь базу данных в utf32, тебя убьёт начальник за сжирание всего места )
Захар
Лучше один раз переписать все на юникод, и забыть
Snusmumriken
На самом деле не важно. Юникод тянет за собой огро-о-о-омный пласт своих юникодных проблем, о которых ты даже не услышишь не работая с ним плотно. А на моей работе норм и 1251, вообще пофигу, всё что надо влезает, проблем нет. Наружу в utf8.
Snusmumriken
Это только одна из проблем.
usernameak
Snusmumriken
Другая проблема — композиция-декомпозиция, нормализация, попытки реверснуть комбинированные символы автоматически приводят к писосу, ещё много чего.
Захар
Копец в группе реакций нет
Захар
Как лайк поставить
usernameak
точнее она чаще не нужна, чем нужна
Snusmumriken
полная поддержка юникода нужна далеко не везде :)
Например, ты пишешь бота для телеги и хочешь фильтровать спам с сайтами. Пишешь регулярку. ОПАЧКИ СПАМЕР ЗАМЕНИЛ ТОЧКУ НА ПОХОЖУЮ ТОЧКУ ИЗ ДРУГОГО ЯЗЫКА и твой бот обсирается, потому что не умеет нормализовывать. А браузер её автоматом заменяет на нормальную и переходит куда надо спамеру.
Snusmumriken
Урлы сейчас легко состоят из юникода.
usernameak
Урлы сейчас легко состоят из юникода.
но там представление-то особое
Snusmumriken
Браузер его превращает автоматически. Ты переходишь по ссылке а ля ☃️.com и браузер делает остальную работу.
Snusmumriken
Прошу заметить, даже телега распознала ссылку.
usernameak
но распарсит ли оно не ту точку?
Snusmumriken
Распасит разумеется, потому что нормализует подобный текст. Если твой бот этого не умеет — он не справится с фильтрацией.
Snusmumriken
Карочи, это дичайше тёмная тема. В неё без подготовки не лезть.
usernameak
google․com
Snusmumriken
Хмм, эту точку браузер не распознал. Сейчас проверну с другими символами.
usernameak
Карочи, это дичайше тёмная тема. В неё без подготовки не лезть.
мне обычно для моих задач хватает отобразить текст какой-нибудь кириллицей и расширенной латиницей :)
Snusmumriken
Так и происходит, пока тебя не пытаются хакнуть.