поиск слова на SD карте
- Войдите на сайт для отправки комментариев
Пт, 10/01/2020 - 14:16
добрый день. пытаюсь найти слово в txt файле но ничего не работает.
скетч такой использую. чтение с карты происходит через char а надо как то наверное сделать через string.
помогите исправить код. спасибо
// re-open the file for reading: myFile = SD.open("text1.txt"); if (myFile) { Serial.println("text1.txt:"); // read from the file until there's nothing else in it: while(myFile.available()) { Serial.write(myFile.read()); //--------------------ERROR---ERROR-------ERROR--------------------------------------- char val=myFile.read(); if (val =="second") //char переменная для символа одного. нужен string //-------------------------------------------------------------------------------------- { Serial.println("FOUND"); } } // close the file: myFile.close(); } else { // if the file didn't open, print an error: Serial.println("error opening test.txt"); }
Вы в первый класс ходили? Учили Вас там искусству чтения слов по-буквам? Вот научите теперь МК тому же самому.
добрый день.
Зравствуйте
пытаюсь найти слово в txt файле
В каком именно месте пытаетесь? Номера строк назовите. Я лично никаких попыток что-то найти в коде не вижу.
но ничего не работает.
Так, а с чего ему работать, если Вы ничего не делаете. Поиск, которого в программе нет, не может работать. Или у Вас другое мнение по этому вопросу?
не нужен string
замените это
на это
:))
Вы в первый класс ходили? Учили Вас там искусству чтения слов по-буквам? Вот научите теперь МК тому же самому.
а насколько сложно это сделать?
к сожалению совсем нет идей (
не нужен string
замените это
на это
:))
Чего троллить-то парня? У него и так нихрена не получается.
а вообще наверно каждый новичок должен пройти через боль прежде чем начать что то писать)
не нужен string
замените это
на это
:))
Спасибо но немного не подходит такая запись (
у меня есть переменная:
и ее надо найти в txt файлике (узнать номер строки )
очень нужна помощь. пожалуйста помогите написать не сложный код
очень нужна помощь. пожалуйста помогите написать не сложный код
Так начинай, а мы поможем. Раз код несложный - значит, разберёшься потихоньку. Не надо канючить, надо учиться. Не хочешь учиться - в платный раздел форума.
эту конструкцию добавлю в часть кода где происходит считывание только 1 строчки. а не всего файла целиком. сейчас проверить нет возможности его. Смогу или вечером или на выходных.
Учиться хочу . просто для себя делаю как хобби
и для этого вы советуете новичку заведомо нерабочий код?
Учиться хочу . просто для себя делаю как хобби
тем более. Раз это хобби - значит никакой спешки нет. сидите и учитесь потихоньку.
Учиться хочу . просто для себя делаю как хобби
тем более. Раз это хобби - значит никакой спешки нет. сидите и учитесь потихоньку.
да так и пытаюсь когда время есть учусь.
Посмотрите на последний код . насколько он годится? может что то улучшить можно
2b707
как не рабочий то?)
Не проверял. Код для ознакомления с принципом и самостоятельной проработки.
Не проверял. Код для ознакомления с принципом и самостоятельной проработки.
это код который считывает определенную длину txt файла?
у меня есть док который читает строку до "\n" знака.
а тот что я написал не годится совсем ? ))
2ЕвгенийП
а что в нем не рабочего?)
если в начале файла слово second то мы пришли к успеху)
Перечитайте сами, что Вы написали
эту конструкцию добавлю в часть кода где происходит считывание только 1 строчки. а не всего файла целиком. сейчас проверить нет возможности его. Смогу или вечером или на выходных.
Давайте с скажу это другими словами.
"Ну, чёта я тут накропал, проверять некогда, я человек занятой. Это Вам делать нехрен, вот и проверяйте за меня".
Вам это не кажется хамством?
Некогда проверять, потерпите до "вечера или выходных". Но хамить-то зачем?
Не проверял. Код для ознакомления с принципом и самостоятельной проработки.
Пересмотрел. Есть важная недоработка. Решается одной строчкой.
а если не в начале?
Достаточно одного пробела перед second, чтобы этот код ничего не нашел
2b707
ну так и было расчитано это ж очевидно) я потроллить ТСа написал и дать ему пищу для размышлений а не полностью поиск во всем файле)
Перечитайте сами, что Вы написали
эту конструкцию добавлю в часть кода где происходит считывание только 1 строчки. а не всего файла целиком. сейчас проверить нет возможности его. Смогу или вечером или на выходных.
Это Вам делать нехрен, вот и проверяйте за меня".
если смотреть что некоторые заходят только тролить сюда. наверное так оно и есть. Я и другие читал темы
я выложил код здесь есть люди которые лучше разбираются. ничего не стоит глянуть и сказать можно ли исправить что то
тот код что в первом послу?
пускай ищет первое слово только )
но в нем же ошибка с SD считывается символами и сравнивается с char у которого уже не символ а слово.
Я так понял что работать этот код не должен? или будет как то работать? ))
тот код что в первом послу?
расслабтесь, речь не про ваш код, ваш код не будет работать никогда.
расслабтесь, речь не про ваш код, ваш код не будет работать никогда.
Оптимистичненько. :)
genia1991
вы же в #9 вполне рабочий код нацарапали))
я выложил код здесь есть люди которые лучше разбираются. ничего не стоит глянуть и сказать можно ли исправить что то
никто не станет разбираться в вашем коде, пока вы его сами не проверили и не сказали, работает он или нет.
А когда вы демонстрируете, что вам проще тыщу вопросов задать, чем написать самому пару строк - и подавно.
расслабтесь, речь не про ваш код, ваш код не будет работать никогда.
Оптимистичненько. :)
не надо обобщать :) я про конкретный код в конкретном случае, а не про способности ТС в целом :))))))))))))
Код baby_in_Arduino не рабочий. Но иногда он таки даст результат верный, тем он и особо противен. В топку его!
поэтому и выложил что бы оценили. что бы глянули и сказали что то.
а почему вполне? рабочий но не рабочий? :)
я его попробую разместить в ту часть кода где считывается только 1 строка а весь файл целиком.
Надеюсь что то заработает
2Logik
)) по второму кругу
Код baby_in_Arduino не рабочий. Но иногда он таки даст результат верный
можно даже точно оценить, насколько "иногда" он будет работать - примерно в 16.66% случаев :)
забыл еще дописать. задача находить только первое слово в строке )
я протестю тогда уже потом напишу что получается. вечером
я про конкретный код в конкретном случае
С таким подходом к делу, который демонстрирует ТС, можно и обобщить.
скажите честно - думали написать рабочий код. а когда не вышло - косите под "тролинг" ? :)
Код baby_in_Arduino не рабочий. Но иногда он таки даст результат верный
можно даже точно оценить, насколько "иногда" он будет работать - примерно в 16.66% случаев :)
так а почему так?
так а почему так?
Геня, второй раз говорю - расслабтесь, речь не о вас и не о вашем коде.
так а почему так?
Геня, второй раз говорю - расслабтесь, речь не о вас и не о вашем коде.
ну ок )
2b707
не взлетел код, приходится теперь косить)
Навскидку, даже не компилировал, чисто принцип. Без всяких оптимизаций, простым языком, чтобы было совсем понятно:
Более оптимальные, быстродействующие, продвинутые методы поиска - считаю, не для этого раздела, но всё же подскажу: они существуют, есть готовые реализации, стоит только поискать в гугле.
Более оптимальные, быстродействующие, продвинутые методы поиска - считаю, не для этого раздела, но всё же подскажу: они существуют, есть готовые реализации, стоит только поискать в гугле.
спасибо я попробую позже откомпилировать.
а где там переменная которую искать будет?
а где там переменная которую искать будет?
А если ВНИМАТЕЛЬНО посмотреть - там разве не приведён пример использования?
а где там переменная которую искать будет?
А если ВНИМАТЕЛЬНО посмотреть - там разве не приведён пример использования?
if не совсем понял что это такое?
если нашло слово то ... например serial . write("FOUND");
Принцип похож на правду, но используется стринг... А продвинутые - существуют конечно, например см http://arduino.ru/forum/apparatnye-voprosy/gsm-modem-a6-v-rezhime-tcp , там поиск не в файле, а в потоке данных с модема. Но без разницы для любого потока одинаково, сам поиск в ProcessAT, в неё посимвольно передаются данные. Второй параметр - массив с искомыми словами и указателями функций, вызываемыми при нахождении.
if не совсем понял что это такое?
Тогда вам прямая дорога к: взять и начать читать учебник по С++. Более я вам не помощник.
if не совсем понял что это такое?
Тогда вам прямая дорога к: взять и начать читать учебник по С++. Более я вам не помощник.
условие которое выполняется если слово найдено?
Принцип похож на правду, но используется стринг... А продвинутые - существуют конечно, например см http://arduino.ru/forum/apparatnye-voprosy/gsm-modem-a6-v-rezhime-tcp , там поиск не в файле, а в потоке данных с модема. Но без разницы для любого потока одинаково, сам поиск в ProcessAT, в неё посимвольно передаются данные. Второй параметр - массив с искомыми словами и указателями функций, вызываемыми при нахождении.
спасибо. это сложно очень. предыдущий код буду разбирать как работает )
условие которое выполняется если слово найдено?
Давайте не будем играть в "угадай мелодию", ок? Вы читать основы С++ собираетесь? Если да - начинайте, и глупые вопросы отпадут уже после прочтения нескольких глав. Если нет, то, повторюсь - более я вам не помощник.
я проверил свой скетч 9 пост. вроде идеально работает )
мин 10 тестил никаких глюков пока не заметил. Тестил без основного кода. так что поиск этот еще надо будет прицепить на клавиатуру.
но отдельно код заработал.
кто тут писал что работать не будет? :)
дальше задача будет на 32 кнопки повесить буквы. считывать в string .выводить на экран и использовать поисковый скетч этот.
есть еще над чем мозг поломать )