//No guarda los cambios en el archivo, solo los aplica en el arreglo //Devuelve true si lo consiguio, o false si no private bool AplicarCambios() { activarEventosTextChanged = false; Random r = new Random(); //Se va a usar este numero aleatorio para añadirle al nombre string nombre = tNomCompleto.Text; string usuario = tNomUsuario.Text; string contrasenia = tContrasenia.Text; byte tipo = 3; //va a almacenar el tipo de docente en un dato numerico //0: Administrador //1: Coordinador - docente //2: Coordinador //3: Docente string nuevaLinea; //Es la linea que contiene la informacion del usuario y la que se añadira al archivo string[] docentesAux = new string[docentes.Length + 1]; //Se va a usar esta variable en caso que se un usuario cambie su tipo a docente bool continuar = true; bool guardar = true; string[] aux; if (pos != null) { //Añade un numero aleatorio al nombre para asegurarse que sea unico nombre += ";" + r.Next(0, 9) + "" + r.Next(10, 99) % 10; //Determina el dato numerico correspondiente al tipo if (rbDocente.Checked) { tipo = 3; } else if (rbCoordinador.Checked) { tipo = 2; } else if (rbDocCor.Checked) { tipo = 1; } else if (rbAdmin.Checked) { tipo = 0; } do { foreach (string linea in usuarios) { if (linea != "" && linea != usuarios[pos.Value]) { continuar = true; aux = linea.Split('░'); if (aux[0].Equals(usuario)) { labelInfo.Text = "Nombre de usuario no disponible, por favor intente con otro."; continuar = true; guardar = false; break; } else { labelInfo.Text = ""; } if (aux[2].Equals(nombre)) { nombre = nombre.Substring(0, nombre.Length - 3) + ";" + r.Next(0, 9) + "" + r.Next(10, 99) % 10; continuar = false; break; } } } } while (!continuar); nuevaLinea = usuario + "░"; nuevaLinea += StringCipher.Encrypt(contrasenia + tipo, nombre) + "░"; nuevaLinea += nombre; //Añadimos los cambios tambien al arreglo docentes con informacion correspondientes a datos\\docentes.txt //En caso de que haya una nuevo docente if (tipo == 3 || tipo == 1) { aux = usuarios[pos.Value].Split('░'); continuar = true; //vamos a reutilizar la variable continuar, ahora significara que si es verdadero, el //usuario especificado no existe en el arreglo docente y procedera a añadirlo //si es falso, significa que no existe y procedera a añadirlo for (int i = 0; i < docentes.Length; i++) { docentesAux[i] = docentes[i]; if (aux[2] == docentes[i]) { continuar = false; docentes[i] = nombre; //Añadimos un pendiente de cambiar nombre de carpeta foreach (string[] cambios in cambiosNombreCarpetas) { if (cambios[1] == aux[2]) { cambios[1] = nombre; } } break; } } if (continuar) { docentesAux[docentes.Length] = nombre; docentes = docentesAux; } } //En caso de que un docente deje de serlo if (tipo == 2 || tipo == 0) { aux = usuarios[pos.Value].Split('░'); for (int i = 0; i < docentes.Length; i++) { if (aux[2] == docentes[i]) { docentes[i] = ""; break; } } } usuarios[pos.Value] = nuevaLinea; } return(guardar); }
private void bIngUsuario_Click(object sender, EventArgs e) { Random r = new Random(); //Se va a usar este numero aleatorio para añadirle al nombre string nombre = tNomCompleto.Text; string usuario = tNomUsuario.Text; string contrasenia = tContrasenia.Text; byte tipo = 3; //va a almacenar el tipo de docente en un dato numerico //0: Administrador //1: Coordinador - docente //2: Coordinador //3: Docente string nuevaLinea; //Es la linea que contiene la informacion del usuario y la que se añadira al archivo string[] archivo; //Arreglo correspondiente a las lineas del archivo que se va a leer para buscar que no haya conflicto en los nombres de usuario bool continuar = true; bool guardar = true; string[] aux; //Añade un numero aleatorio al nombre para asegurarse que sea unico nombre += ";" + r.Next(0, 9) + "" + r.Next(10, 99) % 10; //Determina el dato numerico correspondiente al tipo if (rbDocente.Checked) { tipo = 3; } else if (rbCoordinador.Checked) { tipo = 2; } else if (rbDocCor.Checked) { tipo = 1; } else if (rbAdmin.Checked) { tipo = 0; } ManejoDeArchivos.CrearArchivo("datos//usuarios.txt"); archivo = File.ReadAllLines("datos//usuarios.txt"); do { foreach (string linea in archivo) { continuar = true; aux = linea.Split('░'); if (aux[0].Equals(usuario)) { MessageBox.Show("Nombre de usuario no disponible, por favor intente con otro.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); continuar = true; guardar = false; break; } if (aux[2].Equals(nombre)) { nombre = nombre.Substring(0, nombre.Length - 3) + ";" + r.Next(0, 9) + "" + r.Next(10, 99) % 10; continuar = false; break; } } } while (!continuar); if (guardar) { //Se procede a modificar el archivo con la informacion de los usuarios nuevaLinea = usuario + "░"; nuevaLinea += StringCipher.Encrypt(contrasenia + tipo, nombre) + "░"; nuevaLinea += nombre; ManejoDeArchivos.AniadirLineaArchivo("datos//usuarios.txt", nuevaLinea); //Se procede a modificar el archivo con la informacion de los nombres de los docentes if (tipo == 3 || tipo == 1) { ManejoDeArchivos.AniadirLineaArchivo("datos//docentes.txt", nombre); } } }