Bueno, pues yo lo que hago es cargar un teclado y escribir un texto, pero luego no encuentro la forma de borrar ese texto (los datos del char). El code es:
PA_Init();
PA_InitVBL();
PA_InitText(1, 0);
PA_InitKeyboard(2);
PA_KeyboardIn(20, 100);
s32 nletter = 0;
char letter = 0;
char text[200];
while (1)
{
letter = PA_CheckKeyboard();
if (letter > 31) {
text[nletter] = letter;
nletter++;
}
else if ((letter == PA_BACKSPACE)&&nletter) {
nletter--;
text[nletter] = ' ';
}
else if (letter == '\n'){
text[nletter] = letter;
nletter++;
}
PA_SetTextTileCol(1,1);
PA_OutputSimpleText(1, 2, 2, text);
PA_WaitForVBL();
}
para borrar el texto, probe:
PA_OutputSimpleText(1, 2, 2, " ");
PA_ClearTextBg(1);
text[0]=´/0´;
pero no se borra, consulte otros foros, le pregunte a otros coders y aun no lo solucione, como hago??No se si me explique bien...
Salu2
A que os mola la firma!!!
Vale, ya esta todo
Vale, ya esta todo solucionado, muchas gracias. Salu2.
Si, ya me va con el code de
Si, ya me va con el code de knightFox, era por culpa de la pantalla donde estaba el texto. Pero ahora (lo explico a monte porque no me expreso muy bien hablando en C, haber si entendeis..,) se borran los valores adquiridos por el char (el texto) pero al volver a "escribirle" valores "el texto" comienza en la posicion donde le di el ultimo valor borrado anteriormente (por ejemplo, si el texto debe comenzar en la posicion x -> 2 aparece en x -> 5), me explique fatal, si dije alguna tonteria perdon...
A que os mola la firma!!!
Pon
a 0 la variable que se encarga de calcular el espacio.
Salu2
Imagino
que el char que quieres borrar es el char text[200], y con borrar te refieres a quitar los valores que adquirió.
Cuando no necesites el texto escribe:
Por supuesto, declara la variable contador antes.
Salu2
Para recibir ayuda por parte de otros usuarios más rápidamente, recomendamos que pongas títulos descriptivos y no utilices abreviaturas (estilo MSN) en tus post de los foros. Recuerda que accediendo al Manual del perfecto forero y las Normas de la Comunidad aprenderás trucos para resolver tus dudas antes.
Repito, memset(texto, 0,
Repito,
memset(texto, 0, 200);
Hace lo mismo que el bucle, pero sin perder el tiempo. Otra cosa es como lo apliques tu....
Nuestra web oficial:
http://www.nightfoxandco.com/
Siguenos en facebook:
http://www.facebook.com/pages/NightFox-Co/284338634917917
Por favor, no useis los MP para preguntas, usar el FORO:
http://www.nightfoxandco.com/forum/
Asi nos ahorramos de contestar lo mismo 20 veces.
gracias por ayudar, pero el
gracias por ayudar, pero el code de knightFox lo que hace es no dejar seguir escribiendo y el de master sonic me da: warning: implicit declaration of function 'PA_Reinitiate' . Yo lo que intento es que al volver al menu se borren los datos del char, pero si vuelvo a cargar el teclado poder escribir otra vez con el char vacio...
A que os mola la firma!!!
Pues.
Usa el que te dio KnightFox y luego busca la variable que tiene el número de la letra (en los ejemplos solia ser nletter si no recuerdo mal), y esa variable ponla a 0.
Luego usa PA_ClearTextBg(pantalla); para vaciar el texto de la pantalla y asi no te queden tiles por hay sueltos.
PD: Hombre si solo necesitas ese texto en ese menu, define el char dentro del mismo junto a las otras variables que utiliza el teclado y asi se reinciara por si solo.
Ya esta, puse: memset(text,
Ya esta, puse:
memset(text, 1, 200);
nletter=0;
PA_ClearTextBg(1);
ya me funciona, simples 3 lineas y que rollo monte... Gracias y Salu2.
A que os mola la firma!!!
Prueba esto:
En resumen, te devuelve el 0 en todas las letras...
char x[200];memset(x, 0,
char x[200];
memset(x, 0, 200);