private void btnCargarArch_Click(object sender, EventArgs e) { txtNArch.Text = txtNArch.Text.ToUpper(); if (txtNArch.Text != "") { try { if (File.Exists(txtNArch.Text)) { txtN.Text = ""; txtM.Text = ""; txtFilaJ.Text = ""; txtFilaT.Text = ""; txtFilaOID.Text = ""; txtFilaOSI.Text = ""; txtColumnaJ.Text = ""; txtColumnaT.Text = ""; txtColumnaOID.Text = ""; txtColumnaOSI.Text = ""; int erarch = obj.leerArchivoIN(txtNArch.Text); if (erarch == -1) { char[] sep = txtNArch.Text.ToCharArray(); int er = obj.crearArchivoOUT(int.Parse(sep[3].ToString())); if (er == -1) { txtNArch.ReadOnly = true; btnCargarArch.Enabled = false; btnGenEsp.Enabled = true; archn = true; List <string> caminos = obj.generarCaminos(); if (obj.objetivo) { MessageBox.Show("Se encontraron " + caminos.Count.ToString() + " caminos.", "Caminos generados", MessageBoxButtons.OK); } else { MessageBox.Show("No se encontraron caminos.", "Objetivo inalcanzable", MessageBoxButtons.OK); } frmCaminoGráfico frm = new frmCaminoGráfico(obj.espacio, caminos); frm.Show(); } else { string error = ""; switch (er) { case 0: error = "M o N (o ambas) son igual a 0"; break; case 1: error = "Tom o Jerry no se encuentran en coordenadas válidas de la superficie de la casa."; break; case 2: error = "Tom y Jerry están en la misma casilla."; break; case 3: error = "Algún obstáculo no está situado en coordenadas válidas de la superficie."; break; case 4: error = "Los vértices que representan un obstáculo no cumplen una relación válida entre sí."; break; case 5: error = "Dos o más obstáculos se solapan."; break; case 6: error = "Tom o Jerry están en una casilla ocupada por un obstáculo."; break; } MessageBox.Show("Error " + er.ToString() + "\n" + error, "Error en " + txtNArch.Text, MessageBoxButtons.OK); } } else if (erarch == 0) { MessageBox.Show("No se localizó el archivo", "Error en el archivo", MessageBoxButtons.OK); } else { MessageBox.Show("No se pudo leer el archivo correctamente.", "Archivo dañado", MessageBoxButtons.OK); } } else { MessageBox.Show("El nombre introducido no coincide con ningun archivo existente.", "No se encontró el archivo", MessageBoxButtons.OK); } } catch { MessageBox.Show("No se pudo leer ni generar el nuevo archivo .RES", "Error", MessageBoxButtons.OK); } } else { MessageBox.Show("Debes introducir el nombre del archivo.", "No se pudo completar la operación", MessageBoxButtons.OK); } }
private void btnGenEsp_Click(object sender, EventArgs e) { if (archn) { DialogResult result = MessageBox.Show("Se generarán nuevos archivos ¿De aucerdo?", "¿Continuar?", MessageBoxButtons.YesNo); if (result == DialogResult.No) { return; } } int narch = obj.crearArchivoIN(); int erarch = obj.leerArchivoIN("TOM" + narch.ToString() + ".DAT"); if (erarch == -1) { int er = obj.crearArchivoOUT(narch); if (er == -1) { List <string> caminos = obj.generarCaminos(); if (obj.objetivo) { MessageBox.Show("Se generó TOM" + narch + ".DAT y TOM" + narch + ".RES correctamente.\n" + "Se encontraron " + caminos.Count.ToString() + " caminos.", "Caminos generados", MessageBoxButtons.OK); } else { MessageBox.Show("Se generó " + narch + " correctamente.\n" + "No se encontraron caminos.", "Objetivo inalcanzable", MessageBoxButtons.OK); } frmCaminoGráfico frm = new frmCaminoGráfico(obj.espacio, caminos); frm.Show(); } else { string error = ""; switch (er) { case 0: error = "M o N (o ambas) son igual a 0"; break; case 1: error = "Tom o Jerry no se encuentran en coordenadas válidas de la superficie de la casa."; break; case 2: error = "Tom y Jerry están en la misma casilla."; break; case 3: error = "Algún obstáculo no está situado en coordenadas válidas de la superficie."; break; case 4: error = "Los vértices que representan un obstáculo no cumplen una relación válida entre sí."; break; case 5: error = "Dos o más obstáculos se solapan."; break; case 6: error = "Tom o Jerry están en una casilla ocupada por un obstáculo."; break; } MessageBox.Show("Error " + er.ToString() + "\n" + error, "Error en los datos", MessageBoxButtons.OK); } } else if (erarch == 0) { MessageBox.Show("No se localizó el archivo", "Error en el archivo", MessageBoxButtons.OK); } else { MessageBox.Show("No se pudo leer el archivo correctamente.", "Archivo dañado", MessageBoxButtons.OK); } }