Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Hola on May 15, 2011, 07:58:39 PM

Title: Cadenas de texto
Post by: Hola on May 15, 2011, 07:58:39 PM
Hola, porque el Fenix no puede realizar una simple comparacion para ver si una cadena de texto es igual a otra o no?

Yo pongo..

IF (CADENA1 == CADENA2)
//bla bla...
END

Cadena1 = "Hola", Cadena2 = "Hola"

Pero parece que no entiende que las cadenas son exactamente iguales entonces no me ejecuta las otras sentencias que surgirian si da que las cadenas son iguales.
Title: Re: Cadenas de texto
Post by: darío on May 15, 2011, 08:12:48 PM
Puedes usar strcmp que devolverá 0 si las cadenas son iguales.
Title: Re: Cadenas de texto
Post by: SplinterGU on May 15, 2011, 11:55:30 PM
No se en fenix, en bennugd funciona perfecto.


import "mod_say";
import "mod_string";

private

string a = "hola";
string b = "hola";
string c ;

begin

if ( "hello" == "hello" ) say ( "1" ); end
if ( a == b ) say ( "2" ); end
c = "ho" + "la";
if ( c == b ) say ( "3" ); end

end


strcmp no existe en este lenguaje, strcasecmp si existe.
Title: Re: Cadenas de texto
Post by: darío on May 16, 2011, 05:31:01 PM
Me pasé de listo ;D
Title: Re: Cadenas de texto
Post by: Drumpi on May 16, 2011, 07:49:12 PM
Escribe por pantalla los valores de CADENA1 y CADENA2 justo antes del IF (o usando SAY y la consola de comandos), y después el valor de la comparación, a ver si de verdad CADENA1 y CADENA2 valen "Hola" y "Hola" y que Bennu las detecta como distintas.
Ojo a las mayúsculas y los espacios que no se ven.

Nunca asumas que los valores que llegan al IF que falla son los que tu esperas.