String + String получается пустота
- Войдите на сайт для отправки комментариев
Пт, 15/11/2019 - 00:04
У меня есть некий текст
String textadd = "The foregoing is commentary for informational purposes only. All statements and expressions are the opinions of Eagle Products, LLC, or Caron Broadcasting Company. This information is not meant to be a solicitation or recommendation to buy, sell, or hold securities. We are not licensed or registered in the securities industry. The information presented herein and on the related web site has been obtained from sources believed to be reliable, but its accuracy is not guaranteed";
Мне надо его разбить на 94 символа
как я пытлася
int lines = (int)ceil(textadd.length() / (count-1)); String line_new1 ,line_new2; for (byte i = 0; i <= lines; i++){ line_new1=""; line_new2=""; line_new1 = textadd.substring( (int)(i*(count-1)) , (int)(i*(count-1)) + (count/2)); //Serial.println(); line_new2 = textadd.substring( (int)(((i*(count-1))+(count/2))) , (int)((i+1)*(count-1)) ); //Serial.println(); }
почему такая запутанная ситуация потому что substring работает максимум с 80 символами, и я юзал 47 символов, тоесть 47 +47 = 94
for (byte i = 0; i <= lines; i++){ line_new1=""; line_new2=""; line_new1 = textadd.substring( (int)(i*(count-1)) , (int)(i*(count-1)) + (count/2)); //Serial.println(); line_new2 = textadd.substring( (int)(((i*(count-1))+(count/2))) , (int)((i+1)*(count-1)) ); //Serial.println(); Serial.println(line_new1); Serial.println(line_new2); }
вот так выводит прекрасно но стоит мне
line_new1 += line_new2; текст каким то образом исчезает
Мои попытки сделать в 1 строчку не получилось
_________
line_new1 += line_new2;
___________
line_new1 += (String) line_new2;
_________
line_new1 += String( line_new2);
_________
char charBuf[50], charBuf2[50], buffer[100];
line_new1.toCharArray(charBuf, 50);
line_new2.toCharArray(charBuf2, 50);
sprintf(buffer, "%s%s",charBuf, charBuf2);
________
line_new1.toCharArray(charBuf, 50);
line_new2.toCharArray(charBuf2, 50);
_______
Уважаемые знатоки подскажите пожалуйста в чем моя ошибка ? заранее спасибо
const byte count = 94;
может надо выше цикла вынести?
Мне надо соединить 2 строчки в 1 , это никак не влияет
Но спасибо за ответ
Я даже просто пробовал обьявлять переменные в цикле
Пример более простой
я что-то делаю не так ?
Все так, походу у меня слишком много кода ,когда очистил и поставил только этот заработало
Спасибо
Все так, походу у меня слишком много кода ,когда очистил и поставил только этот заработало
У вас не "кода много", у вас оперативной памяти не хватает. Избавляйтесь от String, переходите на char*. Константные строки можно положить в ПРОГМЕМ
и еще как альтернатива, если не умеете, не понимаете как работать с "мелкими" МК, берите процы по жирнее и разворачивайте там свои String и WEB сервера, благо выбор сейчас огромен. это мы даже в ДОС-е байты считали и экономили.
Спасибо всем за помощь
это мы даже в ДОС-е байты считали и экономили.
наконец-то встретил коллегу, кто в ДОСе писал ЕХЕ программы, мне выходить за СОМ ни разу не понадобилось )))
а что в COM не надо было байты считать?
как-никак, COM - 64к, а exe - 640к.
это мы даже в ДОС-е байты считали и экономили.
наконец-то встретил коллегу, кто в ДОСе писал ЕХЕ программы, мне выходить за СОМ ни разу не понадобилось )))
а что в COM не надо было байты считать?
как-никак, COM - 64к, а exe - 640к.
мне нет )))