Ruslan
выйди и зайди правильно (с)
Гоша
//Вывод постирочной файла в сериал порт . //При нажатии на любую клавишу происходит считывание и затем вывод .
#include <Arduino.h>
#include <LittleFS.h>
void setup() {
Serial.begin(115200);
LittleFS.begin();
}
void loop() {
while(Serial.available() == 0);
int x = Serial.read() - '0';
Serial.println(x);
File f = LittleFS.open("/xxx.txt","r");
while(f.available()) {
String line = f.readStringUntil('\n');
Serial.println(line);
delay(500);
}
f.close();
}
Гоша
это?? )))
Даниил
Благодарю
Даниил
Суть вопроса вот в чем .
Я хочу постоянно записать каждую строчку файла xxx.txt в массив, чтобы я мог в любой момент обратиться к индексу и вывести строчку .
В данном примере я научился построчно выводить данные , но записать в массив не выходил , помогите пж
ㅤ
https://nometa.xyz/
ㅤ
Даниил
Вполне адекватный вопрос
Гоша
они про твоё первое сообщение
ㅤ
Да мы продолжаем стебаться на то как ты зашел без вопроса)
Гоша
сам вопрос адекватный
Гоша
но можно было сразу спросить
ㅤ
Даниил
Да
Гоша
Гоша
блин. Если в ардуино есть std::vector и std::string то вообще изи. Прост создаёшь вектор, в том же твоём цикле где выводится в serial добавляешь строки в вектор. И вуаля.
Даниил
Я знаю что такое вектор ....
Дело не в этом.
Щас сформулирую более точно
Slava
Даниил
Смотри в коде.
String line.
Эта переменная строчного типа должна притвориться массиву , в котором каждый индекс будет соответствовать каждой строке .
То что вы мне скинули не работает , я уже пробовал
Даниил
Я знаю что такое вектор , не принципиально .....
Мне нужен сам механизм , можно с обычным массивом
Slava
Ruslan
Гоша
Даниил
Ребят , я думаю тут 99процентов знают что такое вектор , помогите с моей проблемой
Гоша
надеюсь, вы щас стебётесь ))
Slava
Ruslan
конкретно я щас шлифую механизм адаптации белого списка у шлагбаумов...
Гоша
в массив и так элементы по индексу сохраняются.
Даниил
Смотр
Гоша
единственное, осталось найти где в ардуино брать класс массива
Гоша
переменной длины
Даниил
Я когда засовываю в массив то все строчки сохраняются в первую ячейку массива , а мне нужно построчно в каждую
Гоша
если его там нет -придётся самому реализовывать. Но это изи
Гоша
Смотр
куда? код в студию!
Даниил
Я скинул же
Гоша
Даниил
Гоша
Даниил
Смотри , я вывожу тут в сериал порт построчно , как по этому механизму построчно присвоить каждому элементу массива
Даниил
Любого , мне просто пример нужен
Slava
Даниил
Гоша
ты можешь сделать так
char ** myArray = malloc(500*sizeof(char*));
for (/* цикл по строкам файла*/) {
myArray[i] =
Гоша
щас
Гоша
допишу
Гоша
ты можешь сделать так
char ** myArray = malloc(500*sizeof(char*));
for (int i = 0; i < 500 && f.available(); i++) {
String line = f.readStringUntil('\n');
myArray[i] = malloc(sizeof(char)*line.length());
line.getBytes(myArray[i], line.length());
}
Гоша
вот
Даниил
Спасибо , я проверю сегодня
Даниил
Т е ты сделал char на 500 символов да
Даниил
Установил размер
Гоша
Гоша
т.е. предел - 500 строк в файле
Даниил
Ммм, ок я попробую , если выйдет , аналогично сделаю через вектор
Гоша
это массив постоянной длины
Гоша
каждая строка может быть переменной
Гоша
и потом память надо всю чистить
Гоша
через free(ptr);
Даниил
Понял
Даниил
Спасибо Гоша , я протестирую и напишу
Гоша
Вот кстати нашёл для ардуины. Тут должен быть и вектор и лист. И много всякого другого.
https://www.arduino.cc/reference/en/libraries/arduinostl/
Evgen
кто зафигачил багрепорт на гитхаб в виде ролика на ютубе - тот я. https://youtu.be/N8XwSMCJckk Кстати, одновременно наступил на баг в Movavi, но репортить не стал....
Гоша
Гоша
мож ему надо разрешения дать на доступ к портам?
Mike
ㅤ
Ну почему код нельзя на пасту выкладывать? Включая подсветку? Религия не позволяет? ну неудобно эти листинги читать в телеге
Mike
Ruslan
теперь покладут туда )