|
421
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problema con un string
|
en: 23 Mayo 2017, 14:43 pm
|
Hola NEBIRE, foreach ... value = 0 strings?. Seguro que Regex, no devolvió un array vacío??? Porque value es igual a cero strings si representa a un vector de numbers? Visual Studio, es muy potente, tiene muchas facilidades para saber en cada momento, cual es el contenido de cada variable, puedes ejecutar paso a paso, puedes poner puntos de interrupción incondicionales (líneas), o condicionales de modo que cuando se cumpla la condición se pare ahí en ese punto la ejecución... revisas que debiera tener y si es preciso, moverte paso a paso por instrucciones hasta ver dónde ocurre el fallo.
Como se puede saber cual es el contenido de cada variable con Visual Studio? El ejecutarlo paso a paso funciona tambien con los formularios? O se para cuando se termina de cargar los controles? Lo siento. Yo no hice un curso de C#. Hola Elektro, gracias por tu aporte. Siento que te hayas tomado el tiempo por mi. Tu aporte me sirvio. Es mas: se me ocurrio otra solucion que creo que funcionara. Pero por supuesto: tus codigos son siempre los mejores porque tienen mucha sencillez y son potentes Gracias y saludos
|
|
|
422
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problema con un string
|
en: 22 Mayo 2017, 16:57 pm
|
Hola, bueno, la funcion la llamo desde un evento de click: private void button1_Click(object sender, EventArgs e) { OpenFileDialog dialogo = new OpenFileDialog (); if (dialogo.ShowDialog() == DialogResult.OK) { ruta = dialogo.FileName; } foreach (string line in File.ReadLines(ruta, Encoding.UTF8)) { { Pasador_a_IP(line); } } }
Gracias y saludos
|
|
|
423
|
Programación / .NET (C#, VB.NET, ASP) / Problema con un string
|
en: 22 Mayo 2017, 14:01 pm
|
Hola, estaba haciendo un programa que lee cada linea de un archivo .txt. Lo que pasa es que dentro de cada linea hay un IP que quiero extraer. Para eso me hice un metodo. Entonces lo que hago yo es pasarle la una determinada linea del archivo .txt. al metodo y por supuesto llamarlo. Mi metodo es el siguiente: public void Pasador_a_IP(string texto) { string ip = string.Empty; int puntos = 0; string[] numbers = Regex.Split(texto, @"\D+"); foreach (string value in numbers) { if(puntos < 3) { ip = ip + value + "."; puntos++; } else { ip = ip + value; } } label3.Text = ip; }
Pero cuando inicio el programa en label3 solamente veo el texto "label3"(que es el texto que Visual Studio genera sino se cambia eso). No entiendo. Me quiero matar. Le hice muchas vueltas a eso. Y seguro que cometi otra estupidez. Pero cual? Me quiero matar. Me vuelve loco. Gracias y saludos
|
|
|
424
|
Programación / .NET (C#, VB.NET, ASP) / Re: string.StartsWith
|
en: 15 Mayo 2017, 07:15 am
|
Hola Elektro, La función Check() que has escrito, al enviarle como argumento la IP 46.105.121.37, da un resultado negativo. Es decir, no la filtra, a diferencia de lo que tú dices estar experimentando al pasarle esa IP.
Pero podes creer que sea tan estupido? Increible. Por esos errores hago un tema. La verdad que esta vez nome mereci tu ayuda por estupido. Era asi como tu dijiste. Solucione el problema. Muchas gracias
|
|
|
425
|
Programación / .NET (C#, VB.NET, ASP) / string.StartsWith
|
en: 14 Mayo 2017, 13:08 pm
|
Hola, hay algo que no entiendo. Estaba haciendo un programa que filtra ips y vi un comportamiento algo raro en StartsWith. Yo hice este metodo: public static bool Check(IPAddress ipaddr) { foreach (String ip in bad_ranges) if (ipaddr.ToString().StartsWith(ip)) { return true; } bool result = false; return result; }
Y aqui la lista de ips y de comienzos de ips que debe ser filtrada: private static String[] bad_ranges = new String[] { "46.16", "64.55.", "69.22.", "69.162.", "69.167.", "128.241.", "140.174.", "204.2.", "206.14.", "209.107.", "199.255.", "31.210.102.38", "46.4.62.16", "67.221.255.12", "74.82.218.250", "77.245.78.10", "79.168.9.111", "83.142.226.101", "85.195.76.6", "89.217.238.", "95.141.", "95.142.", "95.143.", "95.215.", "109.74.3.24", "124.248.202.119", "174.36.47.170", "176.227.194.146", "188.227.180.2", "209.239.120.120", "216.185.105.34", "108.61.74.99", "79.141.165.21", "24.99.89.166", "199.58.84.", "50.116.5.", "23.92.22.", "64.62.201.", "162.210.196.", "192.96.203.", "199.58.84." };
Y bueno. Al ingresar esta ip: 46.105.121.37 me la filtra el programa. Pero porque? Si en la lista no agregue esa ip ni una ip que empieze con 46.105. StartsWith tiene otra significacion a parte de empezar por los caracteres dados? Gracias y saludos
|
|
|
428
|
Programación / .NET (C#, VB.NET, ASP) / Re: hacer dos consultas diferentes en entity framework
|
en: 9 Mayo 2017, 14:41 pm
|
buenas tardes amigos del foro estoy haciendo una aplicación de venta de productos esta mi tabla con los campos productos idproducto, codigobarra, precio , idmedida,stock,idsubfamilia y tengo un formulario ventas me problema surge cuando quiero vender productos granel entonces estaba pensando cuando el codigo = codigobusqueda y el idmedida = 3 que es lo mismo a kilogramo me muestre un formulario modal entoces un else que sea distinto a kilogramo por que no seria a granel si no = unidad codigo para buscar productos por codigo esto funciona correctamente entoces quiero agregar un else para que me busque segun la otra condicion que seria por el idmedida = 3 esto es kilogramo en esta linea busco el producto eProd = objProducto.GetByCodigoBarras(TxtCodigoBarras.Text); y lo me trae public PRODUCTO GetByCodigoBarras(string Codigo) { DAL.IRepository repository = new Modelo.Repository(); try { var producto = repository.FindEntity<PRODUCTO>(a => a.CodigoBarras ==Codigo, "Venta_Detalles", "Compras_Detalle", "Medida", "SubFamiliaProducto"); if (producto != null) { producto.IdFamilia = producto.SubFamiliaProducto.IdFamilia; var fami = new FamiliaProducto(); fami = repository.FindEntity<FamiliaProducto>(x => x.IdFamilia == producto.SubFamiliaProducto.IdFamilia); producto.NombreFamilia = fami.NombreFamilia; producto.NombreMedida = producto.Medida.Medida1; producto.NombreSubFamilia = producto.SubFamiliaProducto.NombreSubFamilia;
} else { producto = null; } return producto; } catch (Exception ex) { throw new Exception(ex.Message); } } private void TxtCodigoBarras_KeyPress(object sender, KeyPressEventArgs e) { if(TxtCodigoBarras.Text.Length>0) { if (e.KeyChar == Convert.ToChar(Keys.Return)) {
DetalleVentaDTO eDeta = new DetalleVentaDTO(); PRODUCTO eProd = new PRODUCTO(); eProd = objProducto.GetByCodigoBarras(TxtCodigoBarras.Text); if (eProd == null) { if (MessageBox.Show("Producto no existe, ¿Desea agregarlo?", "Confirme", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { Form frm = this.MdiChildren.FirstOrDefault(x => x is FrmProductos); if (frm != null) { frm.BringToFront(); return; } frm = new FrmProductos(idUsuario); frm.MdiParent = this.MdiParent; frm.Show(); } return; } if (eProd.Stock <= 0) { MessageBox.Show("No existe stock suficiente para vender", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
eDeta.Cantidad = 1;
eDeta.CodigoBarras = eProd.CodigoBarras; eDeta.FechaReg = DateTime.Now; eDeta.IdDetalle = 0; eDeta.IdProducto = eProd.IdProducto; eDeta.IdVenta = 0; eDeta.Importe = eProd.Precio * eDeta.Cantidad; eDeta.NombreProducto = eProd.NombreProducto; eDeta.PorcentajeIVA = eImpuesto.TasaImpuesto; eDeta.Precio = eProd.Precio; Detalles.Add(eDeta); //DgvDetalle.DataSource = null; DgvDetalle.DataSource = Detalles; TxtCodigoBarras.Clear(); TxtCodigoBarras.Focus(); } este lo carga en la grilla perfecto lo que necesito con la condicion portal de imagenes gratisel codigo que quiero insertar con else para que cumpla la condicion que sea igual a idmedida = 3 kilogramo PRODUCTO eProds = new PRODUCTO(); eProds = objProducto.GetByCodigoBarrasKilogramo(TxtCodigoBarras.Text); if (eProds == null)
{ if (MessageBox.Show("Producto no existe, ¿Desea agregarlo?", "Confirme", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { Form frm = this.MdiChildren.FirstOrDefault(x => x is FrmProductos); if (frm != null) { frm.BringToFront(); return; } frm = new FrmProductos(idUsuario); frm.MdiParent = this.MdiParent; frm.Show(); } return; } if (eProds.Stock <= 0) { MessageBox.Show("No existe stock suficiente para vender", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
string idbusqueda = Convert.ToString(TxtCodigoBarras.Text); NombreProductos = eProds.NombreProducto; Precioss = Convert.ToString(eProds.Precio);
FrmGranel form = new FrmGranel(idbusqueda, NombreProductos, Precioss); form.MdiParent = this.MdiParent; form.Show();
codigo busqueda idmedida = 3 public PRODUCTO GetByCodigoBarrasKilogramo(string Codigo) {
DAL.IRepository repository = new Modelo.Repository(); try { var producto = repository.FindEntity<PRODUCTO>(a => a.CodigoBarras == Codigo, "Venta_Detalles", "Compras_Detalle", "Medida", "SubFamiliaProducto"); if (producto != null) { producto.IdMedida = producto.Medida.IdMedida; var Medidas = new Medida(); Medidas = repository.FindEntity<Medida>(x => x.IdMedida == 3); producto.NombreSubFamilia = producto.SubFamiliaProducto.NombreSubFamilia;
} else { producto = null; } return producto; } catch (Exception ex) { throw new Exception(ex.Message); } } Entonces, cual es tu problema. Creo que estas haciendo un tutorial de como solucionar tu problema. Es eso asi? Saludos!
|
|
|
|
|
|
|