Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Danielo515 on October 19, 2010, 12:22:37 AM

Title: Esta funcion devuelve entero en vez de string
Post by: Danielo515 on October 19, 2010, 12:22:37 AM
Hola amigos, alguien me puede decir por qué esta funcion devuelve un entero en lugar de una string?
Los say funcionan bien, así que no se porqué no funciona bien la string que retorna.

GRaciacas


[code language="bennu"]FUNCTION string cortar(string texto,int mitad);
    PRIVATE
    int longitud;
    int media_longitud;
    string resultado;
BEGIN
    longitud=len(texto);
    media_longitud=longitud/2;
    while(texto[media_longitud]!=" ") //solo cortamos a partir de la mitad donde encontremos un espacio
        media_longitud++;
    end
    say("cortando texto");
    if(mitad==1)
            resultado=substr(texto,0,media_longitud);
            say("primera mitad: "+resultado);
    else
            resultado=substr(texto,media_longitud-longitud);
    end
    return resultado;
END[/code]
Title: Re: Esta funcion devuelve entero en vez de string
Post by: Danielo515 on October 19, 2010, 01:00:47 AM
Por cierto, ya que estamos.
Cuando pego un gráfico en otro usando map_xputnp ¿cuanto tiempo se queda el gráfico así? ¿Hasta el fin de ejecución del programa? ¿Y si lo quiero retornar a su valor original? Entiendo que no me vale con cargarlo del fpg porque queda también modificado ahí, así que la unica solución sería clonarlo y trabajar y descargar el clon ¿estoy en lo cierto?

Gracias.
Title: Re: Esta funcion devuelve entero en vez de string
Post by: SplinterGU on October 19, 2010, 01:08:44 AM
ya se hablo y explico que es lo que se hace mal para que una funcion no devuelva el tipo que se espera.
Title: Re: Esta funcion devuelve entero en vez de string
Post by: Noivern on October 19, 2010, 02:03:45 AM
Es por que no has declarado la función antes de usarla. Si no lo haces devuelve un unsigned int.
Title: Re: Esta funcion devuelve entero en vez de string
Post by: SplinterGU on October 19, 2010, 02:11:55 AM
Quote from: Noivern on October 19, 2010, 02:03:45 AM
Es por que no has declarado la función antes de usarla. Si no lo haces devuelve un unsigned int.

;)

estoy casi seguro que Danielo515 ya pregunto esto hace tiempo...

:D
Title: Re: Esta funcion devuelve entero en vez de string
Post by: Danielo515 on October 19, 2010, 08:23:06 AM
 :'( vaya, se ve que me falló la memoria. Pero normalmente me daría una especie de flassh, y esta vez ni siquiera recuerdo que ocurriera.

De todos modos, creo que a veces ciertas cosas se olvidan, y en bennu hay algunos datos que es difícil encontrar por tu cuenta  (por ejemplo en el wiki). Opino que se debería abrir un hilo de preguntas frecuentes, ya que el buscador del foro es malísimo.

Muchas gracias por las respuestas, bueno, por la respuesta  ;)
Title: Re: Esta funcion devuelve entero en vez de string
Post by: DCelso on October 19, 2010, 09:22:50 AM
¿esto no se podía corregir con "bgdc -Ca" ?
Title: Re: Esta funcion devuelve entero en vez de string
Post by: SplinterGU on October 19, 2010, 10:48:08 AM
Quote from: DCelso on October 19, 2010, 09:22:50 AM
¿esto no se podía corregir con "bgdc -Ca" ?

pues no, eso hace autodeclare y efectivamente lo haria incorrectamente.

lo que ayudaria a detectar estos errores es el --pedantic
Title: Re: Esta funcion devuelve entero en vez de string
Post by: DCelso on October 19, 2010, 10:52:24 AM
:D, ahí er tío, poniéndonos a prueba :), eso no se hace que malage. :D
Se nota que tienes vocación de Maestro :D
Title: Re: Esta funcion devuelve entero en vez de string
Post by: SplinterGU on October 19, 2010, 11:07:46 AM
edite me mensaje, porque te interprete mal... asi que tu respuesta quedo que no se entiende, por que lo dices... pero bueno, no importa, la idea es que con un parametro se puede ayudar a detectar que anda mal.

y por otro lado, tu comentario me ayudo a darme cuenta que el parametro -p estaba mal, ya lo corregi, ahora si va el karma.
Title: Re: Esta funcion devuelve entero en vez de string
Post by: Windgate on October 19, 2010, 12:05:19 PM
Reconozco que desconocía lo del declare para functions que no devuelven int xDDD

Quote from: Danielo515 on October 19, 2010, 01:00:47 AM
Por cierto, ya que estamos.
Cuando pego un gráfico en otro usando map_xputnp ¿cuanto tiempo se queda el gráfico así? ¿Hasta el fin de ejecución del programa? ¿Y si lo quiero retornar a su valor original? Entiendo que no me vale con cargarlo del fpg porque queda también modificado ahí, así que la unica solución sería clonarlo y trabajar y descargar el clon ¿estoy en lo cierto?

Gracias.

clone_map, siempre clone_map...
Title: Re: Esta funcion devuelve entero en vez de string
Post by: SplinterGU on October 19, 2010, 03:07:46 PM
ya lo sabias, recuerdo que participaste de esta discusion en otros hilos tiempo atras.
Title: Re: Esta funcion devuelve entero en vez de string
Post by: DCelso on October 19, 2010, 05:34:11 PM
:D, splinter a ver si vas a tener dejavus desos :D. que tol mundo dice que no se acuerda y tu sí :D.
Title: Re: Esta funcion devuelve entero en vez de string
Post by: SplinterGU on October 19, 2010, 06:32:24 PM
Quote from: DCelso on October 19, 2010, 05:34:11 PM
:D, splinter a ver si vas a tener dejavus desos :D. que tol mundo dice que no se acuerda y tu sí :D.

a las pruebas me remito...

http://forum.bennugd.org/index.php?topic=1445.0

y eso que tengo una memoria de mierda.

y hay mas con respecto a la autodeclaracion debido al uso de una funcion antes de escribirla, y tambien otros de retorno de strings, pero no lo encuentro.

y voy a decir mas, todos los que participaron en este hilo participaron en otros similares.
Title: Re: Esta funcion devuelve entero en vez de string
Post by: Windgate on October 19, 2010, 07:31:20 PM
Me sonaba haber hablado de ello en su día, pero ahora mismo lo tenía olvidado :(

Dudo que haya algún tema del que no haya hablado yo aquí xD
Title: Re: Esta funcion devuelve entero en vez de string
Post by: SplinterGU on October 19, 2010, 07:37:51 PM
felizmente yo creo lo mismo, que has participado en todos los temas importantes o en su mayoria.

:)