User Tag List

Resultados 1 al 11 de 11

Tema: Problema en acceso directo a un caracter perteneciente a una cadena.

  1. #1

    Fecha de ingreso
    Sep 2009
    Ubicación
    Málaga
    Mensajes
    4,456
    Mencionado
    98 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    10,240
    Agradecer Thanks Received 
    1,553
    Thanked in
    Agradecido 923 veces en [ARG:2 UNDEFINED] posts

    Problema en acceso directo a un caracter perteneciente a una cadena.

    Hola compañeros.

    Sigo haciendo mis pinitos con Bennu y estoy intentado hacer una cosa que no se si se puede.

    Intento acceder directamente a un caracter determinado de una variable del tipo string y no se si es que no se, o es que no se puede.

    Un ejemplo:

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

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


    He descubierto que con el modelo: "variable[coeficiente]" accedo directamente, pero no hay forma de modificarlo.

    Si hago prueba[2]="x";

    Bennu me da el error de "se necesita una variable", o algo así.

    También he intentado "hacer trampas" usando punteros que apunten a la variable, pero nanai. No tengo pantalones de conseguir un puntero que me apunte a ninguna letra.

    Todo esto lo estoy intentado porque el uso de las funciones de tratamiento de cadena de Bennu me elentencen mucho el programa, y yo sólo quiero poder cambiar letras en un string ya fijo, pero que por fuerza tiene que ser string.

    Recapitulo, tengo un string, y tengo que devolver ese string modificado, no me vale cambiar el string por array ni otra cosa. Me vale cualquier cambio intermedio, pero al final es ese string el que tengo que asignar.

    Gracias y saludos.

    Hace más el que quiere que el que puede.

    Proyectos: Wizor (100%). Bennu File Manager (100%). Remake gráfico Echo 99%.

  2. #2

    Fecha de ingreso
    Sep 2005
    Mensajes
    16,183
    Mencionado
    270 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    967
    Agradecer Thanks Received 
    2,312
    Thanked in
    Agradecido 1,584 veces en [ARG:2 UNDEFINED] posts
    No estoy seguro, pero intenta hacer:
    prueba[2]='x';
    Usando la "tilde" que hay al lado del cero, bajo la interrogación (si tienes un teclado español, claro). Las dobles comillas indican una string, no un dato char, que es lo que te está pidiendo.

    Si no, tendrás que usar substr para dividir la cadena y meter el dato en medio, creo que sería algo así:

    prueba=substr(prueba,0,1)+"x"+substr(prueba,3,-1);
    Los valores creo que indicaban la letra inicial/final, pero si usas valores negativos, cuenta desde el final (el -1 es para que llegue hasta la última letra).
    PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
    PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%

  3. #3

    Fecha de ingreso
    Sep 2009
    Ubicación
    Málaga
    Mensajes
    4,456
    Mencionado
    98 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    10,240
    Agradecer Thanks Received 
    1,553
    Thanked in
    Agradecido 923 veces en [ARG:2 UNDEFINED] posts
    Gracias, pero no va.

    El problema esta en que bennu no me reconoce como variable al string cuando intento escribir en ella de la forma string[x], pero sin embargo me deja leer.

    Con substr ya tengo la rutina echa y va bastante lenta, es por eso que intento acceder a las letras de la string directamente, algo así como utilizando punteros o arrays, pero no lo consigo.

    Por favor, que alguien me diga si se puede o no. Si en un par de dias no lo consigo dejaré la rutina tal como está y continuaré con el desarrollo.

    A ver si doy por acabada la primera vesión beta de una vez y la publico...

    Por cierto, se que no lo he comentado. Se trata de un simple visor de texto plano, para no tener que ir al pc a leer los readme y los ini en la wiz.

    Hace más el que quiere que el que puede.

    Proyectos: Wizor (100%). Bennu File Manager (100%). Remake gráfico Echo 99%.

  4. #4

    Fecha de ingreso
    Mar 2003
    Ubicación
    Vallirana City
    Mensajes
    1,963
    Mencionado
    2 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    31
    Thanked in
    Agradecido 6 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por fbustamante Ver mensaje
    Gracias, pero no va.

    El problema esta en que bennu no me reconoce como variable al string cuando intento escribir en ella de la forma string[x], pero sin embargo me deja leer.

    Con substr ya tengo la rutina echa y va bastante lenta, es por eso que intento acceder a las letras de la string directamente, algo así como utilizando punteros o arrays, pero no lo consigo.

    Por favor, que alguien me diga si se puede o no. Si en un par de dias no lo consigo dejaré la rutina tal como está y continuaré con el desarrollo.

    A ver si doy por acabada la primera vesión beta de una vez y la publico...

    Por cierto, se que no lo he comentado. Se trata de un simple visor de texto plano, para no tener que ir al pc a leer los readme y los ini en la wiz.
    Prueba tambien a postear la duda en el foro oficial de Foro oficial de Bennu
    A parte de grandes expertos esta Splinter el "creador" del mismo... si ellos no lo saben entonces si que esta chunga la cosa jejeje

  5. #5

    Fecha de ingreso
    Sep 2009
    Ubicación
    Málaga
    Mensajes
    4,456
    Mencionado
    98 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    10,240
    Agradecer Thanks Received 
    1,553
    Thanked in
    Agradecido 923 veces en [ARG:2 UNDEFINED] posts
    Esto es rapidez. Payavoy.

    Hace más el que quiere que el que puede.

    Proyectos: Wizor (100%). Bennu File Manager (100%). Remake gráfico Echo 99%.

  6. #6

    Fecha de ingreso
    Sep 2005
    Mensajes
    16,183
    Mencionado
    270 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    967
    Agradecer Thanks Received 
    2,312
    Thanked in
    Agradecido 1,584 veces en [ARG:2 UNDEFINED] posts
    Pues si eso no te ha funcionado, no se, espero que alguien tenga más idea que yo, porque siempre he usado las cadenas así.
    Ten en cuenta que las STRINGS en realidad es un tipo de dato que se implementa como una "clase", es decir, sólo puedes trabajar con ellas usando las funciones específicas, ya que es un array dinámico de chars.

    Si 'x' no te vale, prueba con ASC("x"). ASC es una función que devuelve el código ASCII del primer valor de la cadena que le pasas por parámetro.
    De todas maneras, si usas sólo una fuente, y esta tiene el mismo tamaño para todas las letras, puedes usar un array de CHARs en lugar de STRINGs. No sé, es una idea.
    PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
    PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%

  7. #7

    Fecha de ingreso
    Jul 2009
    Mensajes
    8,736
    Mencionado
    64 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    937
    Agradecer Thanks Received 
    571
    Thanked in
    Agradecido 345 veces en [ARG:2 UNDEFINED] posts
    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

  8. #8

    Fecha de ingreso
    Sep 2009
    Ubicación
    Málaga
    Mensajes
    4,456
    Mencionado
    98 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    10,240
    Agradecer Thanks Received 
    1,553
    Thanked in
    Agradecido 923 veces en [ARG:2 UNDEFINED] posts
    Gracias a todos por las repuestas, hare el último intento con arrays de char.

    Por cierto, he sido muy bien recibido en los foros de Bennu, y desde aquí doy también las gracias y en especial a SplinterGu, que está en todas partes.

    Hace más el que quiere que el que puede.

    Proyectos: Wizor (100%). Bennu File Manager (100%). Remake gráfico Echo 99%.

  9. #9

    Fecha de ingreso
    May 2008
    Ubicación
    A tu lado, en tus sueños
    Mensajes
    22,294
    Mencionado
    145 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    319
    Agradecer Thanks Received 
    553
    Thanked in
    Agradecido 425 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    3
    Hola fbustamante

  10. #10

    Fecha de ingreso
    Sep 2005
    Mensajes
    16,183
    Mencionado
    270 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    967
    Agradecer Thanks Received 
    2,312
    Thanked in
    Agradecido 1,584 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por fbustamante Ver mensaje
    Gracias a todos por las repuestas, hare el último intento con arrays de char.

    Por cierto, he sido muy bien recibido en los foros de Bennu, y desde aquí doy también las gracias y en especial a SplinterGu, que está en todas partes.
    Más de uno está en todas partes, lo que no voy a hacer es responderte lo mismo en los dos sitios, con una vez creo que ya es suficiente ¿no?
    PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
    PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%

  11. #11

    Fecha de ingreso
    Sep 2009
    Ubicación
    Málaga
    Mensajes
    4,456
    Mencionado
    98 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    10,240
    Agradecer Thanks Received 
    1,553
    Thanked in
    Agradecido 923 veces en [ARG:2 UNDEFINED] posts
    OIDO COCINA!.

    (Desde luego, no perdonais ni una...)

    Hace más el que quiere que el que puede.

    Proyectos: Wizor (100%). Bennu File Manager (100%). Remake gráfico Echo 99%.

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •