Autor Tema: Acceso directo a un caracter perteneciente a una cadena  (Leído 7845 veces)

Fede

  • Hero Member
  • *****
  • Mensajes: 1531
  • Karma: 71
  • Buen ambiente, buen karma.
Acceso directo a un caracter perteneciente a una cadena
« en: Marzo 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
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: Acceso directo a un caracter perteneciente a una cadena
« Respuesta #1 en: Marzo 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.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

darío

  • Sr. Member
  • ****
  • Mensajes: 458
  • Karma: 48
Re: Acceso directo a un caracter perteneciente a una cadena
« Respuesta #2 en: Marzo 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.
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

FreeYourMind

  • Hero Member
  • *****
  • Mensajes: 5681
  • Karma: 128
    • GECA soft
Re: Acceso directo a un caracter perteneciente a una cadena
« Respuesta #3 en: Marzo 16, 2010, 02:02:13 pm »
Welcome to your DOOM!  ;D

DCelso

  • Hero Member
  • *****
  • Mensajes: 3708
  • Karma: 181
Re: Acceso directo a un caracter perteneciente a una cadena
« Respuesta #4 en: Marzo 16, 2010, 02:23:51 pm »
why?
Is there more than one DOOM?
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

FreeYourMind

  • Hero Member
  • *****
  • Mensajes: 5681
  • Karma: 128
    • GECA soft
Re: Acceso directo a un caracter perteneciente a una cadena
« Respuesta #5 en: Marzo 16, 2010, 02:33:35 pm »
Inspired in 'Altered Beast'  ::)

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12884
  • Karma: 377
Re: Acceso directo a un caracter perteneciente a una cadena
« Respuesta #6 en: Marzo 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
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Fede

  • Hero Member
  • *****
  • Mensajes: 1531
  • Karma: 71
  • Buen ambiente, buen karma.
Re: Acceso directo a un caracter perteneciente a una cadena
« Respuesta #7 en: Marzo 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.
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

FreeYourMind

  • Hero Member
  • *****
  • Mensajes: 5681
  • Karma: 128
    • GECA soft
Re: Acceso directo a un caracter perteneciente a una cadena
« Respuesta #8 en: Marzo 16, 2010, 10:11:15 pm »
Yo soy GameMaster de Gp32 por si no lo sabias, tu nick cual es ?

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12884
  • Karma: 377
Re: Acceso directo a un caracter perteneciente a una cadena
« Respuesta #9 en: Marzo 16, 2010, 11:14:47 pm »
bienvenido.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Rein (K´)ah Al-Ghul

  • Hero Member
  • *****
  • Mensajes: 657
  • Karma: 8
Re: Acceso directo a un caracter perteneciente a una cadena
« Respuesta #10 en: Marzo 17, 2010, 12:03:11 am »
bienvenido

Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.

en vez de darme Karma positivo, denme (K´)arma negativ

Fede

  • Hero Member
  • *****
  • Mensajes: 1531
  • Karma: 71
  • Buen ambiente, buen karma.
Re: Acceso directo a un caracter perteneciente a una cadena
« Respuesta #11 en: Marzo 17, 2010, 06:30:39 am »
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.  ;)

Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.