FileData чтение файла в массивы

kit

✩✩✩✩✩✩✩
19 Янв 2024
3
0
День добрый подскажите пожалуйста как реализовать данную задачу.
Имеем во внутренней фс littlefs некий файл file.csv со следующим содержанием:
111.222;222.222
111.333;222.333
111.444;222.444
111.555;222.444
Как мне считать из фс этот файл в программу и разложить содержимое в два массива:
float 1mass[] = {111.222,111.333,111.444,111.555};
float 2mass[] = {222.222,222.333,222.444,222.444};
Т.е. в первый массив складываются числа из первого столбца. Во второй из второго столбца.
Причем размер столбцов в файле при каждом считывании может меняться.
 

Сотнег

★★★★★★★
15 Янв 2020
4,407
1,509
@kit,
думаю, вы неправильно ставите себе задачу.
Логичнее изначально сохранить данные в формате, не требующем парсинга текстовых строк.
 

kit

✩✩✩✩✩✩✩
19 Янв 2024
3
0
К сожалению в программу придётся передавать файлы заранее подготовленные на компе в Excel
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,267
1,303
Москва
Первое, что надо понять: в подготовленном файле нет чисел - все текст. Т.е. Это все строки, можно использовать тип String, можно массив char, но первый все же поудобнее будет.
Далее надо научиться считывать файл построчно и сделать вывод в тот же монитор порта вместе со счетчиком индекса массива, т.е. получить что то типа:
Код:
0 111.222;222.222
1 111.333;222.333
2 111.444;222.444
3 111.555;222.444
Это уже часть дела - номер индекса по которому нужно разместить данные в массиве уже есть.
Далее надо работать с каждой отдельно взятой строкой.
Надо найти разделитель и вырезать часть строки с начала до разделителя , перевести во флоат и разместить в 1-ом массиве.
Из остатка строки удалить все с начала и до позиции разделителя, включая его. Остаток поместить во 2-ой массив.

А можно сделать чуть интереснее. Есть такая функция
readStringUntil()
Можно ее использовать для чтения нужных частей строки из файла. 1-ая будет читать до разделителя, вторая до конца строки.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,267
1,303
Москва
@kit, Не тупой, а альтернативно одаренный!
Примеры решают все проблемы. А на esp куча примеров записи и чтения файлов. Простейший есть в самой ардуино иде в разделе по LittleFS