Здравствуйте. Хотелось бы узнать, можно ли в SciTE вывести содержимое одномерного массива в формате одно значение за другим "в линию", а не каждое значение на новой строке? Если можно, то как?
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
18.02.2016 20:39:10
Уточните, как именно вы сейчас выводите значения, что они у вас оказываются в SciTE?
Пользователь
Сообщений: Регистрация: 26.11.2015
18.02.2016 21:05:59
Цитата
swerg написал: Уточните, как именно вы сейчас выводите значения, что они у вас оказываются в SciTE?
Николай Камынин написал: t={1,2,3,4} print(table.concat(t,";")) -------------------- результат: 1;2;3;4
Спасибо. А для двумерного массива есть что-то подобное?
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
19.02.2016 06:11:58
t={{"a","b"},{1,2,3,4}} table.foreach(t, function (k,v) print(table.concat(v, ";")) end)
Пользователь
Сообщений: Регистрация: 26.11.2015
19.02.2016 09:06:29
Цитата
swerg написал: t={{"a","b"},{1,2,3,4}} table.foreach(t, function (k,v) print(table.concat(v, ";")) end)
Спасибо Вам большое!
Пользователь
Сообщений: Регистрация: 15.06.2023
13.05.2024 16:18:59
Добрый день! Возможно кто-то уже сталкивался с подобно проблемой, и знает как исправить, подскажите?
Вот суть: Пользуюсь SciTE с незапамятных времен, и все меня в нем устраивало, кроме одного с переводом скриптов для использования в среде lua 5.4, стало неудобно пользоваться внутренним интерпретатором SciTE, так как SciTE использует lua 5.1. Оказалось простым усовершенствованием не обойтись, скачал SciTE RU-Board 3.55.102 в надежде что данная версия поддерживает lua 5.4, На деле оказалось lua 5.1. Почитал вот тут . "Вообще, команды меню Tools "Компилировать (Ctrl+F7)", "Собрать (F7)" и "Выполнить (F5)" определяются параметрами command.compile, command.build и command.go в файлах .properties для соответствующих языков. Т.е. можно задать абсолютно любую командную строку, которая выполнится при нажатии на эти клавиши, ..." Решение данной проблемы можно свести к добавлению в SciTE внешний интерпретатор языка Lua 5.4. "Работа в русской сборке SciTE с внешним интерпретатором языка Lua, таким, как Lua для Windows". Добавил код в файл lua.properties, использовал инструкцию из данной заметки: "Команду сборки по F7 можно откорректировать следующим образом:"
"Таким образом, подсветка языка Lua будет и у .lua, и у .wlua. Файлы .lua будут запускаться по F5 встроенным способом, а по F7 — внешним интерпретатором". На деле, после нажатия F7 и выполнение команды print(_VERSION), получаю вывод: "Lua 5.1" Понятно что не находит путь, где лежит lua 5.4, а как исправить не понимаю, подскажите, наверняка будет полезно не только мне.
у меня сразу не проходит, вот ответ "Lua: error checking global scope for command" Сбросил в директории SciTE.exe файлы Lua 5.4 так работает, "Выполнить (F5)" = Lua 5.1 и "Собрать (F7)" = Lua 5.4, правда во втором варианте не работает кодировка (идут кракозябры)
Скорее всего на прямую и нельзя, один и тот же код, выводит:
1 Вариант в среде 5.1 thread: 02AE4A58
2 Вариант в среде 5.4 thread: 00000000025ad4e8
Хотя может чего-то и не понимаю?
Пользователь
Сообщений: Регистрация: 30.01.2015
14.05.2024 10:34:55
Цитата
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
Не понял, что у Вас не получается. ----------------- Я так же запускаю и компилирую скрипты на LuaJit, terra, julia, ravi
Пользователь
Сообщений: Регистрация: 27.01.2017
14.05.2024 10:56:44
Немного не в тему, но все же я не очень понимаю зачем использовать встроенную команду компиляции. Это не считая самого редактора SciTE как такового. Он, по сути, простой блокнот. Я скрипты компилирую через терминал, с использованием специально написанного (на том же Lua) скрипта компиляции. У меня проект - это много файлов, каждый раз разные зависимости. Руками это компилировать?
А что касается среды разработки, то она нужна для контроля качества кода, обязательной поддержкой Git, переходам между модулями, определениями методов, проверки на ошибки кода. А если пишешь на чистом Lua, то чтобы была и отладка. В этом плане ZeroBrane Studio, как редактор Lua, лучше. И это не считая Vim, Emac, VSCode, IntelliJ IDEA, lite, А если редактор - это просто подсветка синтаксиса, то для Windows гораздо проще использовать Notepad++
Пользователь
Сообщений: Регистрация: 15.06.2023
14.05.2024 12:01:52
В 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, Так ведь просто удобно, нажал кнопочку и привет. Потом просто привычка, быстрая проверка кода, не отходя от "кассы".
Зачем руками собрали проект, нажали кнопку, Все. Не могу судить среды разработчиков, пробовал только VSCode, Notepad++. Первый сложный, второй не удобный, а тут блокнот со своей средой разработки супер!
Пользователь
Сообщений: Регистрация: 27.01.2017
14.05.2024 12:36:03
Цитата
VPM написал: Так ведь просто удобно, нажал кнопочку и привет. Потом просто привычка, быстрая проверка кода, не отходя от "кассы".
Это, возможно, удобно если проект - это один файл. А если проект - это несколько каталогов с десятками файлов, при этом каждый проект использует разные, то уже все не так удобно. Хотя если command.build позволяет запустить свой скрипт сборки, то возможно. Хотя я все одно не вижу преимуществ перед ZeroBrane Studio. VSCode настолько прост, что даже не очень понятно, что может быть сложным.
Пользователь
Сообщений: Регистрация: 15.06.2023
14.05.2024 12:47:54
Nikolay, Воспользуюсь случаем, слетела русификация после обновления VSCode, не подскажете где копать?
Пользователь
Сообщений: Регистрация: 30.01.2015
14.05.2024 12:48:31
[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
Но это в коде опубликованном выше. Этот вариант подходит, нужно с кодировкой разобраться в консоль выводов "кракозябры" идут во втором варианте.
Пользователь
Сообщений: Регистрация: 27.01.2017
14.05.2024 13:14:55
Цитата
VPM написал: , Воспользуюсь случаем, слетела русификация после обновления VSCode, не подскажете где копать?
Я никогда не использовал русскую локаль в любой среде разработки. Это на самом деле очень неудобно. Но есть стандартная инструкция Надо просто установить необходимый Language Pack.
Пользователь
Сообщений: Регистрация: 20.03.2023
14.05.2024 13:32:03
Цитата
Nikolay написал: Я скрипты компилирую через терминал, с использованием специально написанного (на том же Lua) скрипта компиляции. У меня проект - это много файлов, каждый раз разные зависимости. Руками это компилировать?
А результатом становится один luac файл и все require внутри него ведут каким-то образом внутрь него же, или дерево luac файлов и все require находят модули в сгенерированном дереве, или ещё как?
Пользователь
Сообщений: Регистрация: 27.01.2017
14.05.2024 13:36:42
Цитата
funduk написал: А результатом становится один luac файл и все require внутри него ведут каким-то образом внутрь него же, или дерево luac файлов и все require находят модули в сгенерированном дереве, или ещё как?
Я формирую дерево файлов - этакий комплект поставки. Мне так удобней. Но можно использовать скрипт, формирующий один большой итоговый файл. Правда тогда и подход к написанию должен быть учитывающий это, т.к. локальное объявление функций и переменных окружения может создать проблемы.
Пользователь
Сообщений: Регистрация: 15.06.2023
14.05.2024 13:50:09
Цитата
Nikolay написал: Но есть стандартная инструкция Надо просто установить необходимый Language Pack.
так я его не писал. Есть на официальном сайте. Работаю в основном на этой : SciTE Version 1.75 Apr 25 2009 11:30:59 by Neil Hodgson. December 1998-November 2007.
Lua scripting language by TeCGraf, PUC-Rio
-------------------- но есть эта: SciTE Version 3.7.5 Jan 16 2023 18:01:44 by Neil Hodgson. December 1998-May 2017.
Имеется в виду строки, где вызываются разные версии Lua, в моем варианте это command.go.*.lua;*.macro=dofile $(FilePath) command.go.subsystem.*.lua;*.macro=3
Имеется в виду строки, где вызываются разные версии Lua, в моем варианте это command.go.*.lua;*.macro=dofile $(FilePath) command.go.subsystem.*.lua;*.macro=3
файл lua.properties фрагмент из него запишите в конец файла:
nikolz, Спасибо, только не понятно где переключаете, и где и как подключается путь к исполняемому файлу луа разных версий?
Пользователь
Сообщений: Регистрация: 30.01.2015
18.05.2024 06:53:02
Цитата
VPM написал: , Спасибо, только не понятно где переключаете, и где и как подключается путь к исполняемому файлу луа разных версий?
версия луа определяется моими dll. У меня сейчас dll собраны под 5.3, то работаю с 5.3 Поэтому для lua версии переключаю редко и руками, переставляя #. ----------------------- Для других языков, а также Luajit переключаю расширением. Можно и версии луа переключать расширением.