Сохранение данных String в массив
- Войдите на сайт для отправки комментариев
Втр, 11/01/2022 - 23:28
Считываю текстовые данные с SD карты. Сами данные читаются нормально, получается строка String. Но мне ее необходимо записать в массив (11 строк соответственно 11 элементов в массиве).
Погуглив нашел только массив char, но в него String нельзя записать. Я конечно создал 11 переменных типа String, но это как то странно, неужели нет массивов строковых, или я найти не могу информацию.
Подскажите пожалуйста, как правильно это можно осуществить?
Из описания проблемы непонятно, что именно Вас не устраивает, и что именно Вы хотите "правильно осуществить".
В частности, непонятно, чем Вас не устраивает массив String.
В учебнике очень хорошо написано, что такое массив и как с ним работать. И еще много чего полезного. Попробуй погуглить учебник.
В учебнике очень хорошо написано, что такое массив и как с ним работать. И еще много чего полезного. Попробуй погуглить учебник.
Это я естественно первым делом сделал. Нигде не нашел упоминания про массивы String.
Вот код чтения с карты.
Т.е. в файле у меня строки типа: Настройки-5
Я первую часть до символа - помещаю в переменную name0 (согласно индексу) а вторую в массив dmx_names[k], вот тут String нормально преобразуется в Int.
Я думал его можно объявить как допустим String names[11]; Но при таком варианте при выводе в Serial там пусто, хотя данные то есть я их проверяю строкой Serial.println(finalString);.
В общем не понимаю в чем затык. Переменные как в моем примере работают, все нормально, но с массивом то было бы проще.
Погуглив нашел только массив char, но в него String нельзя записать.
только массив char нашли? а что, массивов инт или лонг не существует уже?
А если есть, может вы догадаетесь. что если в массиве нужно хранить переменные типа String. то нужно брать массив String?
Я думал его можно объявить как допустим String names[11]; Но при таком варианте при выводе в Serial там пусто, хотя данные то есть я их проверяю строкой Serial.println(finalString);.
показывайте код, как вы обьявляли массив и как выводили его в Сериал
Нигде не нашел упоминания про массивы String.
Учебники читают, а не ищут в них упоминания.
Я думал его можно объявить как допустим String names[11]; Но при таком варианте при выводе в Serial там пусто, хотя данные то есть я их проверяю строкой Serial.println(finalString);.
показывайте код, как вы обьявляли массив и как выводили его в Сериал
Вернул обратно код, который был раньше, с объявлением массива String names[11]; Пришлось набирать заново, т.к. уже под новый вариант переделал. И о чудо все работает....
ДАже не знаю что сказать. Полтергейст какой то. Больше спасибо, видимо где то была ошибка.
Вернул обратно код, который был раньше. И о чудо все работает....
видимо где то была ошибка.
так бывает, когда твердо не знал, но забыл... Ркит был прав - учебник надо читать, а не просматривать...
ДАже не знаю что сказать. Полтергейст какой то.
Так Вы поди на правильном инструментарии экономите? Вот и расплата за то, что жабе поддались.
Что такое МАССИВ он не знает, а от этого незнания и "полтергейсты" всякие появляются )))
ДАже не знаю что сказать. Полтергейст какой то.
Так Вы поди на правильном инструментарии экономите? Вот и расплата за то, что жабе поддались.
Согласен, не использовал, каюсь...
Что такое МАССИВ он не знает, а от этого незнания и "полтергейсты" всякие появляются )))
Хм, я разве спрашивал, что такое понятие МАССИВ? Я хотел проконсультироваться по поводу особенностей массива именно типа String. Вот специально погуглил учебники, можете показать где есть информация именно о этом типе массива? Например Программируем Arduino. Основы работы со скетчами Монк Саймон. Нет, есть массивы char c указателями *char. Про новый класс String только что существует опасность связанная с динамическим выделением памяти и всё, больше ничего. Нет примеров.
По этому и задал вопрос. С остальными то массивами проблем нет. В коде выше видно, что Int массив используется адекватно.
А по поводу кода, вполне могла быть ошибка, исходной версии нет, проверить не могу. Спасибо уважаемому b707 за то,что заставил вспомнить код и я сам эту ошибку видимо исправил.
Вот специально погуглил учебники, можете показать где есть информация именно о этом типе массива?
звучит примерно как "Почему я не вижу в продаже специальной версии ПДД РФ для водителей Ситроенов?"
на картинках в учебнике только Жигули и Волги, а также фургоны и трамваи, как же мне учиться?
Аналогия понятна, но не совсем применима, все таки распределение памяти в микроконтроллерах имеет свои особенности, особенно в связи с с тем, что основное моё - программирование это ПК, а Ардуино всего лишь хобби. Ладно спасибо на помощь, заканчиваю флуд. Вместо указаний на учебники (в которых этого реально нет) можно было просто написать, что объявление массива стандартно и аналогично Int - ищи проблему в коде. Еще раз спасибо, за уделенное время.
объявление массива стандартно и аналогично Int - ищи проблему в коде.
Объявление массива String действительно стандартно и совпадает с любым другим типом. А вот использование имеет свои особенности - но особенности эти не относятся исключительно к типу String, а связаны с тем, что в классе String используется динамически выделямая память.
Однако для вашего примера это не имеет значения и в рамках вашего кода разницы между массивом int и массивом String нет.
Не надо обижаться, вас никто не троллит, но заявление "я умею работать с массивами инт, но не умею String" равносильно заявлению "я не знаю массивов вовсе"
Что такое МАССИВ он не знает, а от этого незнания и "полтергейсты" всякие появляются )))
Хм, я разве спрашивал, что такое понятие МАССИВ? Я хотел проконсультироваться по поводу особенностей массива именно типа String. Вот специально погуглил учебники, можете показать где есть информация именно о этом типе массива? Например Программируем Arduino. Основы работы со скетчами Монк Саймон. Нет, есть массивы char c указателями *char. Про новый класс String только что существует опасность связанная с динамическим выделением памяти и всё, больше ничего. Нет примеров.
По этому и задал вопрос. С остальными то массивами проблем нет. В коде выше видно, что Int массив используется адекватно.
А по поводу кода, вполне могла быть ошибка, исходной версии нет, проверить не могу. Спасибо уважаемому b707 за то,что заставил вспомнить код и я сам эту ошибку видимо исправил.
Вот b707 правильно написал выше:
Массив - это лишь ещё один тип данных.. И с ними можно работать.
Или ты на все задачи "упоминания" или "примеры" ищешь? Начни думать головой.
Хм, я разве спрашивал, что такое понятие МАССИВ? Я хотел проконсультироваться по поводу особенностей массива именно типа String. Вот специально погуглил учебники, можете показать где есть информация именно о этом типе массива?
Никаких особенностей "массива именно типа String" не существует. Именно поэтому и нет никакой "информации именно о этом типе массива".
Чо пристали то, он же крутой программист:
основное моё - программирование это ПК, а Ардуино всего лишь хобби.
Из-за таких программистов 640кб перестало хватать на нужды общества))))
Из-за таких программистов 640кб перестало хватать на нужды общества))))
Ога, кто бы говорил)) Сам то делением на ноль упражнялся надысь :-)
Дык я нигде себя программистом и не называл, мне можно!)