1

Тема: Разбиение строки на слова в lua

Вывожу файл в окошко conky через lua-скрипт такой конструкцией:

...
i=0
for line in io.lines(fname) do
text(cr, 12, 23+2*fontsize+i*(fontsize+3), line, 'Liberation Mono', fontsize, 0xffffff, 1, 0)
i=i+1
end
...

, где text - функция вывода (её не привожу, бо она тут ни при чём).

Для решения задачи выравнивания текста по ширине необходимо разбить строку line на слова по разделителю " ". Моих знаний, к сожалению, не хватает. Подскажите, как выделить слово из строки?

Спасибо за внимание.

2 (06.03.2013 17:43 отредактировано piyavking)

Re: Разбиение строки на слова в lua

Опять кириллица даёт стране угля:

...

     s = "hello world from lua"

     for w in string.gmatch(s, "%a+") do
# ...строка прекрасно разбивается на слова
     end

     s = "кириллическая строка не читается"

     for w in string.gmatch(s, "%a+") do
#...всё печально
     end

...

3

Re: Разбиение строки на слова в lua

Dr. Horrible пишет:
piyavking пишет:

Опять кириллица даёт стране угля:

...

     s = "hello world from lua"

     for w in string.gmatch(s, "%a+") do
# ...строка прекрасно разбивается на слова
     end

     s = "кириллическая строка не читается"

     for w in string.gmatch(s, "%a+") do
#...всё печально
     end

...

А на кой хрен тебе там кириллица? Патриот что ли? Если настолько нужна кириллица, напиши небольшую таблицу+функцию да переводи стринг на русский в конце всего рассчета.

Всё норм, 'for w in string.gmatch(line, "%S+") do' решило.