Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Duda con string.equal

Iniciado por cazagavilan, Abril 08, 2016, 08:27:09 AM

Tema anterior - Siguiente tema
Abril 08, 2016, 08:27:09 AM Ultima modificación: Abril 08, 2016, 09:00:38 PM por cazagavilan

public class BD : MonoBehaviour
{

public List<cliente> clientes = new List<cliente> ();

StreamWriter sw;
StreamReader sr;

string archivoLeido;
string[] archivoPorLineas;


public class cliente
{
   public string usuario;
   public string contraseña;
   
   public cliente(string usu, string contra)
   {
      usuario = usu;
      contraseña = contra;
   }
}

bool elClienteYaExiste = false;

void Start ()
{
   
}

void Update ()
{

}

public void RegistrarUsuario (string rUsu, string rContra)
{
   sr = new StreamReader("C:\\Users\\Jonathan\\Desktop\\Unity\\Prueba de cliente servidor con base de datos\\000_ejecutables\\Clientes.txt");
   archivoLeido = sr.ReadToEnd ();
   sr.Close();
   archivoPorLineas = archivoLeido.Split(null);


   for(int i = 0; i < archivoPorLineas.Length; i++)
   {
      if(archivoPorLineas.Equals("U" + rUsu))
      {
         elClienteYaExiste = true;
      }
   }

   if(elClienteYaExiste)
   {
      print("Ese nombre de usuario ya existe");
   }

   else
   {
      clientes.Add(new cliente(rUsu, rContra));
      sw = new StreamWriter ("C:\\Users\\Jonathan\\Desktop\\Unity\\Prueba de cliente servidor con base de datos\\000_ejecutables\\Clientes.txt", true);
      sw.WriteLine("U" + rUsu + " " + "C" + rContra);
      sw.Close();

      for (int index = 0; index < clientes.Count; index++)
      {
         if(index == (clientes.Count - 1))
         {
            print("Se añadio a :" + clientes[index].usuario + " " + clientes[index].contraseña);
         }
      }

   }

   elClienteYaExiste = false;
}

public bool validarUsuario(string u, string c)
{
   sr = new StreamReader("C:\\Users\\Jonathan\\Desktop\\Unity\\Prueba de cliente servidor con base de datos\\000_ejecutables\\Clientes.txt");
   archivoLeido = sr.ReadToEnd ();
   sr.Close();
   archivoPorLineas = archivoLeido.Split("\n"[0]);

   for(int i = 0; i < archivoPorLineas.Length; i++)
   {
      print (archivoPorLineas + "U" + u + " " + "C" + c);
      if (archivoPorLineas .Equals ("U" + u + " " + "C" + c))----> FALLO!
      {
         print ("el usuario y la contraseña son correctos");
         return true;
      }

      else
      {
         print ("el usuario y la contraseña son incorrectos");
         return false;
      }
         
   }
   print ("no se ha podido comproba el usuario y la contraseña");
   return false;
}
}
 
Hola! Tengo varios script que se conectan entre si para registrar usuario y para comprobar que sean correctos. La cuestion es que todo funciona perfecto pero cuando comparo dos cadenas me devuelve false en canvio cuando las muestro con print son compleramente iguales. Ya se que si la primeras cadenas no coinciden sale de la funcion(eso lo corrijo luego). La cuestion es que las dos cadenas son iguales:Jonathan Gavilan Jonathan Gavilan Gracias! 

Resuelto!Se ve que el problema eran los espacios en blanco del principio y final de las string.Saludos!

Etiquetas: