WheatComp
-
Публикации
59 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем WheatComp
-
-
@ECS следующий код дает ошибку:
local filesystem = require("filesystem") local fs = component.filesystem filesystem.close() fs.close() su = fs.spaceUsed() print(su)
-
@ECS spaceUsed() все время показывает 512, хотя добавил в директорию диска 2 файла по 1 Мб. Как бы обновить показания?
-
6 часов назад, ECS сказал:Я одного не пойму: почему тебя так зацепило это явление, неужели оно создаёт настолько серьёзные проблемы?
Радикального отношения нет, просто расстроился, не сумев создать и сохранить файл на диск. Какая-то таблица появляется, вместо файла. А тут еще и filesystem проблемы подкидывает.
6 часов назад, ECS сказал:Схожая путаница возникает между java.nio.file и java.io.file. Эт норма))0
Ну ладно, что поделаешь, вот так и живем.
зы: файл удалось сохранить. Пытался по этой инструкции делать, оказалось, w нужно брать в кавычки:
file = io.open('TEST.txt', "w")
Без кавычек не работает.
-
6 часов назад, eu_tomat сказал:Кто свалил? В какую-такую одну кучу? Пока что это выглядит как разные кучи. Есть component.filesystem, а есть require("filesystem"). Это разные объекты
Если это разные объекты, то почему они называются одинаково? Пока что выглядит так, что один объект лежит в двух разных кучах.
6 часов назад, eu_tomat сказал:Это проблема лежит за пределами ответственности авторов мода. Да и не ахти какая это проблема
Я понимаю, что все сообщество будет сопротивляться такому изменению, ведь придется переписать тучу кода. А удобочитаемость... ну её.
-
18 часов назад, ECS сказал:ообще с одной стороны ты прав, и путаница имеет место быть. А с другой - наверняка нашлись бы недовольные альтернативной реализацией, дескать, "А чо у вас компонент зовётся filesystem, а API disksystem? Дискеты - ето уже диски? Сложна!1"
Вот-вот. Можно выделить, что к чему относится: robot_com, robot_api. В программировании максимальная точность только помогает и делает код более читаемым. Если видишь, например, filesystem_api, сразу понятно, что это не к компоненту относится. Всего 3 буквы добавили, а такая ясность наступает. Это же нужно только один раз в начале программы писать, а не по 10 раз. А так все в одну кучу свалили, "пусть разбираются".
-
@eu_tomat ну или хотя бы назвать по-разному, например, disksystem для одного компонента и filesystem для сборной файловой системы. По-моему, это единственный компонент, который можно включать в программу и через точку и через require. А если назвать одинаково, есть высокие шансы, что юзеры запутаются. Не совсем юзерфрендли решение.
-
19 минут назад, RasonGame сказал:Мод уже давно не обновляется активно.
Возможно, корректнее будет сказать "не обновляется значительно". Пара фиксов и апдейт мелочей - это какая-никакая, а активность. Что мелочами занимаются, согласен. Такое впечатление, что Sangar (главный который) отошел от мода, а занимаются апдейтом его помощники, которые на ютубе туториал снимали с ним. Или помощник.
-
1 минуту назад, RasonGame сказал:Мод уже давно не обновляется активно.
Это распространенное заблуждение. Последнее обновление было 4 июня сего года.
-
@RasonGame я брал за основу программу ECS-а:
В 17.05.2023 в 19:05, ECS сказал:-- Подключаем библиотеки local component = require("component") local filesystem = require("filesystem")
То, что разные команды разбросаны по разным библиотекам и компонентам - это недоработка, по-моему. Мод обновляется постоянно, может, соберут в одном месте.
-
Пытался узнать, сколько используется места на диске. В интерпретаторе в игре работает, а если запускать через программу, то не работает, выдает ошибку lua:4: "attempt to call a nil value (field 'spaceUsed'):
local component = require("component") local filesystem = require("filesystem") sp = filesystem.spaceUsed() print(sp)
-
@eu_tomat Думаю, есть еще вариант воспользоваться написанными другими программами. Кто-нибудь писал подобное?
-
4 часа назад, eu_tomat сказал:и сделать pull request в репозиторий мода. Это идеальная альтернатива.
Нет ли более быстрого решения? Например:
В 27.05.2023 в 23:31, ECS сказал:Пишем собственные под конкретные задачи. Работа с сетью в опенкомпах довольно удобна, поэтому новый софт создаётся быстро, если, конечно, речь не идёт о шифровании или каких-то специфических форматах передачи данных с компрессией. Ну, а когда кодовая база становится довольно объёмной - оформляем её в виде библиотек и выкладываем
-
@eu_tomat Форматнул диск, вынув, щелкнув ПКМ, держа в руке, поменяв с файлового на блочный и обратно. Может, есть другие способы?
Жаль отказываться от пинга и переименовывания компьютера. Есть ли альтернативные способы все это делать?
-
2 часа назад, ProgramCrafter сказал:Компьютер перезагружен?
Если набрать ls /lib, там будет папка network?
Да, перезагружен. Папка network есть.
C другого компьютера, где также установлен network, каждые 3 секунды высылается сообщение. На принимающем компьютере каждые 3 секунды показывается это сообщение об ошибке. Оба компа используют стандартные команды (не из дискеты). Если закрыть порт, на который тот компьютер высылает данные, то это сообщение об ошибке перестает приходить.
-
Значит, если в сист. блоке 2 карты, то одна из них никак не участвует в передаче сообщений, посланных обычным способом, без выбирания через адрес? А только главный модем работает. Вот в чем дело, понятно.
-
1
-
-
@eu_tomat Потому что если главным компонентом выбрана беспроводная карта, то сообщение будет послано и беспроводной, и проводной картой.
-
В 23.05.2023 в 23:26, eu_tomat сказал:Если выбирать сетевую карту кодом modem = component.modem, то будет выбран именно главный компонент. И если им является проводная карта, то сообщение по беспроводному каналу не будет послано.
А не баг ли это? Если это баг, то может, кто-то c хорошим английским возьмется issue сделать на страничку мода?
-
Дискеты не было, как только установил, так сразу и вынул.
-
@ECS Почему-то начала выскакивать ошибка, как только открываю порт, на который приходит сообщение по сети: ERROR IN NET EVENTHANDLER[modem.lua]: /lib/network/modem.lua:31: attemtp to index a number value (local 'data')
Вот тут тоже человек столкнулся с похожей проблемой, но решил проблему кардинально - переустановить ОС.
-
Прошу прощения. Самое страшное в программировании - это то, что начинаешь воспринимать людей как функции (или классы). Я только осваиваю основы, но уже замечаю за собой такое.
"Дискета бесполезна" - не знаю, пинг и переименование компьютера, по-моему, довольно полезны. Вот, допустим, установил вдалеке компьютер, а лень бегать к другому компьютеру посмотреть, установлена ли связь. Тут пинг очень даже удобен. Да и просто, "все как у людей", то бишь у реальных компьютеров - это cute. Непонятно, почему в OpenОS нет такого. Протоколы udp и tcp, может, и бесполезны. На мой взгляд, они дублируют стандартный modem.send(). Все равно же нужно обращаться к функции event.pull(). "Не имеет документации" - это действительно жаль, почему они не сделали нормальный туториал. Даже на этом форуме за все эти годы не появился туториал, только один раз спросили про дискеты и все. Выкидывать из мода все-таки не следует, мне кажется. Builder, digger - все они могут кому-то пригодиться, кто-то может взять их за основу своей программы.
А если вы не пользуетесь этой программой, то какой программой вы пользуетесь для сетевых дел? Потому что, честно говоря, встроенная сеть не очень удобна.
-
@eu_tomat @ECS@Fingercomp , к сожалению, туториалов по этой дискете нет ни на английском, ни на русском. А жаль, дискета, по-моему, полезная, например, пинговать можно. Но вот чтобы получать сообщения, нужно, кажется, пользоваться дефолтной командой event.pull()?
-
Установил данную дискету. По команде в терминале man network дается описание команд. Функция
network.ip.bind(addr)
привязывает дополнительный адрес к компьютеру. Как посмотреть этот привязанный адрес и как обращаться по этому адресу?
-
20 часов назад, eu_tomat сказал:Если ключ имеет числовой тип, будет возвращено число. Если же ключ является строкой "amount", то и будет возвращена стока "amount". Никакой нумерации итератор не добавляет.
Вот как ключ работает! Спасибо.
-
28 минут назад, ECS сказал:Функция pairs возвращает итератор, который проходит по всем элементам таблицы tankTable,
Итератор, возвращаемый функцией pairs, это же цифра? Он же нумерует элементы таблицы? Если pairs может обратиться к аmount "по цифре", то почему мы не можем? Или я, может, путаю ключ с переменной? Если бы amount был переменной, выражение print(tankTable[1][1]) было бы корректным и напечаталась бы цифра 222. Может, ключ не так работает?

spaceUsed() не работает в терминале
в API
Опубликовано: · Изменено пользователем WheatComp
Я пока поставил на паузу игру в ОС. Несколько разочарован модом, возникло ощущение недоделанности. Например, чтобы просто узнать, сколько на диске используется, нужно создать файл, затем закрыть его, и только потом можно получить требуемую информацию.
Попробую.