Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Fede on March 16, 2010, 12:34:16 PM

Title: Acceso directo a un caracter perteneciente a una cadena
Post by: Fede on March 16, 2010, 12:34:16 PM
Hola a todos. Soy nuevo por estos lares, aunque os visitaba hasta ahora como lector.

Vengo rebotado de los foros de GP32Spain, donde estoy haciendo mis pinitos con Bennu y una aplicación sencilla para Wiz, y estoy intentando hacer una cosa que no se si se puede.

Formando parte de un visualizador sencillo de texto plano, estoy intentado acceder a un caracter de una string directamente, ya que con las funciones de bennu, la rutina me va muy lenta en la wiz.

Esto es:

string prueba="pelaez"; //Esta sería la variable inicializada.

say(prueba[2]); //Con esto me da directamente la "l" de "pelaez";


Sin embargo si intento prueba[2]="x"; me da un error en compilación de que no es una variable.

Parece como si prueba[2] la pudiese leer, pero no escribir.

También he intentado acceder a los caracteres via punteros pero no hay manera. (O tampoco se puede, o no lo consigo).

Quisiera saber si lo que intento hacer es posible, o no.

Gracias y saludos.


P.D.

Adjunto enlace a la mini discusión de GP32Spain por si vale para aclarar algo.

http://www.gp32spain.com/foros/showthread.php?t=72134
Title: Re: Acceso directo a un caracter perteneciente a una cadena
Post by: Windgate on March 16, 2010, 01:45:43 PM
No he probado lo que dices, pero entiendo el problema, intento ayudarte mientras alguien más experto nos cuenta algo:

Si un caracter es accesible aunque sólo sea en lectura, podrias "reconstruir" la cadena de texto cambiando sólamente ese caracter y volver a asignarla a la string.

Si no hay una solución mejor puedes hacer una FUNCTION que se ocupe de ello:

FUNCTION string replace_char ( string original , char change , int position )

Pero vamos, espera a ver si alguien nos ofrece una alternativa más sencilla, y bienvenido a este lugar dejado de la mano del altísimo.
Title: Re: Acceso directo a un caracter perteneciente a una cadena
Post by: darío on March 16, 2010, 02:01:43 PM
Creo que no se puede hacer eso con strings. Yo lo que hacía (antiguamente) era usar la función substr y reconstruir la cadena.

string mistring="chismorreo";
mistring = substr(mistring,0,4)+"p"+substr(mistring,5);

Otra cosa es si estás usando cadenas de caracteres "char" en cuyo caso sí se puede usar:
char micadena[]="chismorreo";
micadena[4]='p';

No lo he probado, pero creo que debería funcionar.
Title: Re: Acceso directo a un caracter perteneciente a una cadena
Post by: FreeYourMind on March 16, 2010, 02:02:13 PM
Welcome to your DOOM!  ;D
Title: Re: Acceso directo a un caracter perteneciente a una cadena
Post by: DCelso on March 16, 2010, 02:23:51 PM
why?
Is there more than one DOOM?
Title: Re: Acceso directo a un caracter perteneciente a una cadena
Post by: FreeYourMind on March 16, 2010, 02:33:35 PM
Inspired in 'Altered Beast'  ::)
Title: Re: Acceso directo a un caracter perteneciente a una cadena
Post by: SplinterGU on March 16, 2010, 04:38:08 PM
debido al tipo de datos que es una string, esto solo es una facilidad para la lectura... si queres modificar usando el metodo de array, quizas te convenga usar char[] en vez de string.

saludos
Title: Re: Acceso directo a un caracter perteneciente a una cadena
Post by: Fede on March 16, 2010, 09:43:58 PM
Muchas gracias a todos, da gusto que te reciban de esta manera.

Splintergu, supongo que seras el mismo de gp32, saludos especiales, veo que estas en todas partes.

Gracias de nuevo, y hare el último intento con arrays de chars a ver como responde en velocidad la wiz.
Title: Re: Acceso directo a un caracter perteneciente a una cadena
Post by: FreeYourMind on March 16, 2010, 10:11:15 PM
Yo soy GameMaster de Gp32 por si no lo sabias, tu nick cual es ?
Title: Re: Acceso directo a un caracter perteneciente a una cadena
Post by: SplinterGU on March 16, 2010, 11:14:47 PM
bienvenido.
Title: Re: Acceso directo a un caracter perteneciente a una cadena
Post by: Rein (K´)ah Al-Ghul on March 17, 2010, 12:03:11 AM
bienvenido
Title: Re: Acceso directo a un caracter perteneciente a una cadena
Post by: Fede on March 17, 2010, 06:30:39 AM
Quote from: FreeYourMind on March 16, 2010, 10:11:15 PM
Yo soy GameMaster de Gp32 por si no lo sabias, tu nick cual es ?

Perdona, pero no reconocí tu logo, pero el de splintergu si. Mi nick es el mismo.

Lo que pasa es que no soy, ni puedo ser, un miembro muy activo, ya sabes: trabajo, casa, mujer, niño (y otro en camino).

Me topé con la wiz por casualidad, con sus foros, por lo mismo y con bennu idem. Es todo una cadena de coincidencias, pero predestinadas unas con otras, y me encantó su espíritu.

Fui programador freelance de clipper en su época y al ver el mundillo este, me volvió el gusanillo, el cual tube que abandonar al terminar mi etapa de juventud y 'sentar la cabeza'.

Sinceramente, esto ha mejorado, pero para mejor-mejor.

Lo malo es que ahora, mientras deayuno, voy a tener que mirar 2 foros.  ;)