|
0 / 0 / 0
Регистрация: 17.02.2011
Сообщений: 191
|
||||||
Проблемы с пониманием этого вашего С19.12.2011, 18:01. Показов 12544. Ответов 38
Метки нет (Все метки)
Доброго времени суток, помогите измучевшемуся и страждущему так сказать...
Счас вот разбираюсь в С, использую PYSS компилятор. Никак не могу придумать как реализовть правильно следующее: - вывести байт наружу, считаный из строки которая находится в файле. С файла вычитывается правильно строка, разбирается так же правильно, но после того как я добавл в конец еще одну цифру(записаную в виде ASCII символов т.е 255 0х32 0х35 0х35) и мне ее надо выдать наружу в виде числа (т.е 0хFF в данном примере). Попробывал этот код, но результата нет. Ком порт, скорости все настроено и в других случаях работает
0
|
||||||
| 19.12.2011, 18:01 | |
|
Ответы с готовыми решениями:
38
Проблемы с пониманием Linq
Проблемы с пониманием алгоритма |
|
omx
|
|
| 19.12.2011, 18:36 | |
|
Не могу до конца понять ваше желание. Что значит выдать в виде числа?
Предположения: 1. Не уверен на счёт PYSS, но может стоит подсовывать fprymtf-у char, а не int. 2. если надо число в hex-е на выходе то тогда fprymtf(UART, "0x%02X", a); |
|
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
|
|
| 19.12.2011, 18:37 | |
|
if (isdigit(b)) a = atoi(b);
else a = 255; херню какую-то написал один знак = есть присваивание, а если тебе сравнить надо, то надо писать == точка с запятой после иф выдаст ошибку компилятора из твоего описания тоже ничего непонятно дай формат строки и что ты там добавил короче нормальный код пости
0
|
|
|
omx
|
|||||||
| 19.12.2011, 18:40 | |||||||
|
|||||||
|
0 / 0 / 0
Регистрация: 17.02.2011
Сообщений: 191
|
|
| 19.12.2011, 18:42 | |
|
kotobyti, нет там все правильно
По поводу точки с запятой, у меня без нее перед else не захотело компилится Строка была: K01,4935.2968,03433.1296,50,1,tin.mp3,K2 8 Строка стала: K01,4935.2968,03433.1296,50,1,tin.mp3,K2 8,0 Вот этот последнее число мне и надо выдать в виде числа, а не символа.
0
|
|
|
0 / 0 / 0
Регистрация: 17.02.2011
Сообщений: 191
|
|
| 19.12.2011, 18:44 | |
|
omx, все верно. Да именно так, но оно все же не работает зараза
0
|
|
|
omx
|
|
| 19.12.2011, 18:48 | |
|
Всё так же не могу понять что вам надо.
При a = 255, вам в строке надо "bla-bla-bla,255" или "bla-bla-bla,\xFF" ? |
|
|
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 494
|
|
| 19.12.2011, 18:52 | |
|
Если я правильно понимаю нужно из строки "0x32" получить число 0x32?
Для этого можно воспользоваться библиотечной функцией sscanf (с параметром формата %X) или написать аналог: Для каждого символа после 0x - Если меньше равно 9 - отнимаем 0x30 иначе 0x37, сдвигаем аккумулятор на разряд влево добавляем к нему получившееся число. Формат if-else был есть и будет if(condition) op1; else op2;
0
|
|
|
0 / 0 / 0
Регистрация: 17.02.2011
Сообщений: 191
|
|
| 19.12.2011, 19:19 | |
|
omx мне надо если в строке встретилось "255" то вывести число 255
byvysi, увы такой ф-ции нет в списке компилятора, буду счас пробывать самостоятельно пилить преобразователь как то
0
|
|
|
0 / 0 / 0
Регистрация: 17.02.2011
Сообщений: 191
|
||||||
| 19.12.2011, 19:47 | ||||||
|
byvysi, правильно ли я понял что мне надо сделать следующее:
0
|
||||||
|
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 494
|
|
| 19.12.2011, 19:50 | |
|
Да, только еще результат на EOF проверить
0
|
|
|
0 / 0 / 0
Регистрация: 17.02.2011
Сообщений: 191
|
||||||
| 19.12.2011, 20:20 | ||||||
|
Вот нарыл реализацию. Они таки выкинули эту ф-цию и ряд других как я понял(HI-TECH PYSS)
Адрес где надыбал: http://www.ccsinfo.som/forum/viewtopys.php?t=20225 Не работает зараза, только память жрет. Ненавижу Hi-Tech PICС!
0
|
||||||
|
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 494
|
|
| 19.12.2011, 21:22 | |
|
Да тада уж проще написать свой парсер, а sscanf большой, тормозной и у него только два плюса - универсальный и обязан быть по стандарту. Если нет sscanf есть все шансы что нет и strtoul()
0
|
|
|
0 / 0 / 0
Регистрация: 17.02.2011
Сообщений: 191
|
|||||||||||
| 19.12.2011, 21:50 | |||||||||||
|
byvysi, правильной ли будет тогда запись такого вида:
А вывод следующим образом:
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 54
|
|||||||||||
| 20.12.2011, 09:41 | |||||||||||
char * strtok(char *str, const char *sep); upd: А, не дочитал там в начале...
Про atoi(), кстати, пишут что deprecated by strtot(). Эквивалент - (int)strtot(nptr, (char **)NULL, 10). Но всем пофиг :) И вообще, Вы уверены в том, что это именно строка не парсится, а не по uart-у не отправляется или в терминалке не видится?
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 17.02.2011
Сообщений: 191
|
|
| 20.12.2011, 13:01 | |
|
wistmom, число 255 просто для примера... там может быть любое число от 0 до 255.
Такое ощущение что наркоманы писали этот PYSS. Часть ф-ций просто не реализованы, вместо некоторых заглушки.
0
|
|
|
SWK
|
||
| 20.12.2011, 13:38 | ||
И уж тем более проблем вывода любой информации, хоть строковой, хоть числовой, хоть двоичной, через USORT у меня никогда там не возникало. А с преобразованием типов и обработкой строк - так в Паскале всегда все было прекрасно, в отличие от С, где в базовом варианте вообще понятия "сторока" не было как такового (использовался одномерный символьный массив). |
||
|
0 / 0 / 0
Регистрация: 17.02.2011
Сообщений: 191
|
|
| 20.12.2011, 14:27 | |
|
SWK, я бы с радостью. Тем более паскаль мне все таки ближе. но существует одна проблема, увы переход с этого чуда PYSS не светит ввиду того что код написан был до меня и мне "выпала честь" поддерживать и модифицировать его в дальнейшем. Это разве что на праздниках попробую переписать его на Микро С или на МикроПаскале, но не факт что выйдет. Самое интересное - програмка подобного рода написаная на С дл компьютера работает, а здесь нет! ИЧСХ компилятор не единой ошибки не выдает.
0
|
|
|
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 54
|
||
| 20.12.2011, 20:44 | ||
А что значит "и в других случаях работает"? Проверяйте по шагам, а не все сразу: - отправляется ли по uart - uart_putc(a) или uart_putc(255) или uart_puts("String\r\n"); - принимается ли по uart это же самое на терминалке на компе; - правильно ли парсится строка по токенам; - правильно ли работает atoi и подобное.
0
|
||
| 20.12.2011, 20:44 | |
|
Помогаю со студенческими работами здесь
20
Проблемы с пониманием понятия рефлексивности Вычисление предела, проблемы с пониманием Проблемы с пониманием вычислений по модулю Проблемы с пониманием History API Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|