FranzSib |
Отправлено: 04 Сентября, 2011 - 12:53:40
|
Лейтенант

Сообщений всего: 23
Дата рег-ции: Сент. 2011
|
nest пишет:значит что то вы не так делаете.
LCD_Data(0x33); - так?
Ну да
(Добавление)
Может подскажете кто знает Си лучше чем я, вот сделал функцию которая получает строку, и посимвольно просматривает её, если символ есть в массиве то заменяет его кодом из массива, если нету то оставляет как есть, почемуто работает неправильно.
CODE:
int Func (char* Data)
{
size_t LenData = strlen( Data ) + 1; /*Длинна строки*/
char* TempBuffer = ( char* ) malloc( LenData ); /*Выделение памяти под буфер размером со строку Data*/
int k;
char *IndexData = &Data[0];
char *IndexBuffer = &TempBuffer[0];
unsigned char* Symbols[107][2] =
{
{"А",65}, {"Б",160}, {"В",66}, {"Г",161}, {"Д",224}, {"Е",69},
{"Ё",162}, {"Ж",163}, {"З",164}, {"И",165}, {"Й",166}, {"К",75},
{"Л",167}, {"М",77}, {"Н",72}, {"О",79}, {"П",168}, {"Р",80},
{"С",67}, {"Т",84}, {"У",169}, {"Ф",170}, {"Х",88}, {"Ц",225},
{"Ч",171}, {"Ш",172}, {"Щ",226}, {"Ъ",173}, {"Ы",174}, {"Ь",173},
{"Э",175}, {"Ю",176}, {"Я",177},
{"а",97}, {"б",178}, {"в",179}, {"г",180}, {"д",227}, {"е",101},
{"ё",181}, {"ж",182}, {"з",183}, {"и",184}, {"й",185}, {"к",186},
{"л",187}, {"м",188}, {"н",189}, {"о",111}, {"п",190}, {"р",112},
{"с",99}, {"т",191}, {"у",121}, {"ф",228}, {"х",120}, {"ц",229},
{"ч",192}, {"ш",193}, {"щ",230}, {"ъ",194}, {"ы",195}, {"ь",196},
{"э",197}, {"ю",198}, {"я",199},
{"!",32}, {" ",33}, {"^",94}, {"#",35}, {"$",36}, {"%",37},
{"&",38}, {"'",39}, {"(",40}, {")",41}, {"*",42}, {"+",43},
{",",44}, {"-",45}, {".",46}, {"/",47}, {"0",48}, {"1",49},
{"2",50}, {"3",51}, {"4",52}, {"5",53}, {"6",54}, {"7",55},
{"8",56}, {"9",57}, {":",58}, {";",59}, {"<",60}, {">",61},
{"?",62}, {"[",91}, {"]",93}, {"_",95}, {"~",237}, {"@",238},
{"`",200}, {"|",201}, {"№",206}
}; //~ - колокоьчик, @ - еврокруг, ` - <<, | - >>, { = левая ковычка, } - правая ковычка, № - f
while( *IndexData )
{
for(k=-1; k<sizeof(Symbols);k++)
{
if( *Symbols[k][0] == *IndexData )
{
*IndexBuffer = Symbols[k][1];
LCDsendChar(Symbols[k][1]);
goto next;
}
*IndexBuffer = *IndexData;
LCDsendChar(*IndexData);
}
next:
IndexData++;
IndexBuffer++;
}
//sprintf(Temp, TempBuffer);
return TempBuffer;
}
|
|
|
|