2017-04-26 1 views
-2

Ich habe eine Datei, die drei Arten von Daten hat die erste Art von Metall zweitens ist eine Farbe und die dritte Menge der Farbe, aber die Anzahl der Male, die sie in der Textdatei erscheinen ändert (die letzten zwei Arten von Daten),Speichern von Daten verschiedener Typen mit Listboxen

 led, black, 0.50, blue, 0.75, green, 0.60 
    copper,blue, 0.48, red, 0.88, pink, 0.33 
    steel, red, 0.65, black, 0.55 
    iron, white, 0.5 
    copper, black, 1, red, 0.80 
    steel, red, 0.62, yellow, 0.50 
    copper, blue, 0.48 

I einen Strom-Leser müssen diese Daten in lesen und speichern sie in einer geeigneten Datenstruktur. Das kann dann in verschiedenen Teilen meiner Anwendung in WPF verwendet werden, zum Beispiel wird der Metalltyp in einer Listbox platziert und die anderen beiden werden in einer anderen Listbox platziert.

 StreamReader reader = new StreamReader(File.OpenRead("paint.txt")); 
     string line; 
     while ((line = reader.ReadLine()) != null) 
     { 

      string[] items = line.Split(','); 
      cat1 = (items[2]); 
      string path = null; 
      ; 

      string[] led = new string[items.Length]; 
      string[] copper = new string[items.Length]; 


      for (int i = 0; i < items.Length; i++) 
      { 
       led[i] = items[i]; 
       copper[j] = items[i] 


       foreach (string paint in items) 
       { 
        if (paint.StartsWith("led")) /// paint 
        { 
         path = paint; 
         led[i] = paint; 

        } 

        if (paint.StartsWith("copper")) /// paint 
        { 
         path = paint; 
         led[i] = paint; 

        } 
       } 

      } 

     } 

} 

, was ich bisher

+0

, warum Sie nicht für den Anfang, uns zeigen, was Sie auf Ihrem eigenen versucht haben .. Sekunde alle können Sie die Werte speichern, in einer 'Liste ' für die Prüfung durch eine Instanz, dass zum Beispiel der Schaffung 'var myTypes = new Liste () {string, string, double, Farbe, douuble, string, double}' – MethodMan

+0

Verwenden Sie separate 'List objects' als' ListBox.ItemsSource', siehe 'https: //wpf.2000things. com/'für gute Tutorials. – AnjumSKhan

+0

Ich denke, das Hauptproblem ist hier, Daten in verschiedenen Listen von Metall, Doppel und Farbe zu klassifizieren und nicht nur in eine einzige Liste oder ItemsSource zu laden –

Antwort

0

getan haben Das ist ziemlich geradlinig. Lesen Sie eine Datei im Stream-Reader. Trennen Sie den Stream mit Kommas und erstellen Sie eine Liste mit Strings. Wenden Sie folgende Filtermethoden an, um Daten in Metal, Color und Double zu klassifizieren. Hier habe ich Referenz von System.Drawing verwendet, um den Farbnamen zu überprüfen.

private void ClassifyData() 
     { 
      double dblValue = 0; 
      foreach (var item in RandomData) 
      { 
       if (double.TryParse(item, out dblValue)) 
       { 
        dblList.Add(dblValue); 
       } 
       else if (CheckColor(item)) 
       { 
        ColorList.Add(item); 
       } 
       else 
       { 
        MetalList.Add(item); 
       } 
      } 
     } 

     private bool CheckColor(string colorName) 
     { 
      Color c = Color.FromName(colorName); 
      if (c.IsKnownColor) 
       return true; 
      return false; 
     } 
Verwandte Themen