SciTE

Страницы: 1
RSS
SciTE
 
Здравствуйте. Хотелось бы узнать, можно ли в SciTE вывести содержимое одномерного массива в формате одно значение за другим "в линию", а не каждое значение на новой строке? Если можно, то как?
 
Уточните, как именно вы сейчас выводите значения, что они у вас оказываются в SciTE?
 
Цитата
swerg написал:
Уточните, как именно вы сейчас выводите значения, что они у вас оказываются в SciTE?
Я именно в SciTE и работаю, не QLUA.  
 
t={1,2,3,4}
print(table.concat(t,";"))
--------------------
результат:
1;2;3;4
 
Цитата
Николай Камынин написал:
t={1,2,3,4}
print(table.concat(t,";"))
--------------------
результат:
1;2;3;4
Спасибо. А для двумерного массива есть что-то подобное?
 
t={{"a","b"},{1,2,3,4}}
table.foreach(t, function (k,v) print(table.concat(v, ";")) end)
 
Цитата
swerg написал:
t={{"a","b"},{1,2,3,4}}
table.foreach(t, function (k,v) print(table.concat(v, ";")) end)
Спасибо Вам большое!
 
Добрый день!
Возможно кто-то уже сталкивался с подобно проблемой, и знает как исправить, подскажите?

Вот суть: Пользуюсь SciTE с незапамятных времен, и все меня в нем устраивало, кроме одного с переводом скриптов для использования в среде lua 5.4, стало неудобно пользоваться внутренним интерпретатором SciTE, так как SciTE использует lua 5.1. Оказалось простым усовершенствованием не обойтись, скачал SciTE RU-Board 3.55.102 в надежде что данная версия поддерживает lua 5.4, На деле оказалось lua 5.1. Почитал вот тут https://forum.script-coding.com/viewtopic.php?id=680. "Вообще, команды меню Tools "Компилировать (Ctrl+F7)", "Собрать (F7)" и "Выполнить (F5)" определяются параметрами command.compile, command.build и command.go в файлах .properties для соответствующих языков.
Т.е. можно задать абсолютно любую командную строку, которая выполнится при нажатии на эти клавиши, ..." Решение данной проблемы можно свести к добавлению в SciTE внешний интерпретатор языка Lua 5.4. "Работа в русской сборке SciTE с внешним интерпретатором языка Lua, таким, как Lua для Windows".
Добавил код в файл lua.properties, использовал инструкцию из данной заметки:
"Команду сборки по F7 можно откорректировать следующим образом:"
Код
# Команда меню - Собрать (F7)
# выполняем скрипт lua внешним интерпретатором
command.build.*.lua=lua "$(FilePath)"
command.build.*.wlua="$(FilePath)"
command.build.subsystem.*.wlua=2
"Таким образом, подсветка языка Lua будет и у .lua, и у .wlua. Файлы .lua будут запускаться по F5 встроенным способом, а по F7 — внешним интерпретатором".
На деле, после нажатия F7 и выполнение команды print(_VERSION), получаю вывод: "Lua 5.1" Понятно что не находит путь, где лежит lua 5.4, а как исправить не понимаю, подскажите, наверняка будет полезно не только мне.
 
Код
# Lua 5.4
command.go.*.lua=D:/lua54/lua54.exe -e "io.stdout:setvbuf 'no'" "$(FileNameExt)"
command.compile.*.lua=D:/lua54/luac54.exe -o "$(FileName).luac" "$(FileNameExt)"
 
nikolz, С компиляцией порядок, она на своем месте и вызывается из директории  SciTE.exe, в моем случае вот код
Код
# Команда меню - Компилировать (Ctrl+F7) Lua 5.4 
command.compile.*.lua="Lua-5.4.1\luac.exe" -s -o "$(FileName).luac" "$(FileNameExt)"
Ваш вариант вызова на прямую
Код
# Lua 5.4
command.go.*.lua=D:/lua54/lua54.exe -e "io.stdout:setvbuf 'no'" "$(FileNameExt)"
у меня сразу не проходит, вот ответ "Lua: error checking global scope for command"
Сбросил в директории  SciTE.exe файлы Lua 5.4 так работает,  "Выполнить (F5)" = Lua 5.1   и "Собрать (F7)" = Lua 5.4, правда во втором варианте не работает кодировка (идут кракозябры)
 
Сейчас вот такой вариант
Код
# Команда меню - Собрать (F7)
# Скрипт выполняется внешним интерпретатором
command.build.*.lua=lua -e "io.stdout:setvbuf 'no'" "$(FilePath)" $(1) $(2) $(3) $(4)
command.build.*.wlua="$(FilePath)" $(1) $(2) $(3) $(4)
command.build.subsystem.*.wlua=2
 
Скорее всего на прямую и нельзя, один и тот же код, выводит:

1 Вариант в среде 5.1
thread: 02AE4A58

2 Вариант в среде 5.4
thread: 00000000025ad4e8

Хотя может чего-то и не понимаю?
 
Цитата
VPM написал:
Скорее всего на прямую и нельзя, один и тот же код, выводит:

использую лишь компилировать и выполнить(Lua 5.3. )
это исполнение теста(получение данных с биржи):
Код
>D:/lua53/lua53.exe -e "io.stdout:setvbuf 'no'" "Moex.lua" 
engines

id;name;title
1;stock;Фондовый рынок и рынок депозитов
2;state;Рынок ГЦБ (размещение)
3;currency;Валютный рынок
4;futures;Срочный рынок
5;commodity;Товарный рынок
6;interventions;Товарные интервенции
7;offboard;ОТС-система
9;agro;Агро
1012;otc;ОТС с ЦК
1282;quotes;Квоты

markets

id;trade_engine_id;trade_engine_name;trade_engine_title;market_name;market_title;market_id;marketplace;is_otc;has_history_files;has_history_trades_files;has_trades;has_history;has_candles;has_orderbook;has_tradingsession;has_extra_yields;has_delay
5;1;stock;Фондовый рынок и рынок депозитов;index;Индексы фондового рынка;5;INDICES;0;1;0;1;1;1;0;1;0;0
1;1;stock;Фондовый рынок и рынок депозитов;shares;Рынок акций;1;MXSE;0;1;1;1;1;1;1;1;0;1
2;1;stock;Фондовый рынок и рынок депозитов;bonds;Рынок облигаций;2;MXSE;0;1;1;1;1;1;1;1;1;1

это компиляция:
Код
>D:/lua53/luac53.exe -o "Moex.luac" "Moex.lua"
>Exit code: 0

Не понял, что у Вас не получается.
-----------------
Я так же запускаю и компилирую скрипты на LuaJit,  terra, julia, ravi
 
Немного не в тему, но все же я не очень понимаю зачем использовать встроенную команду компиляции. Это не считая самого редактора SciTE как такового. Он, по сути, простой блокнот.
Я скрипты компилирую через терминал, с использованием специально написанного (на том же Lua) скрипта компиляции. У меня проект - это много файлов, каждый раз разные зависимости. Руками это компилировать?

А что касается среды разработки, то она нужна для контроля качества кода, обязательной поддержкой Git, переходам между модулями, определениями методов, проверки на ошибки кода. А если пишешь на чистом Lua, то чтобы была и отладка. В этом плане ZeroBrane Studio, как редактор Lua, лучше. И это не считая Vim, Emac, VSCode, IntelliJ IDEA, lite,  А если редактор - это просто подсветка синтаксиса, то для Windows гораздо проще использовать Notepad++
 
В SciTE, ну по крайней мере до версии указанной выше, в качестве внутреннего интерпретатора, используется Lua 5.1, и ее нельзя просто заменить на версию Lua 5.4. В статье выше был предложен вариант использования внешнего интерпретатора  в моем случае это Lua 5.4, для этого был скачен бинарные файлы для виндовс и сброшены в директорию где стоит SciTE. SciTE позволяет это дело автоматизировать, все манипуляции с вести к простому нажатию кнопочек (меню Tools "Компилировать", "Собрать" и "Выполнить").
Нажатие "Выполнить" запускает скрипт во  внутреннем интерпретатор, т.е. используется Lua 5.1
Нажатие "Компилировать" запускает компилятор внешнего интерпретатора, т.е. используется Lua 5.4
Нажатие "Собрать" должен запустить скрипт во  внешнем интерпретаторе, т.е. используя Lua 5.4
Это просто удобно, написал скрипт и простыми нажатиями делаешь проверки в разных средах. Сложности Возникают при вызове среды Lua 5.4 (3 задача), Сейчас код исполняется но куда то поддержка кодировки во внутреннем есть во внешнем нет.
Код
# Команда меню - Выполнить (F5)
# Скрипт запускается с помошью внутреннего интерпретатора Lua и вывод направляется в встроенную консоль
command.go.*.lua;*.macro=dofile $(FilePath)
command.go.subsystem.*.lua;*.macro=3

# Команда меню - Собрать (F7)
# Скрипт выполняется внешним интерпретатором
command.build.*.lua=lua -e "io.stdout:setvbuf 'no'" "$(FilePath)" $(1) $(2) $(3) $(4)
command.build.*.wlua="$(FilePath)" $(1) $(2) $(3) $(4)
command.build.subsystem.*.wlua=2
nikolz, Тут видимо дело в версиях, в Lua 5.3 есть поддержка Lua 5.1, а Lua 5.4 уже нет такой поддержки, да и изменения есть серьезные, которые не поддерживаются в ранних версиях.
Nikolay,  Так ведь просто удобно, нажал кнопочку и привет. Потом просто привычка, быстрая проверка кода, не отходя от "кассы".
Цитата
Nikolay написал:
Руками это компилировать?
Зачем руками собрали проект, нажали кнопку, Все. Не могу судить среды разработчиков, пробовал только VSCode, Notepad++. Первый сложный, второй не удобный, а тут блокнот со своей средой разработки супер!
 
Цитата
VPM написал:
Так ведь просто удобно, нажал кнопочку и привет. Потом просто привычка, быстрая проверка кода, не отходя от "кассы".
Это, возможно, удобно если проект - это один файл. А если проект - это несколько каталогов с десятками файлов, при этом каждый проект использует разные, то уже все не так удобно. Хотя если command.build позволяет запустить свой скрипт сборки, то возможно. Хотя я все одно не вижу преимуществ перед ZeroBrane Studio. VSCode настолько прост, что даже не очень понятно, что может быть сложным.
 
Nikolay,  Воспользуюсь случаем, слетела русификация после обновления VSCode, не подскажете где копать?
 
[QUOTE]VPM написал:
В SciTE, ну по крайней мере до версии указанной выше, в качестве внутреннего интерпретатора, используется Lua 5.1, и ее нельзя просто заменить на версию Lua 5.4. В статье выше был предложен вариант использования внешнего интерпретатора  в моем случае это Lua 5.4, для этого был скачен
Код
[/CODE] [URL=/user/62/]nikolz[/URL], Тут видимо дело в версиях, в Lua 5.3 есть поддержка Lua 5.1, а Lua 5.4 уже нет такой поддержки, да и изменения есть серьезные, которые не поддерживаются в ранних версиях.
[URL=/user/3132/]Nikolay[/URL],  Так ведь просто удобно, нажал кнопочку и привет. Потом просто привычка, быстрая проверка кода, не отходя от "кассы". [QUOTE]
[/QUOTE]
[/QUOTE]
вот запускаю скрипт в lua5.4  Он работает и в lua 5.3 и и lua5.1[CODE]>D:/lua54/lua54.exe -e "io.stdout:setvbuf 'no'" "test2020.lua" 
>Exit code: 0
Код
>D:/lua54/luac54.exe -o "test2020.luac" "test2020.lua"
>Exit code: 0
можете выложить Ваш скрипт я его проверю в 5.3 и 5.4
 
Код
>D:/lua54/lua54.exe -e "io.stdout:setvbuf 'no'" "test2020.lua" 
>Exit code: 0
>D:/lua54/luac54.exe -o "test2020.luac" "test2020.lua"
>Exit code: 0
 
Код
>D:/lua54/lua54.exe -e "io.stdout:setvbuf 'no'" "test2020.lua" 
>Exit code: 0
>D:/lua54/luac54.exe -o "test2020.luac" "test2020.lua"
>Exit code: 0

>D:/lua53/lua53.exe -e "io.stdout:setvbuf 'no'" "test2020.lua" 
>Exit code: 0
>D:/lua53/luac53.exe -o "test2020.luac" "test2020.lua"
>Exit code: 0
 
nikolz,  print(_VERSION)
 
Lua 5.1 - ответ внутреннего

>lua -e "io.stdout:setvbuf 'no'" "Безымянный0.lua"    
Lua 5.4  -ответ внешнего
>Exit code: 0    Time: 0.1171

Но это в коде опубликованном выше. Этот вариант подходит, нужно с кодировкой разобраться в консоль выводов "кракозябры" идут во втором варианте.
 
Цитата
VPM написал:
Nikolay,  Воспользуюсь случаем, слетела русификация после обновления VSCode, не подскажете где копать?
Я никогда не использовал русскую локаль в любой среде разработки. Это на самом деле очень неудобно.
Но есть стандартная инструкция https://code.visualstudio.com/docs/getstarted/locales
Надо просто установить необходимый Language Pack.
 
Цитата
Nikolay написал:
Я скрипты компилирую через терминал, с использованием специально написанного (на том же Lua) скрипта компиляции. У меня проект - это много файлов, каждый раз разные зависимости. Руками это компилировать?
А результатом становится один luac файл и все require внутри него ведут каким-то образом внутрь него же, или дерево luac файлов и все require находят модули в сгенерированном дереве, или ещё как?
 
Цитата
funduk написал:
А результатом становится один luac файл и все require внутри него ведут каким-то образом внутрь него же, или дерево luac файлов и все require находят модули в сгенерированном дереве, или ещё как?
Я формирую дерево файлов - этакий комплект поставки. Мне так удобней. Но можно использовать скрипт, формирующий один большой итоговый файл. Правда тогда и подход к написанию должен быть учитывающий это, т.к. локальное объявление функций и переменных окружения может создать проблемы.
 
Цитата
Nikolay написал:
Но есть стандартная инструкция  https://code.visualstudio.com/docs/getstarted/locales Надо просто установить необходимый Language Pack.
Спасибо!
 
Цитата
VPM написал:
print(_VERSION)
это "тест24.lua"
Код
print(_VERSION)
исполнение 5.4:
Код
>D:/lua54/lua54.exe -e "io.stdout:setvbuf 'no'" "tes24.lua" 
Lua 5.4
>Exit code: 0
исполнение 5.3
Код
>D:/lua53/lua53.exe -e "io.stdout:setvbuf 'no'" "tes24.lua" 
Lua 5.3
>Exit code: 0
исполнение Luajit( это 5.1)
Код
>D:/LuaJIT210/luajit.exe -e "io.stdout:setvbuf 'no'" "tes24.lua" 
Lua 5.1
>Exit code: 0
 
nikolz,  А код scite полностью покажите.  
 
Цитата
VPM написал:
nikolz,  А код scite полностью покажите.  
так я его не писал. Есть на официальном сайте.
Работаю в основном на этой :
SciTE
Version 1.75
   Apr 25 2009 11:30:59
by Neil Hodgson.
December 1998-November 2007.
http://www.scintilla.org
Lua scripting language by TeCGraf, PUC-Rio
   http://www.lua.org
--------------------
но есть эта:
SciTE
Version 3.7.5
   Jan 16 2023 18:01:44
by Neil Hodgson.
December 1998-May 2017.
http://www.scintilla.org
Lua scripting language by TeCGraf, PUC-Rio
   http://www.lua.org
 
nikolz,  Я не совсем корректно выразился
Цитата
VPM написал:
nikolz,  А код scite полностью покажите.  
Имеется в виду строки, где вызываются разные версии Lua, в моем варианте это
command.go.*.lua;*.macro=dofile $(FilePath)
command.go.subsystem.*.lua;*.macro=3
 
Цитата
VPM написал:
nikolz,  Я не совсем корректно выразился  
Цитата
VPM написал:
nikolz ,  А код scite полностью покажите.  
Имеется в виду строки, где вызываются разные версии Lua, в моем варианте это
command.go.*.lua;*.macro=dofile $(FilePath)
command.go.subsystem.*.lua;*.macro=3
файл    lua.properties
фрагмент из него
запишите в конец файла:
Код
# Lua 5.4
command.go.*.lua=D:/lua54/lua54.exe -e "io.stdout:setvbuf 'no'" "$(FileNameExt)"
command.compile.*.lua=D:/lua54/luac54.exe -o "$(FileName).luac" "$(FileNameExt)"
# Lua 5.3
#command.go.*.lua=D:/lua53/lua53.exe -e "io.stdout:setvbuf 'no'" "$(FileNameExt)"
#command.compile.*.lua=D:/lua53/luac53.exe -o "$(FileName).luac" "$(FileNameExt)"

 
nikolz,  Спасибо, только не понятно где переключаете, и где и как подключается путь к исполняемому файлу луа разных версий?
 
Цитата
VPM написал:
nikolz,  Спасибо, только не понятно где переключаете, и где и как подключается путь к исполняемому файлу луа разных версий?
версия  луа определяется моими dll.  
У меня сейчас dll собраны под 5.3, то работаю с 5.3
Поэтому для  lua версии переключаю редко и руками, переставляя #.
-----------------------
Для других языков, а также Luajit переключаю расширением.
Можно и версии луа переключать расширением.
 
Miracles happen - participate and test your luck!
Страницы: 1
Читают тему
Наверх