Официальный сайт компании Arduino по адресу arduino.cc
Сравнивание строк из файла с входящей строкой.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сб, 04/05/2013 - 15:30
Здравствуйте, подскажите пожалуйста, как реализовать данный алгоритм:
Есть файл на SD-карте следующего вида:
1234567
9999999
3231321
1234123
И так далее. Т.е. набор чисел в столбик. С RFID ридера приходят данные, типа "0000000" необходимо сравнить входящее число со всеми числами из файла на флешке. Если есть совпадение, то сделать определенные действия, если нет - то другие действия.
Вся сложность сводится к тому, что не удается реализовать считывание с карты каждой строки в массив.
С уважением, Евгений. Знающих людей прошу помощи.
Конкретно что не получается? код покажите Вставка программного кода в тему/комментарий
нет мыслей о том, как реализовать считывание с sd карты, таким образом, чтобы каждая строка файла записывалась в массив
Есть - сохранять каждую стоку в массив. Сообщение #1 перечитайте.
Есть - сохранять каждую стоку в массив. Сообщение #1 перечитайте.
Это понятно, на уровне алгоритма - это не сложно, я ставлю вопрос реализации. Поскольку с SD-модулем раньше не работал.
string
string
Вот ты реально такой тугой, или прикидываешься?
У тебя спрашивают одно, а ты вообще на другой вопрос отвечаешь %
Слышь, тугой здесь ТЫ, ибо строка это и есть массив - это раз.
Что ТЫ хочешь конкретно и что у тебя не получается понятно только тебе одному, так как ТЫ мыслишь очень плоско, а вариантов решения задачи много, а мысли здесь читать твои никто не умеет - это два.
Так что прежде чем хамить, подумай сначала, а не абстрактный ли твой вопрос - это три.
Если есть желание еще похамить, то вместо того что бы сюда писать иди дяде с улицы попробуй похами, а то почувствовал безнаказанность за свои слова, сидя за клаваиатурой.
Слышь, тугой здесь ТЫ, ибо строка это и есть массив - это раз.
Что ТЫ хочешь конкретно и что у тебя не получается понятно только тебе одному, так как ТЫ мыслишь очень плоско, а вариантов решения задачи много, а мысли здесь читать твои никто не умеет - это два.
Так что прежде чем хамить, подумай сначала, а не абстрактный ли твой вопрос - это три.
Если есть желание еще похамить, то вместо того что бы сюда писать иди дяде с улицы попробуй похами, а то почувствовал безнаказанность за свои слова, сидя за клаваиатурой.
Если до тебя не доходит вопрос, то прочитай еще раз, мошт со второго раза поймешь что к чему. Суть вопроса не в том, как объявлять переменные, а как работать с sd-библеотекой. Вопрос ставился таким образом: как запихать данные из текстового фала на флеш-карте в массив. Каждая строка - это новый элемент массива.
Так понятнее? Если уж и это до тебя не дошло, то мой вердикт один - иди собирай рюкзак, в школе научат читать.
Во-первых перестаньте ТЫкать, а во-вторых прочитайте сами свое первое сообшение и сравните с последним и найдите 10 отличий, после чего подумайте кому здесь в школу...
Не рекомендую использовать данную конструкцию char **stroki; в вашем случае лучше определиться с размером char stroki[100][8];.
А еще в вашем случае лучше сравнивать не строки, а сразу преобразовывать строку в число и работать с числами:
так же разделитель '\n' может "не заработать" так что можно использовать например ';' :
ну а потом просто в цикле сравниваете два числа:
Евгений, стоит ли зачитывать весь файл в память? Памяти может не хватить. По-моему, лучше сразу проверять каждую строку. Если искомая найдена - сразу действие1. Если весь файл прочитан - действие2.
Евгений, стоит ли зачитывать весь файл в память? Памяти может не хватить. По-моему, лучше сразу проверять каждую строку. Если искомая найдена - сразу действие1. Если весь файл прочитан - действие2.
Спасибо, за замечание, полностью согласен, что возможно памяти не будет хватать, поскольку в файле белее 600 записей.
Toc, если вас не затруднит не могли бы вы предложить ваш код?
поскольку в файле белее 600 записей.
Так что делайте выводы, и не расчитывайте на помощь экстрасенсов.
Спасибо maksim, прошу прощения за грубость - сроки поджимали. Хоть это меня и не оправдывает
Maksim, ваш код почему-то не работает... НУ или у меня руки кривые
В чем ошибка?
В файле BASE.txt такой текст:
4685789;
2168494;
Максим, Евгений,
в текстовом файле в ascii кодировке строка 4685789 будет представлена семью байтами
0x34, 0x36, 0x38, 0x35, 0x37, 0x38, 0x39
Максим, Евгений,
в текстовом файле в ascii кодировке строка 4685789 будет представлена семью байтами
0x34, 0x36, 0x38, 0x35, 0x37, 0x38, 0x39
Спасибо, всё работает
Максим, Евгений,
в текстовом файле в ascii кодировке строка 4685789 будет представлена семью байтами
0x34, 0x36, 0x38, 0x35, 0x37, 0x38, 0x39
не заметил блок else
доброго времени суток...
у мения тоже самое интересуеть... помогите пожалуйста...
в тхт фаиле в ручную записанны строки пример 0123456789... нужно найдти определную строку и делат какието деиствия пример нужно искать 0123456789 и при совпадении выдат сообшения например "Ok".
для тестирования Arduino подключен теминалу и спомошю терминала ввожу 10 цифр и при совпадении выдает сообшение "Ok" при отсувствии "Error"
hard виглидить так SD Card+Arduino+Uart
я мало знаю програмировании а то не беспокоил
заранее благодаоень...
Помогите написать похожий код.
Есть тхт с кодами
123456789
921431234
и т.д
Нужно поочереди переслать их на на радиопередатчик
код на передачу нашел в сети,а как написать что бы он брал коды с сд карты не знаю
Помогите пожалуйста.