C/Visual C - Modificar sin sobreescribir

 
Vista:

Modificar sin sobreescribir

Publicado por Pepe (2 intervenciones) el 18/03/2007 07:35:55
Saludos
Lo que quiero hacer es modificar el valor de una cadena pero sin sobreescribir lo que tenia, ejemplo

Cadena='Pepe'
Al modificarla que aparezca 'Pepe' y a partir de ahi poder modificar dicha cadena, sin que se sobrescriba el valor anterior por el nuevo, es decir:

Imprimo Pepe, y si doy backspace debe quedar Pep, si doy backspace otra vez debe quedar Pe, si presiones 'r' debe quedar Per, si escribo 'e' debe quedar Pere, y al dar enter que se guarde el valor final, en este caso Pere.

Como ven no tuve que escribir Pere completramente, sino borrar 'e' y despues 'p', y luego escribi 'r' seguido de 'e'.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Modificar sin sobreescribir

Publicado por Nelek (816 intervenciones) el 19/03/2007 07:39:53
Hola,

Sobreescribir vas a tener que hacerlo por narices, ahora... al final.

Para hacer lo que tu dices... considera la cadena como un vector de caracteres. Si aprietas el espacio, borras el ultimo caracter de la cadena (si estas en visual c++ puedes usar los operadores [i] como en un vector normal y corriente, y el metodo GetLenght que te devuelve el largo de la cadena donde la ultima posicion es dicho valor menos uno)

CString cadena = "Pepe";

void CMyClass::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
switch (nChar)
{
case (VK_SPACE):
int nLargo = cadena.GetLenght ();
cadena.delete (nLargo-1, 1); //Posicion a borrar, numero de caracteres a borrar
break;

default:
cadena = cadena + nChar;
}
}

Algo asi. Si estas en C... sera mas facil pasando por una cadena char* temporal donde copiar la cadena temporal menos el ultimo caracter o mas el nuevo ultimo caracter.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Re: Modificar sin sobreescribir

Publicado por Pepe (2 intervenciones) el 19/03/2007 14:39:36
Disculpas por no especificar, pero si estoy en C, no en visual. Crees que puedas explicármelo nuevamente pero con C
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Re: Modificar sin sobreescribir

Publicado por Nelek (816 intervenciones) el 20/03/2007 08:52:37
Hola,

la idea es la misma, simplemente cambia las cosas al standard de c. Es decir, la CString por un char* [N] y esas cosas. Perdona si no te pongo codigo pero hace anyos que no uso el C y no me acuerdo de la mitad de las cosas. Si pones tu algo, me sera mas facil corregir que hacer el ejemplo en C directamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar