[Logo] LUA Форум
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Messages posted by: smz
Forum Index » Profile for smz » Messages posted by smz
Author Message
В самом Lua такого нет, нужно использовать внешние библиотеки.
Варианты:
-- глянуть LuaPosix (хотя и не уверен, что там это есть).
-- воспользоваться библиотекой luaffi (или ffi из LuaJIT).
-- самому сделать библиотеку, делающую необходимые функции доступными из Lua.
Kumar wrote:Варианты решения описаны в документации к SWIG, но прикручивать libffi большого желания нет.
Есть другие идеи или решения?

В общем виде других решений не существует, так как вызов C-функции должен компилироваться.
А для Polyline как раз легко сделать с помощью цикла вызовов в C, добавляя каждый раз один отрезок линии.
(это моё последнее сообщение в данной теме)

"Странные" - в противовес "распространённым", "стандартным", "известным".
По крайней мере, во всех известных мне системах кодирования стрингов с экранированием (escaping), предусматривается экранирование самого экранирующего символа. В то же время я согласен с Erendir, что могут быть упрощённые системы (те, что я назвал доморощенными), где этого может и не требоваться. То же касается и кодирования пустых строк.
Выше было указано почему.
Erendir wrote:странно, но не невероятно. Например, внутри кавычек - исключительно фамилии. Там иногда могут встретится кавычки (д'Артаньян), но никогда "\".

Ну вот и договорились: выражение [['(.-[^\])']] таки будет работать, но только на странных (скорее всего - доморощенных) системах.
Erendir wrote:
возможность экранирования чего-либо, кроме одинарной кавычки не оговаривалась.

Было бы весьма странно, если бы экранирование самого символа экранирования не было предусмотрено, не так ли?
Erendir wrote:

Это не будет работать ни на строках типа:
то есть, оканчивающихся заэкранированным обратным слешем, ни на пустых:
Вот пример решения с использованием Lrexlib:
Регулярные выражения Lua недостаточно мощны для этой задачи.
Варианты решения:
-- написать парсер, анализирующий входной текст посимвольно
-- использовать внешнюю библиотеку (LPeg, Lrexlib и т.д)
Ниже следует пример с регистрацией до трёх Lua-функций (не тестировалось, но идея должна быть ясна). Измените данный код, чтобы вместо 3-х функций было 20 или 100 (т.е. максимально сколько вам может понадобиться).
Нужны дополнительные детали, а именно, допустим вам достаточно иметь только одну Lua-функцию - как будет выглядеть хэндлер? Дайте пример кода.
Возможно, что автор темы имел в виду такую постановку задачи: определить разбиение суммы на компоненты З, С и М таким образом, чтобы максимизировать З, затем максимизировать С, ну и для М - что останется.
В этом случае действительно есть единственное разбиение на составляющие:

Эта задача не имеет единственного решения, а имеет множество решений, поскольку имеется всего одно линейное уравнение с 3-мя неизвестными:

В общем случае, количество уравнений должно быть равно количеству неизвестных.

Поясню ещё примером: имеются банкноты 100-рублёвые и рублёвые, а также копеечные монеты. При этом сумму, например в 5000 рублей, можно получить огромным множеством способов из заданных трёх номиналов валюты.

Количество способов для данного примера легко подсчитать:
Книгу не читал. На Амазоне есть один комментарий на неё. Автор комментария оценил книгу в 3 балла по 5-балльной шкале. Книга явно не для начинающих. Однако, если вам хочется читать, то Lua-users wiki содержит огромное количество полезнейшего материала - и бесплатно.
Erendir wrote:Помогите найти либу вроде lfs, которая бы понимала, что D:\CH 漢語\DE üöäß\RU ёйцу\EN.txt -- это действительно файл, и он таки существует.

стандартный io, lfs, ex -- не работают.

Посмотрите на следующие проекты, может что-то и подойдёт:
1. LuaPlus.
2. Quylthulg. Только для Windows.
3. LuaFAR. Только для Windows. Внутри содержится модуль uio, который можно сделать отдельной библиотекой.
 
Forum Index » Profile for smz » Messages posted by smz
Go to:   
Powered by JForum 2.1.9 © JForum Team