Мммм...
читает. В переменную. Блок длинной в переменную!
тоесть если simvol равем 20 байтам. То он будет читать блоки по 20 байтов. Помещая результат каждого чтения в simvol ( затирая предыдущее чтение)
While пока файл не кончится.
Мдааа, я уж думал вот сообразительный ученик попался. :(
Предположим что при включении наверное мы можем читать блоки по 20 символов и считать сколько прочитали блоков?
Предположим что мы можем завести переменную которая будет обозначать строку на экоане ...
Дальше догадаетесь?
Ок. Зайдем с другой стороны.
Берем листик, пишем строчки.
берем вырезаем рамку высотой что бы помещалось 4 строчки.
двигаем рамку по строчкам вверх вниз.
Тоесть номер 1 строчки на экране +3
И рамочка не может двигаться дальше чем общее количество строк - 4.
Вы же можете считать строки?
Тоесть если из подсчета строк сделать функцию, на входе даете ей номер нужной строки stroka_disp
она считает строки. А когда номер совпадает то возращает строку для печати.
int PodschetStrok(){
int i;
for (i = 0; i < stroka; i++){
myFile.read(simvol, sizeof(simvol));
stroka_disp++;
}
return stroka_disp;
}
if (myFile)
{
int str;
str = PodschetStrok();
lcd.setCursor(0,1);
lcd.print(str);
myFile.close();
}
int PodschetStrok(){
int i;
for (i = 0; i < stroka; i++){
myFile.read(simvol, sizeof(simvol));
stroka_disp++;
}
return stroka_disp;
}
if (myFile)
{
int str;
str = PodschetStrok();
lcd.setCursor(0,1);
lcd.print(str);
myFile.close();
}
int PodschetStrok(){
int i;
for (i = 0; i < stroka; i++){
myFile.read(simvol, sizeof(simvol));
stroka_disp++;
}
return stroka_disp;
}
if (myFile)
{
int str;
str = PodschetStrok();
lcd.setCursor(0,1);
lcd.print(str);
myFile.close();
}
myFile.read считывает файл
buffer, sizeof(buffer) вычитал что высчитывает размер переменной
Мммм...
читает. В переменную. Блок длинной в переменную!
тоесть если simvol равем 20 байтам. То он будет читать блоки по 20 байтов. Помещая результат каждого чтения в simvol ( затирая предыдущее чтение)
While пока файл не кончится.
так и знал что фигню наколбасил
ага уже что начало получаться в сериал выводится первая строка постоянно
Угу. Так и будет. Если файл закрывать внутри while, дальше первой строки и не прочитает.
тааак понял, исправил
в сериале следущее:
Замечательно, дальше как обычно. Количество строк известно. Отсчитываем нужную и выводим на дисплей.
эмммм..... а обычно это как? и не пойму откуда известно количество строк?
эмммм..... а обычно это как? и не пойму откуда известно количество строк?
// stroka++;
если раскоментить? Что будет считаться?
Особенно если процесс подсчета строк вынести в setup. Ибо нужно это 1 раз при включении
таааак, ага заработало!!! Большое вам спасибо! Можно еще вопрос, для вывода строк на дисплей отдельную переменную заводить?
как вы и сказали подсчет строк вынес в setup, теперь в loop файл надо считывать заново в другую переменную?
как вы и сказали подсчет строк вынес в setup, теперь в loop файл надо считывать заново в другую переменную?
Зачем?
эм..... а как по строкам ходить?
чет помоему не то получается
Аммм вы типа когда строки по экрану двигаете у вас общее количество строк меняется? О.о
Предположим что при включении наверное мы можем читать блоки по 20 символов и считать сколько прочитали блоков?
Предположим что мы можем завести переменную которая будет обозначать строку на экоане ...
Дальше догадаетесь?
Повтор.
на экране четиыре строки, не могу понять как
Бааальшой список... рамочка в 4 строки движется вверх или вниз по списку. ..
наверно опять не так, не могу понять как повлиять на перемещение строк на дисплее
Ок. Зайдем с другой стороны.
Берем листик, пишем строчки.
берем вырезаем рамку высотой что бы помещалось 4 строчки.
двигаем рамку по строчкам вверх вниз.
Тоесть номер 1 строчки на экране +3
И рамочка не может двигаться дальше чем общее количество строк - 4.
да пока хотя б с одной разобраться
Ну так теперь отсчитываем нужную строчку из файла и печатаем на экран.
блин чето совсем уже не соображаю, простите
блин чето совсем уже не соображаю, простите
Значит нужно отложить все га время пока не придет понимание.
хорошо, спасибо еще раз за помощь. мало того что помогли еще и кое что понял, хотя ученик из меня безтолковый
Вы же можете считать строки?
Тоесть если из подсчета строк сделать функцию, на входе даете ей номер нужной строки stroka_disp
она считает строки. А когда номер совпадает то возращает строку для печати.
чет не выходит, вы имели ввиду использовать функцию myFile.position()
Кто-нибудь пожалуйста подскахите что дальше делать, совсем застрял
http://arduino.ru/Reference/FunctionDeclaration
спасибо, щас попробую разобраться
сделал вот так, но опять не то что то(((
мне так думается что вам нужно научиться составлять алгоритмы...
типа
1. взял
2. принес на кассу
3. достал кошылек
4. вынул карту
5. оплатил
6. убрал карту
и тд
вы не понимаете что и зачем делаете
карандаш, листик и рисуйте что и зачем у вас происходит.
вы абсолютно правы мало что понимаю в том что делаю, надо исправляться
1, При запуске посчитали общее количество строк в файле
2, Если нажимаем кнопку "записать", то добавляется еще одна строка
3. Если нажата кнопка "показать статистику" на дисплее отображаются первые четыре строчки
4. Если нажать кнопку"вперед" будут отображаться следущие четыре строчки
5. Если нажать кнопку "назад" будут отображаться предыдущие 4 строчки
1, При запуске посчитали общее количество строк в файле
2, Если нажимаем кнопку "записать", то добавляется еще одна строка
3. Если нажата кнопка "показать статистику" на дисплее отображаются первые четыре строчки
4. Если нажать кнопку"вперед" будут отображаться следущие четыре строчки
5. Если нажать кнопку "назад" будут отображаться предыдущие 4 строчки
у меня впечатление что я с валенком беседую... это не алгоритм.. это ваши сексуальные фантазии..
алгоритм будет как то так
завели переменные
СТРОКА - хранит общее количество строк
СтрокаНаПечать - хранит номер первой строку на дисплее. при запуске равно 1
ТекущаяСтрока - хранит строчку которую печатаем
открыли файл
сделали цикл по общему подсчету строк
закрыли файл
процедура по извлечению нужной строки
получили номер строки в переменной Строка_на_печать
открыли файл
отсчитали до нужной переменной
вернули переменную ТекущаяСтрока
начали луп
...
...
процедура по извлечению нужной строки
получили номер строки в переменной Строка_на_печать
отсчитали до нужной переменной
вернули переменную ТекущаяСтрока
не подскажете как это сделать?
сделал вот так, но опять не то что то(((
процедура = функция
я так понимаю вы издеваетесь...
походу вы издеваетесь. Вы профи для вас все легко и просто, а мне впервой и все кажется сложным и непонятным
походу вы издеваетесь. Вы профи для вас все легко и просто, а мне впервой и все кажется сложным и непонятным
отличный заход...
вы если машина глохнет что делаете?
достаете ключи и разбираете двигатель судя по всему, хотя ничего в этом не понимаете..
ибо я бы сначала посмотрел а вдруг топливо кончилось...
т.е. функция правильная? ее из лооп в сетуп перенести просто?
сделал вот так, но опять не то что то(((
обьясните что вы сделали тут?
т.е. функция правильная? ее из лооп в сетуп перенести просто?
НЕТ!
for
(i = 0; i < stroka; i++){ \\пока i меньше общего кол-ва строк
возвращаем кол-во строк для отображения??????
ЗАЧЕМ? не логично ли было возращать строку для печати на экране?
ну да....., а как это сделать?
ну да....., а как это сделать?
вы каким образом считаете количество строк?
ненене
вы мне словами это обьясните как оно там подсчет происходит
отсчитывает двадцать символов строка добавляется отсчитывает следущие двадцать строка добавляется
myFile.read(simvol,
sizeof
(simvol));
ЭТО ОТСЧИТЫВАЕТ 20 СИМВОЛОВ?