elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [Solucionado] Algo pasa con un for :s
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado] Algo pasa con un for :s  (Leído 2,144 veces)
quiqueroal

Desconectado Desconectado

Mensajes: 8


Ver Perfil
[Solucionado] Algo pasa con un for :s
« en: 10 Mayo 2011, 18:42 pm »

Hola compañeros!

Os cuento, es que tengo un problema... mirad, tengo una función tal que asi:

Código
  1. public Ingredient[] WriteLVIngredient(ListView List)
  2. {
  3. Ingredient[] Ingr = new Ingredient[List.Items.Count];
  4. int i = 0, index, long1, long2, long3, long4;
  5. string Quantity = string.Empty;
  6. string Name = string.Empty;
  7. string temp = string.Empty;
  8. string unt = string.Empty;
  9. Ingredient tempIng = new Ingredient();
  10.  
  11.  
  12. if (List.HasItems)
  13. {
  14. for (i = 0; i < List.Items.Count; i++)
  15. {
  16. tempIng.Clear();
  17. long1 = List.Items[i].ToString().Length; //total length of string//
  18. long2 = long1 - (List.Items[i].ToString().IndexOf(" ")); //length of units and indredient name//
  19. long3 = long1 - long2 + 1; //length of quantity of indredient without units//
  20. Quantity = List.Items[i].ToString().Substring(0, List.Items[i].ToString().IndexOf(" ")); //quantity string without units//
  21. temp = List.Items[i].ToString().Substring(long3); //this string contains units and ingredient name//
  22. index = temp.IndexOf(" "); //index of first space in temp string//
  23. long4 = (temp.Length) - index + 1;
  24. unt = temp.Substring(0, index + 1);
  25. tempIng.setUnit(unt); //Set the units of the quantity//
  26. Name = temp.Substring(index);
  27. tempIng.setQuantity(float.Parse((Quantity)));
  28. tempIng.name = Name;
  29. Ingr [i] = tempIng;
  30. }
  31. }
  32. return Ingr;
  33. }

y el problema es que el funcionamiento no es correcto, depurando me he dado cuenta de que el array Ingr en cada iteración del for hace lo siguiente:

1º iteración: escribe en el primer campo de valor i=0 lo que le corresponde.
2º iteración: limpia el primer campo i=0 poniendo a "libre" todos los valores de Ingr[0] y cuando llega el momento de escribir escribe el valor de Ingr[1] tanto en Ingr[0] como en Ingr[1]...
3º iteración: más de lo mismo...

no tengo ni idea de que puede ser, supongo que hago algo mal relacionado con que desconozco el comportamiento del lenguaje en ciertas ocasiones. Si alguien pudiese echarme una mano...

Un saludo y muchas gracias!


« Última modificación: 11 Mayo 2011, 20:10 pm por [D4N93R] » En línea

quiqueroal

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Algo pasa con un for :s
« Respuesta #1 en: 11 Mayo 2011, 16:10 pm »

Perfecto ya lo resolvi... el problema era que el Ingredient tempIng = new Ingredient() iba dentro del for... estaba usando el mismo objeto todo el rato, por eso siempre me ponia el mismo valor.. ¬¬ que cabeza la mia..


En línea

MauroMasciar


Desconectado Desconectado

Mensajes: 567



Ver Perfil
Re: [Solucionado] Algo pasa con un for :s
« Respuesta #2 en: 11 Mayo 2011, 20:43 pm »

Errores así suelen pasar.
Jajaja
En línea

Tutto ha oceani da attraversare mentre hanno il coraggio di farlo Avventato? Ma sanno sogni di limiti

Twitter: @MauroMasciar
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines