|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - tannke
126
« en: Sábado 24 de Octubre de 2009, 16:14 »
buen de momento no veo o no entiendo pq deberia darte error, donde si veo un posible error pero creo que nada que ver con el tullo es en las lineas: string linia = sr.ReadLine(); while ( linia != null ) // lee la linia { linia = sr.ReadLine(); //CREO QUE DEBERIAS BORRAR ESTA LINEA DE CODIGO if ( linia != "<codigo del virus>" ) { sw.WriteLine(linia); //Console.WriteLine(error1); } else { //Console.WriteLine("error2"); Console.WriteLine("El fitxer {0} te un virus.",f); } linia = sr.ReadLine(); }
Antes de entrar en el bucle lees la 1ª linea del archivo y la asignas a "linia" OK Entras en el bucle y vuelves a leer una nueva linea asignandola a "linia" por lo que estas perdiendo y no procesando la primera Luego cuando sales del if, else vuelves a leer, aki ok, pero luego cuando vuelves a seguir el bucle vuelves a leer saltandote otra vez una linea. Con esto lo que haces es procesar una linea si y otra no. Bueno con tu problema, cuando te da error? cuando el programa intanta abrirlo a cuando una vez has hecho el proceso lo intantas abrir? pq di es despues del proceso el error puede ser debido a lo anterior ya que te has cargado la mitad de lineas del archivo. Si no es eso no tengo ni idea, alomejor deberias probar con la clase FileStream. Saludos, y dime cosas
127
« en: Viernes 23 de Octubre de 2009, 22:24 »
Uep, català, mallorquí??
Bueno vamos a ver, no tengo mucho tiempo ahora mismo, estoi haciendo la cena y si me lio me mata la novia, por lo que no he podido ver en profundidad el codigo.
puede que sea pq el archivo esta en uso por otra aplicación?
bueno si no es eso ya mañana por la mañana me lo miro y si puedo te ayudo
saludos
128
« en: Viernes 23 de Octubre de 2009, 09:42 »
Bueno, creo si no me he saltado nada, que el programa esta mas menos bien, Alomejor tienes variables y metodos que no te hacen falta. Lo que si seria cambiar los case del switch:
double total = 0, X, Y = 0;
switch (selection) { case "1": System.Console.Write("Introdusca el 1er valor: "); X=double.Parse(Console.ReadLine()); System.Console.Write("Introdusca el 2do valor: "); Y = double.Parse(Console.ReadLine()); System.Console.WriteLine("El resultado es" + Calculadora.Suma(X,Y));
break;
129
« en: Jueves 22 de Octubre de 2009, 11:36 »
la logica seria exactamente igual para todos, solo tendrias que cambiar la formula en el interior y el nombre del metodo. Saludos.
130
« en: Miércoles 21 de Octubre de 2009, 19:42 »
Uf ahora me pillas algo perdido... has probado con: public partial class Form1 : Form { camaraweb camarita; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { camarita = new camaraweb (5, pictureimg, cmbcams ); }
131
« en: Miércoles 21 de Octubre de 2009, 17:30 »
Sobre lo 1º ahora mismo no se, no tengo con que provar, cuando llegue a casa intentare mirartelo. Para lo 2º no se si te entiendo muy bien, podrias poner que tipo de objeto quieres declarar o mejor, poner el codigo de la declaración para ver exactamente como declaras y donde. por ejemplo para declarar un bitmap podia ser: public Form1() { InitializeComponent(); } Bitmap dibujo; private void boton1(object sender, EventArgs e) { dibujo = Image.FromFile(@"C:direccion"); }
o incluso ya declararla con un valor... saludos;
132
« en: Miércoles 21 de Octubre de 2009, 17:19 »
bueno, un ejemplo del metodo sumar podria ser:
private static int Sumar(int dato1, int dato2) { int resultado = dato1 + dato2; return resultado; }
Aquí estamos declarando un metodo Estatico y Privado, lo declaramos "int" por lo que tiene que devolver un valor de este tipo. Los metodos pueden ser (creo) de cualquier tipo de objeto, podria ser void(no devuelve nada), string (devuelve una cadena)... incluso objetos creados tuyos.
En el metodo declaramos 2 variables int, cuando lo llamemos tendremos que introducir esos valores ya dentro del metodo calculamos o hacemos las operaciones que queramos que realic el metodo y al finalizar devolvemos el resultado (int, string, void...)
para llamar a este metodo hariamos:
int CalculoSuma = Sumar( 5,2 );
donde 5 y 2 pueden ser variables leidas desde un ReadLine(); y pasadas a "int"
si tienes alguna duda pregunta, saludos
133
« en: Miércoles 21 de Octubre de 2009, 17:07 »
Prueba haber con esto, solo implemento la suma, supongo habra otras maneras de hacerlo y seguramente menos complicadas, pero esta funciona public Form1() { InitializeComponent(); } // VARIABLES float resultado = 0; float tem1 = 0; bool Suma = false; bool borrar = true; //fin variables private void Uno_Click(object sender, EventArgs e) { if (borrar) { textBox1.Text = ""; borrar = false; } textBox1.Text += "1"; } private void dos_Click(object sender, EventArgs e) { if (borrar) { textBox1.Text = ""; borrar = false; } textBox1.Text += "2"; } private void tres_Click(object sender, EventArgs e) { if (borrar) { textBox1.Text = ""; borrar = false; } textBox1.Text += "3"; } //suma private void suma_Click(object sender, EventArgs e) { tem1 = float.Parse(textBox1.Text); Suma = true; borrar = true; calcular("+"); } //igual private void igual_Click(object sender, EventArgs e) { tem1 = float.Parse(textBox1.Text); calcular("="); } private void reset_Click(object sender, EventArgs e) { resultado = 0; textBox1.Text = ""; } //Operaciones private void calcular(string opera) { if (Suma) { resultado += tem1; textBox1.Text = resultado.ToString(); Suma = false; } //demas calculos if (opera == "+") Suma = true; } }
134
« en: Martes 13 de Octubre de 2009, 10:10 »
te explico la sentencia for
La Sentencia for se utiliza cuando se conoce previamente cuantas veces ha de repetirse un bloque de código. Este bloque se repetira mientras la condición evalue una expresión booleana verdadera, no será posible evaluar otro tipo de expresión.
Sintaxis:
for(inicializador; condición; iterador)
inicializador= variable int (normalmente int a=0)
condicion= aqui comparamos dos valores (ejemplo a<6) en este caso la sentencia se repetiria 5 veces
iterador= (normalmente a++ o a--) cada vez que acabe un bucle se ejecutara este comando antes de volver a comprovar la condición
ejemplo:
for(int a = 0; a<6;a++) { Console.WriteLine("Repetición nº {0}", a); }
Obtendriamos en consola:
Repetición nº 0 Repetición nº 1 Repetición nº 2 Repetición nº 3 Repetición nº 4 Repetición nº 5
135
« en: Martes 13 de Octubre de 2009, 09:40 »
creas una variable string. le asignas un valor con readline
a continuacion debes usar While( ). el while() lo que hace es que mientras lo que esté entre parentesis sea true "verdadero" ira repitiendo el bucle, el codigo que pongas entre { } del while. por lo que deberias poner mas o menos algo como esto:
while(variablestring != "Salir) // == esto significa igual, != significa diferente { ... tu codigo }
recuerda que dentro del codigo del bucle debes volver ha leer y reasignar el valor de tu variable. cuando la variable sea Salir saldras del bucle, entonces luego esctibes tu mensaje de despedia o sigues con el codigo que necesites.
de todos modos te recomiendo que te hagas con algun libro o te busques algun articulo para empezar, ya que estas son casicasi las funciones mas basicas que hay.
saludos
136
« en: Domingo 11 de Octubre de 2009, 10:45 »
martes te digo cosas, ahora no tengo mucho tiempo, saludos
137
« en: Viernes 9 de Octubre de 2009, 19:12 »
Ahi te va una pequeña reforma para que sea mas interesante el programa: atento que ahora hemos puesto arriba los using's: using System.IO; using System.Runtime.Serialization.Formatters.Binary; using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace ayudasolocodigo2 { class Program { static bool salir = false; static string opcion = null; static void Main(string[] args) { Cargar(); while (!salir) { Console.WriteLine(">>>>>>>>>>>>>>>>>>>> MENU PRINCIPAL <<<<<<<<<<<<<<<<<<<<"); Console.WriteLine("nElija opción:n"); Console.WriteLine("[ 1 ] Ingresar alumnos."); Console.WriteLine("[ 2 ] Buscar alumnos."); Console.WriteLine("[ 3 ] Ver listado."); Console.WriteLine("[ 4 ] Borrar alumnos."); Console.WriteLine("[ 5 ] Guardar."); Console.WriteLine("[ 6 ] Salir."); Console.WriteLine(); Console.Write("Opción : [ ]"); Console.CursorLeft = 11; opcion = Console.ReadLine(); if (opcion == "1") { Console.Clear(); Insertar(true); } else if (opcion == "2") { Console.Clear(); Console.WriteLine(">>>>>>>>>>>>>>>>>>>> MENU DE BUSQUEDA <<<<<<<<<<<<<<<<<<<<"); Console.WriteLine(); Console.Write("Nombre: "); string nombre = Console.ReadLine(); Buscar(nombre,false); Console.WriteLine("nPulse Enter para volver al menú..."); Console.ReadLine(); Console.Clear(); } else if (opcion == "3") { Console.Clear(); Console.WriteLine(">>>>>>>>>>>>>>>>>>>> LISTADO DE ALUMNOS <<<<<<<<<<<<<<<<<<<<"); Console.WriteLine(); if (ORDENADOS == null || ORDENADOS.Length==0) Console.WriteLine("Listado vacio"); else { for (int i = 0; i < (ORDENADOS.Length / 3); i++) { Console.WriteLine((i + 1) + ". " + ORDENADOS[i, 0] + " .... " + ORDENADOS[i, 1] + " " + ORDENADOS[i, 2]); } } Console.WriteLine(); Console.WriteLine("Pulse Enter para volver al menú..."); Console.ReadLine(); Console.Clear(); } else if (opcion == "4") { Console.Clear(); Console.WriteLine(">>>>>>>>>>>>>>>>>>>> MENU DE BORRADO <<<<<<<<<<<<<<<<<<<<"); Console.WriteLine(); Console.Write("Nombre: "); string nombre = Console.ReadLine(); Buscar(nombre, true); Console.WriteLine("nPulse Enter para volver al menú..."); Console.ReadLine(); Console.Clear(); } else if (opcion == "5") { Console.Clear(); Guardarlo(); Console.CursorTop = 14; Console.WriteLine("Datos guardados"); Console.CursorTop = 0; } else if (opcion == "6") { Guardarlo(); salir = true; } else { Console.Clear(); Console.CursorTop = 14; Console.WriteLine("Tecla no valida..."); Console.CursorTop = 0; } } } static List <string> alumnos = new List <string>(); static List <string> carrera = new List <string>(); static void Insertar(bool nuevo) { if (nuevo) { Console.WriteLine(">>>>>>>>>>>>>>>>>>>> MENU INGRESO ALUMNOS <<<<<<<<<<<<<<<<<<<<"); try { Console.WriteLine("nAlumnos en lista: {0}", alumnos.Count); } catch { Console.WriteLine("nAlumnos en lista: 0"); } string nombre = ""; string Ncarrera = ""; Console.Write("nInserte alumno: "); nombre = Console.ReadLine(); if (nombre != "") { Console.Write("Inserte carrera: "); Ncarrera = Console.ReadLine(); } Console.Clear(); Console.WriteLine(">>>>>>>>>>>>>>>>>>>> MENU INGRESO ALUMNOS <<<<<<<<<<<<<<<<<<<<"); Console.WriteLine("nAlumnos en lista: {0}", alumnos.Count+1); while (nombre != "") { alumnos.Add(nombre); carrera.Add(Ncarrera); Console.Write("nInserte alumno: "); nombre = Console.ReadLine(); if (nombre != "") { Console.Write("Inserte carrera: "); Ncarrera = Console.ReadLine(); } Console.Clear(); Console.WriteLine(">>>>>>>>>>>>>>>>>>>> MENU INGRESO ALUMNOS <<<<<<<<<<<<<<<<<<<<"); Console.WriteLine("nAlumnos en lista: {0}", alumnos.Count+1); } Console.Clear(); } string[] Ordenados = new string[alumnos .Count]; string[] Carrera = new string[alumnos .Count]; for (int a = 0; a < alumnos.Count; a++) { string temp = alumnos[a]; char[] seps = { ' ' }; string[] cad = temp.Split(seps); if (cad.Length == 1) Ordenados[a] = cad[0]; else if (cad.Length == 2) Ordenados[a] = cad[1] + " " + cad[0]; else if (cad.Length == 3) Ordenados[a] = cad[1] + " " + cad[2] + " " + cad[0]; else { for (int i = 2; i < cad.Length; i++) Ordenados[a] += cad[i] + " "; Ordenados[a] += cad[0] + " " + cad[1]; } } for (int a = 0; a < alumnos.Count; a++) Carrera[a] = carrera[a]; Ordenar(Ordenados, Carrera); } static string[,] ORDENADOS; //ordenaremos por el metodo de la burbuja static void Ordenar(string[] alumn, string[] carr) { ORDENADOS = new string[alumn .Length, 3]; string[] pos = generadorPos(alumn.Length); string auxiliar; string auxiliar2; string auxiliar3; int i, numelem = alumn.Length; bool s = true; while (s && (--numelem > 0)) { s = false; for (i = 1; i <= numelem; i++) { if (alumn[i - 1].CompareTo(alumn[i]) > 0) { auxiliar = alumn[i - 1]; alumn[i - 1] = alumn[i]; alumn[i] = auxiliar; auxiliar2 = carr[i - 1]; carr[i - 1] = carr[i]; carr[i] = auxiliar2; auxiliar3 = pos[i - 1]; pos[i - 1] = pos[i]; pos[i] = auxiliar3; s = true; } } } for (int a = 0; a < alumn.Length; a++) { ORDENADOS[a, 0] = alumn[a]; ORDENADOS[a, 1] = carr[a]; ORDENADOS[a, 2] = pos[a]; } } static string[] generadorPos(int a) { string[] pos = new string[a ]; for (int i = 0; i < a; i++) { pos[i] = "[Fue el " + (i+1) + "º en ser ingresado]"; } return pos; } static void Buscar(string nom, bool borrar) { List <string> resultado = new List <string>(); if (ORDENADOS == null) { Console.WriteLine("Nombre no encontrado"); return; } for (int i = 0; i < (ORDENADOS.Length/3); i++) { if (nom == ORDENADOS[i, 0]) resultado.Add(ORDENADOS[i, 0] + " .... " + ORDENADOS[i, 1] + " " + ORDENADOS[i, 2]); else { string str1 = ORDENADOS[i, 0]; char[] seps = { ' ' }; string[] cad = str1.Split(seps); for (int e = 0; e < cad.Length; e++) { if (nom == cad[e]) { resultado.Add(ORDENADOS[i, 0] + " .... " + ORDENADOS[i, 1] + " " + ORDENADOS[i, 2]); break; } } } } if (resultado.Count == 0) { Console.WriteLine("Nombre no encontrado"); return; } else { Console.WriteLine(); int M = 1; foreach (string n in resultado) { Console.WriteLine(M+". "+n); M++; } } if (borrar) { if (resultado.Count == 1) { Console.ForegroundColor = ConsoleColor.Red; Console.Write("n¿Seguro que quiere borrar?: "); Console.ForegroundColor = ConsoleColor.Gray; string C = Console.ReadLine(); if (C == "SI" || C == "si" || C == "s" || C == "S" || C == "Si") { BORRAR(resultado[0]); Console.WriteLine("Borrado..."); } else Console.WriteLine("NO borrado..."); } else { Console.Write("nElija el número del nombre a eliminar : "); int H = Int32.Parse(Console.ReadLine()); Console.ForegroundColor = ConsoleColor.Red; Console.Write("n¿Seguro que quiere borrar?: "); Console.ForegroundColor = ConsoleColor.Gray; string C = Console.ReadLine(); if (C == "SI" || C == "si" || C == "s" || C == "S" || C == "Si") { try { BORRAR(resultado[H-1]); Console.WriteLine("Borrado..."); } catch { Console.WriteLine("NO borrado..."); } } else Console.WriteLine("NO borrado..."); } } } static void BORRAR(string nom) { char[] seps ={ ' ' }; string[] cad = nom.Split(seps); string temp = cad[cad.Length - 4]; temp = temp.Replace("º", ""); int num = Int32.Parse(temp); alumnos.RemoveAt(num -1); carrera.RemoveAt(num-1); Insertar(false); } static void Guardarlo() { Guardar objeto = new Guardar (); objeto.guardar(alumnos, carrera); Stream fs = File.Create("agenda.bin"); BinaryFormatter seriador = new BinaryFormatter (); seriador.Serialize(fs, objeto); fs.Close(); } static void Cargar() { if (File.Exists("agenda.bin")) { Stream fs = File.OpenRead("agenda.bin"); BinaryFormatter deseriador = new BinaryFormatter (); Guardar nuevoobj; nuevoobj = (Guardar)deseriador.Deserialize(fs); fs.Close(); alumnos = nuevoobj.Cargar1(); carrera = nuevoobj.Cargar2(); Insertar(false); } } } [Serializable] class Guardar { private List<string> alumnos; private List<string> carrera; public void guardar(List<string> al, List<string> carr) { alumnos = al; carrera = carr; } public List<string> Cargar1() { return alumnos; } public List<string> Cargar2() { return carrera; } } }
bueno supongo que todo esto se podria hacer mas facil, pero yo tb soy algo novato y autodidacta. Voy haciendo las cosas con lo que conozco, alomejor hay metodods por ahi que reducen muchisimas cosas de estas. Ademas hacia tiempo que no hacia nada en modo consola, jejeje bueno si no entiendes cualquier cosa de lo puesto dimelo, prefiero que entiendas para que sirven las cosas, asi las podras usar en el futuro para lo que necesites saludos pd. editado con algunas mejoras
138
« en: Viernes 9 de Octubre de 2009, 18:26 »
mmm, vamos a ver si te sirve esto: eso si, intenta entenderlo, sino no te sirve de nada. saludos: class Program { static bool salir = false; static string opcion = null; static void Main(string[] args) { while (!salir) { Console.WriteLine(">>>>>>>>>>>>>>>>>>>> MENU PRINCIPAL <<<<<<<<<<<<<<<<<<<<"); Console.WriteLine("nElija opción:n"); Console.WriteLine("[ 1 ] Ingresar alumnos."); Console.WriteLine("[ 2 ] Buscar alumnos."); Console.WriteLine("[ 3 ] Ver listado."); Console.WriteLine("[ 4 ] Borrar alumnos."); Console.WriteLine("[ 5 ] Salir."); Console.WriteLine(); opcion= Console.ReadLine(); if (opcion == "1") { Console.Clear(); Insertar(true); } else if (opcion == "2") { Console.Clear(); Console.WriteLine(">>>>>>>>>>>>>>>>>>>> MENU DE BUSQUEDA <<<<<<<<<<<<<<<<<<<<"); Console.WriteLine(); Console.Write("Nombre: "); string nombre = Console.ReadLine(); Buscar(nombre,false); Console.WriteLine("nPulse Enter para volver al menú..."); Console.ReadLine(); Console.Clear(); } else if (opcion == "3") { Console.Clear(); Console.WriteLine(">>>>>>>>>>>>>>>>>>>> LISTADO DE ALUMNOS <<<<<<<<<<<<<<<<<<<<"); Console.WriteLine(); if (ORDENADOS == null) Console.WriteLine("Listado vacio"); else { for (int i = 0; i < (ORDENADOS.Length / 3); i++) { Console.WriteLine((i + 1) + ". " + ORDENADOS[i, 0] + " .... " + ORDENADOS[i, 1] + " " + ORDENADOS[i, 2]); } } Console.WriteLine(); Console.WriteLine("Pulse Enter para volver al menú..."); Console.ReadLine(); Console.Clear(); } else if (opcion == "4") { Console.Clear(); Console.WriteLine(">>>>>>>>>>>>>>>>>>>> MENU DE BORRADO <<<<<<<<<<<<<<<<<<<<"); Console.WriteLine(); Console.Write("Nombre: "); string nombre = Console.ReadLine(); Buscar(nombre, true); Console.WriteLine("nPulse Enter para volver al menú..."); Console.ReadLine(); Console.Clear(); } else if (opcion == "5") { salir = true; } else { Console.Clear(); Console.WriteLine("Tecla no valida..."); } } } static List <string> alumnos = new List <string>(); static List <string> carrera = new List <string>(); static void Insertar(bool nuevo) { if (nuevo) { Console.WriteLine(">>>>>>>>>>>>>>>>>>>> MENU INGRESO ALUMNOS <<<<<<<<<<<<<<<<<<<<"); try { Console.WriteLine("nAlumnos en lista: {0}", alumnos.Count); } catch { Console.WriteLine("nAlumnos en lista: 0"); } string nombre = ""; string Ncarrera = ""; Console.Write("nInserte alumno: "); nombre = Console.ReadLine(); if (nombre != "") { Console.Write("Inserte carrera: "); Ncarrera = Console.ReadLine(); } Console.Clear(); Console.WriteLine(">>>>>>>>>>>>>>>>>>>> MENU INGRESO ALUMNOS <<<<<<<<<<<<<<<<<<<<"); Console.WriteLine("nAlumnos en lista: {0}", alumnos.Count+1); while (nombre != "") { alumnos.Add(nombre); carrera.Add(Ncarrera); Console.Write("nInserte alumno: "); nombre = Console.ReadLine(); if (nombre != "") { Console.Write("Inserte carrera: "); Ncarrera = Console.ReadLine(); } Console.Clear(); Console.WriteLine(">>>>>>>>>>>>>>>>>>>> MENU INGRESO ALUMNOS <<<<<<<<<<<<<<<<<<<<"); Console.WriteLine("nAlumnos en lista: {0}", alumnos.Count+1); } Console.Clear(); } string[] Ordenados = new string[alumnos .Count]; string[] Carrera = new string[alumnos .Count]; for (int a = 0; a < alumnos.Count; a++) { string temp = alumnos[a]; char[] seps = { ' ' }; string[] cad = temp.Split(seps); if (cad.Length == 1) Ordenados[a] = cad[0]; else if (cad.Length == 2) Ordenados[a] = cad[1] + " " + cad[0]; else if (cad.Length == 3) Ordenados[a] = cad[1] + " " + cad[2] + " " + cad[0]; else { for (int i = 2; i < cad.Length; i++) Ordenados[a] += cad[i] + " "; Ordenados[a] += cad[0] + " " + cad[1]; } } for (int a = 0; a < alumnos.Count; a++) Carrera[a] = carrera[a]; Ordenar(Ordenados, Carrera); } static string[,] ORDENADOS; //ordenaremos por el metodo de la burbuja static void Ordenar(string[] alumn, string[] carr) { ORDENADOS = new string[alumn .Length, 3]; string[] pos = generadorPos(alumn.Length); string auxiliar; string auxiliar2; string auxiliar3; int i, numelem = alumn.Length; bool s = true; while (s && (--numelem > 0)) { s = false; for (i = 1; i <= numelem; i++) { if (alumn[i - 1].CompareTo(alumn[i]) > 0) { auxiliar = alumn[i - 1]; alumn[i - 1] = alumn[i]; alumn[i] = auxiliar; auxiliar2 = carr[i - 1]; carr[i - 1] = carr[i]; carr[i] = auxiliar2; auxiliar3 = pos[i - 1]; pos[i - 1] = pos[i]; pos[i] = auxiliar3; s = true; } } } for (int a = 0; a < alumn.Length; a++) { ORDENADOS[a, 0] = alumn[a]; ORDENADOS[a, 1] = carr[a]; ORDENADOS[a, 2] = pos[a]; } } static string[] generadorPos(int a) { string[] pos = new string[a ]; for (int i = 0; i < a; i++) { pos[i] = "[Fue el " + (i+1) + "º en ser ingresado]"; } return pos; } static void Buscar(string nom, bool borrar) { List <string> resultado = new List <string>(); if (ORDENADOS == null) { Console.WriteLine("Nombre no encontrado"); return; } for (int i = 0; i < (ORDENADOS.Length/3); i++) { if (nom == ORDENADOS[i, 0]) resultado.Add(ORDENADOS[i, 0] + " .... " + ORDENADOS[i, 1] + " " + ORDENADOS[i, 2]); else { string str1 = ORDENADOS[i, 0]; char[] seps = { ' ' }; string[] cad = str1.Split(seps); for (int e = 0; e < cad.Length; e++) { if (nom == cad[e]) { resultado.Add(ORDENADOS[i, 0] + " .... " + ORDENADOS[i, 1] + " " + ORDENADOS[i, 2]); break; } } } } if (resultado.Count == 0) { Console.WriteLine("Nombre no encontrado"); return; } else { Console.WriteLine(); int M = 0; foreach (string n in resultado) { Console.WriteLine(M+"."+n); M++; } } if (borrar) { if (resultado.Count == 1) { Console.ForegroundColor = ConsoleColor.Red; Console.Write("n¿Seguro que quiere borrar?: "); Console.ForegroundColor = ConsoleColor.Gray; string C = Console.ReadLine(); if (C == "SI" || C == "si" || C == "s" || C == "S" || C == "Si") { BORRAR(resultado[0]); Console.WriteLine("Borrado..."); } else Console.WriteLine("NO borrado..."); } else { Console.WriteLine("nElija el número del nombre a eliminar : "); int H = Int32.Parse(Console.ReadLine()); Console.ForegroundColor = ConsoleColor.Red; Console.Write("n¿Seguro que quiere borrar?: "); Console.ForegroundColor = ConsoleColor.Gray; string C = Console.ReadLine(); if (C == "SI" || C == "si" || C == "s" || C == "S" || C == "Si") { try { BORRAR(resultado[H]); Console.WriteLine("Borrado..."); } catch { Console.WriteLine("NO borrado..."); } } else Console.WriteLine("NO borrado..."); } } } static void BORRAR(string nom) { char[] seps ={ ' ' }; string[] cad = nom.Split(seps); string temp = cad[cad.Length - 4]; temp = temp.Replace("º", ""); int num = Int32.Parse(temp); alumnos.RemoveAt(num -1); carrera.RemoveAt(num-1); Insertar(false); } }
Si hay algun error por ahi avisarme, supongo que ahun no esta pulido 100%
139
« en: Jueves 8 de Octubre de 2009, 23:52 »
prueba con esto haber que tal: static void Main(string[] args) { string nombre; List <string> alumnos = new List <string>(); Console.WriteLine("Inserte nombres. Cuando termine pulse enter"); nombre = Console.ReadLine(); while (nombre != "") { alumnos.Add(nombre); nombre = Console.ReadLine(); } string[] Ordenados = new string[alumnos .Count]; for (int a = 0; a < alumnos.Count; a++) { string temp = alumnos[a]; char[] seps = { ' ' }; string[] cad = temp.Split(seps); if (cad.Length == 1) Ordenados[a] = cad[0]; else if (cad.Length == 2) Ordenados[a] = cad[1] + " " + cad[0]; else if (cad.Length == 3) Ordenados[a] = cad[1] + " " + cad[2] + " " + cad[0]; else { for (int i = 2; i < cad.Length; i++) Ordenados[a] += cad[i] + " "; Ordenados[a] += cad[0] + " " + cad[1]; } } Array.Sort(Ordenados); foreach (string C in Ordenados) Console.WriteLine(C); }
ahora no tengo mucho tiempo para ver tu codigo, te dejo esto haber si te puede ayudar en algo, si no avisa y mañana ya te lo miro con mas tiempo. Saludos
140
« en: Jueves 8 de Octubre de 2009, 18:35 »
bueno lo suyo seria meter todos los nombres con apellidos en una matriz (puedes usar un bucle para ir metiendolos de 1 a 1 y que al pulsar enter sin nombre escrito proceda al ordenamiento) a continuación, en un bucle, podrias implementar algo parecido a esto: alumnos seria la matriz string temp = alumnos[a]; //separamos los nombres en la matriz cadena char[] seps = { ' ' }; string[] cad = temp.Split(seps); //reorganizamos el nombre==> apellido apellido Nombre Nobre . //i vamos metiendo el resultado en una nueva matriz, Ordenados if (cad.Length == 1) Ordenados[a] = cad[0]; else if (cad.Length == 2) Ordenados[a] = cad[1] + " " + cad[0]; else if (cad.Length == 3) Ordenados[a] = cad[1] + " " + cad[2] + " " + cad[0]; else { for (int i = 2; i < cad.Length; i++) Ordenados[a] += cad[i] + " "; Ordenados[a] += cad[0] + " " + cad[1]; }
ahora solo te queda ordenar los nombres alfabeticamente, la clase Array te proporciona un metodo justo para eso, el Sort(xxxxx); bueno, te dejo mas o menos la idea, no te pongo el ejemplo completo para que investigues y comprendas como funciona, sinos no te serviria de nada. De todas formas si te quedas con cualquier duda no dudes en pedirla. bueno y lo del tema visual es hacero en Aplicacion para Windows (si estas usando visual studio) el codigo de ordenamiento seria el mismo. Te recomiendo trastees un poco con eso antessi ahun no lo sabes utilizar, ya veras que es facil utilizarlo. saludos
141
« en: Jueves 8 de Octubre de 2009, 15:58 »
ahi te va: string completo = "numero de serial: (123A123s)"; char[] seps = { '(' , ')' }; string[] cad = completo.Split(seps); string numero=cad[1];
con esto en la matriz cad[] tendrias: cad[0]=numero de serial cad[1]=123A123s espero te sirva. saludos
142
« en: Jueves 8 de Octubre de 2009, 15:47 »
Como veo que este Foro no ayudan
Hombre... mucho margen no das a la ayuda(a las 9 preguntas y a las 12 ya te estresas...) sabes hay quien trabaja o tendra otras cosas que hacer que no estar mirando el foro cada 5 minutos haber si halguien necesita algo... creo que es una falta de respeto a todos los que desinteresadamente hechan una mano a los demas. A todo esto me parece muy bien que hayas encontrado la respuesta tu solito, alomejor la proxima vez que tengas una duda gastaras un poco mas de tiempo en buscar la respuesta y despues como ultimo recurso la preguntaras. Ademas, seguro que unas paginas mas atras encontramos la respuesta a tu pregunta.
143
« en: Miércoles 7 de Octubre de 2009, 19:53 »
bueno, te voi a dejar algo para que te hagas una idea mas o menos, no esta la lectura del archivo, supongo que no tendras problemas en hacerlo meterlo en una variable string. No estan puestos los arreglos, pero donde yo pongo el console.WriteLine(X) es donde tu puedes insertar el resultado X al arreglo una vez tengas los arreglos separados puedes organizarlos con: Array.Sort(aki la matriz); class Program { static string texto ="No entiendo muy bien un par de cosas, esoi un poco 'griposo' y por eso estoy un poco lento hoy, vamos a ver. Los datos que quieres cargar que es exactamente, un archivo de texto normal, los datos estan separados unos de otros de algun modo? esapcios, por lineas..., otra cosa, a tipos te refieres a string, int, float, bytes... i por ultimo a que te refieres a que se impriman de forma ordenada? string's por un lado, int's por otro? de mayor a menor? igual que los leistes? ah e imprimir por pantalla, por impresora..."; static void Main(string[] args) { char[] seps = { ' ' }; string[] cad = texto.Split(seps); for (int i = 0; i < cad.Length; i++) { string a = cad[i]; double decim; int entero; char caracter; string Str; // comprovamos si es int, si lo es se asigna el valor a la variaable entero if(int.TryParse(a,out entero)) { Console.WriteLine("entero " + entero); } //lo mismo pero con double si es decimal else if (double.TryParse(a,out decim)) { Console.WriteLine("decimal " + decim); } //si solo es un caracter suelto lo considrariamos char else if (a.Length == 1) { Console.WriteLine("char " + a); } //si no sera un string (pero el string puede llevar chars al principio y al final else { //si lleva cualquiera de estos caracteres delante lo cogemos y luego lo quitamos, lo suyo seria poner muchos mas if (a[0].ToString() == "," || a[0].ToString() == "." || a[0].ToString() == "'" || a[0].ToString() == "¿") { Console.WriteLine("char " + a[0]); string temp = ""; for (int e = 1; e < a.Length; e++) { temp += a[e].ToString(); } a = temp; } bool prova = false; //el bool i el string son solo para esctibir en pantalla por orden string caracterrr = ""; //aki miramos si el ultimo caracter es uno de estos //podriamos crear un bucle por si encuentra uno mirar haber si hay otro int n = a.Length - 1; if (a[n].ToString() == "," || a[n].ToString() == "." || a[n].ToString() == "'" || a[n].ToString() == "?") { prova = true; caracterrr=a[n].ToString(); string temp = ""; for (int e = 0; e < a.Length-1; e++) { temp += a[e].ToString(); } a = temp; } Console.WriteLine("string " + a); if (prova) Console.WriteLine("char " + caracterrr); } } Console.ReadLine(); } }
Supongo que habra maneras menos complicadas de hacerlo... pero yo tb soy algo novato autodidacta... Ah creo que asi los decimales "double" solo los detecta si son con "," 32,3508 Saludos
144
« en: Miércoles 7 de Octubre de 2009, 17:01 »
No entiendo muy bien un par de cosas, esoi un poco "griposo" y por eso estoy un poco lento hoy, vamos a ver. Los datos que quieres cargar que es exactamente, un archivo de texto normal, los datos estan separados unos de otros de algun modo? esapcios, por lineas..., otra cosa, a tipos te refieres a string, int, float, bytes... i por ultimo a que te refieres a que se impriman de forma ordenada? string's por un lado, int's por otro? de mayor a menor? igual que los leistes? ah e imprimir por pantalla, por impresora...
bueno la verdad es que creo que estoi muy espesito hoy porque ahora leyendo lo escrito me doi cuenta que no me enterado de nada de lo que buscas exactamente...
saludos
145
« en: Miércoles 7 de Octubre de 2009, 16:49 »
borro porque es incorrecto lo que habia puesto, ando algo espesito hoy. saludos
146
« en: Domingo 4 de Octubre de 2009, 20:22 »
cuidado que en el public static string sumar(complejo x,complejo y) te puse en las dos filas la y.a, ahora ya esta corregido, otra cosa el string num lo puedes eliminar, no lo usas, y la linea num = A + " " + B + "i"; tambien la puedes quitar a lo de enseñar el + simplemente pon public void mostrar() { Console.WriteLine("{0} + {1}i",a,b); }
copia ahora como esta el ejemplo de arriba, ya esta editado y corregido
147
« en: Domingo 4 de Octubre de 2009, 19:59 »
fallos que he visto: 1º a los public int a y public int b no les dabas valor, cambia por ejemplo en public complejo(int a, int b) todas las "a" por "A" y "b" por "B" y luego dales el valor a los public int a y b el de A y B, esto dentro de complejo(.....) ---> a=A; b=B; 2º En public static string dividir(complejo x,complejo y) int a,b deberia ser un double y no un int, o convertir el resultado en int prueba asi: namespace Ejercicio12 { class complejo { public int a; public int b; public complejo(int A, int B) { a = A; b = B; } public void mostrar() { Console.WriteLine("{0} + {1}i",a,b); } } class complex { public static string sumar(complejo x,complejo y) { int a,b; a= x.a + y.a; b= y.b + y.b; string rpta; rpta = a+" "+b+"i"; return rpta; } public static string restar(complejo x,complejo y) { int a,b; a = x.a - y.a; b = x.b - y.b; string rpta; rpta = a+" "+b+"i"; return rpta; } public static string multiplicar(complejo x,complejo y) { int a,b; a = (x.a*y.a) - (x.b*y.b); b = (x.a*y.b) + (x.b -y.a); string rpta; rpta = a+" "+b+"i"; return rpta; } public static string dividir(complejo x,complejo y) { double a,b; a = ((x.a*y.a)+(x.b*y.b))/(Math.Pow(y.a,2)+Math.Pow(y.b,2)); b = ((x.b * y.b) - (x.a * y.b)) / (Math.Pow(y.a, 2) + Math.Pow(y.b, 2)); string rpta; rpta = a+" "+b+"i"; return rpta; } } class ejecutar { static void Main( ) { complejo x = new complejo (3, 7); // 3 + 7 i complejo y = new complejo (9, -15); // 9 – 15 i x.mostrar( ); y.mostrar( ); Console.WriteLine("Suma = {0}",complex.sumar(x,y)); Console.WriteLine("Resta = {0}",complex.restar(x,y)); Console.WriteLine("Producto = {0}",complex.multiplicar(x,y)); Console.WriteLine("División = {0}",complex.dividir(x,y)); Console.ReadLine( ); } } }
148
« en: Sábado 3 de Octubre de 2009, 19:21 »
Para la segunda pregunta: este es para usalro directamente en el nuevo form. this.ShowInTaskbar = false;
aqui lo pones antes de lanzar el nuevo form: Form2 nuevoform = new Form2 ();nuevoform.ShowInTaskbar = false; nuevoform.Show();
Y si, es correcto usar varios forms. para tu tercera pregunta no entiendo exactamente lo que quieres decir, desde el form principal hacer clik en un boton y que salga solo un form o que al hacer click salga un nuevo form y se cierre el anteriro? Saludos
149
« en: Lunes 14 de Septiembre de 2009, 15:00 »
for(int i = 0; i<37; i++) { console.WriteLine(i); }
150
« en: Martes 8 de Septiembre de 2009, 15:05 »
Mmmm... pues no se donde puede estar el fallo, a mi me funciona a la perfección. Siempre y cuando los archivos a renombrar siempre sean del tipo punchlog_02.abr.2009.txt donde solo cambien dia mes y año.
Puedes hacer un depurado paso a paso por instrucciones y decirme en que linea te salta el error? alomejor de ahi podemos sacar el fallo y solucionarlo.
Saludos
|
|
|