2016-05-22 8 views
0

Ich habe eine Zeile in einer lisbox, die ich brauche, damit ich meine Quittung für das Ende meines 12-Grad-Projekts ausdrucken kann.
Beispiel für meine Linie: "cha1 Adidas Stan Smith White 1 2" (es ist gepolstert). Nun, was ich tun möchte, ist zu isolieren wie cha1, Adidas Stan Smith White, 1,2 zu meiner Microsoft Access-Datenbank hinzuzufügen, ich irgendwie geschafft, es mit Teilstring tun, aber ich vermasselte meinen Code und jetzt kann ich es nicht tun, kann jemand mir bitte helfen?Isolieren von Werten aus einer Listbox-Zeile

Mein Code, die zur Arbeit verwendet wird, sieht wie folgt aus:

foreach (string item in lstpreview.Items) 
      { 
      //create the string to print on the reciept 
      string nomeproduto = item; 

      float quantidade = float.Parse(item.Substring(item.Length -5, 5)); 
      float precounitario = float.Parse(item.Substring(item.Length - 5, 5)); 
      string totalproduto = item.Substring(item.Length - 6, 6); 

      txt1.Text = Convert.ToString(quantidade); 
      txt2.Text = Convert.ToString(precounitario); 
      //MessageBox.Show(item.Substring(item.Length - 5, 5) + "PROD TOTAL: " + totalproduto); 

      //float totalprice = 0.00f; 





     } 

Antwort

0

Sie sagen, dass die Linie aufgefüllt, aber geben keine Details. Wenn Sie wissen, dass das erste Feld immer die ersten 4 Zeichen der Zeile ist, können Sie es mit string.Substring isolieren:

string field1 = line.Substring(0, 4); 

und in ähnlicher Weise für die anderen Felder.

P.S. Bitte bearbeiten Sie Ihren Beitrag und entfernen Sie das Schimpfwort.

bearbeiten nach Code Parsen hinzugefügt

Ich verstehe nicht, Ihren Kommentar, was „Ihr negativer Wert“ ist? Führen Sie den Code im Debugger aus, und suchen Sie nach der Zeile, die den Fehler verursacht. Bitte posten Sie die genaue Fehlermeldung.

Gibt es einen Grund für die Konvertierung der Teilzeichenfolge in einen Float und dann zurück in eine Zeichenfolge? Ich kann mir vorstellen, dass Sie vielleicht überprüfen möchten, dass das Feld numerisch ist, aber dann wäre es besser, TryParse zu verwenden.

Ihr zweiter Kommentar ist hilfreich. Die letzten 5 Zeichen der Zeile sind nicht alle numerisch, das ist das Problem.

+0

I edited aus (sorry für das Wort schwören) und fügte ich den Code, ich wich wie das Ihre sehr viel verwenden, aber wenn ich versuche, 0 in meinem negativen Wert zu setzen es gibt mir eine Fehlermeldung. –

+0

Die Linie ist genau diese "ADIDAS STAN SMITH FLACHES WEISSES/GRÜNES 1" und die Werte, die es mich immer zurückbringt, ist 1 –

+0

Negativer Wert: (item.Length -5, 5). Was du sagst, ergibt vollkommenen Sinn, die Sache ist, dass ich für eine Schnur gegangen wäre, aber wenn ich den Code ansehe, merke ich es nicht einmal. Und der letzte Kommentar, den Sie hatten, war ein Moment von Eureka, vielen Dank, ich werde versuchen, Ihre Gedanken zu meinem Code zu implementieren, Sie waren sehr hilfreich, danke! –

0

Fertig mit diesem Codeschnipsel zusammen mit einem für jede Schleife.

string[] caracteresnastring = item.Split(new char[] { ',' }.ToArray()); 
      string code = caracteresnastring[0]; 
      string name = caracteresnastring[1]; 
      string price = caracteresnastring[2]; 
      string quantity = caracteresnastring[3]; 
Verwandte Themen