String in Int Array?

es reicht übrigens wen du schreibst lblPruefziffer.Text = zahl1.ToString();
Convert brauchst du nicht ;)

lblPruefziffer.Text = zahl1.ToString(); muss in den if block
 
So, ich habe das soweit hinbekommen das er mit dem Ersten Feld (Textbox) rechnet. Das ganze sieht nun so aus:
C++:
string zahl = tbBlock1.Text + tbBlock2.Text + tbBlock3.Text + tbBlock4.Text;

            int i = 0;

            List<int> numern = new List<int>();

            if (Int32.TryParse(zahl, out i))
            {
                while (i > 0)
                {
                    numern.Add(i % 10);
                    i = i / 10;
                }
                numern.Reverse();

                //mit loop add to list
                List<int> values = new List<int>();
                bool istdrei = true;
                foreach (var item in numern)
                {
                    if (istdrei)
                    {
                        values.Add(item * 3);
                        istdrei = false;
                    }
                    else
                    {
                        values.Add(item * 1);
                        istdrei = true;
                    }
                }

                //oder ohne loop in einzelne int's
                int zahl1 = numern[0] * 7;
                int zahl2 = numern[1] * 3;
                int zahl3 = numern[2] * 1;
                int zahl4 = numern[3] * 7;
                int zahl5 = numern[4] * 3;
                int zahl6 = numern[5] * 1;
                int zahl7 = numern[6] * 7;
                int zahl8 = numern[7] * 3;
                int zahl9 = numern[8] * 1;


                int final1 = zahl1 + zahl2 + zahl3 + zahl4 + zahl5 + zahl6 + zahl7 + zahl8 + zahl9;
                int final2 = final1 % 10;

                lblTest.Text = zahl.ToString();

                lblPruefziffer.Text = final2.ToString();

            }
            else
            {
                // es ist kein Zahl
            }

        }
Wie man sieht habe ich noch weitere Felder versucht dem String zahl hinzuzufügen, klappt aber leider nicht. Sobald ich ein weiteres Feld ausfülle (oder alle) berechnet er mir nichts mehr. Woran kann das liegen?

MlG
 
meinst du diese Zeile -->

Code:
 tbBlock1.Text + tbBlock2.Text + tbBlock3.Text + tbBlock4.Text;

guck mal ob dein code beim else unten // es ist keine zahl landet..

Code:
            if (Int32.TryParse(zahl, out i))
            {
            }
            else
            {
                // es ist kein Zahl
            }

den loop kannst du glaub aus dem code entfernen (//mit loop add to list)
 
Schau mal im debuggen der wert von zahl an.
zahl scheint nicht numerisch zu sein,
ev. ist dir ein alphanumerisches zeichen mit reingeruscht, ein leerzeichen oder irgendein steuerzeichen.
 
Hmmm habe ich geguckt, habe keine Leerzeichen oder dergleichen gefunden. Das muss was mit der Zeile 1 aus dem Listing in meinem letzten Post zu tun haben. Ich hänge das Projekt mal an. Vielleicht hat ja jemand eine Idee. Sieht noch alles sehr Wild aus :-D
 

Anhänge

  • IDGenerator.rar
    51,7 KB · Aufrufe: 7
ein problem das ich sehe ist das der int32 ev. brauchst du einen int64 das zweite ist du musst auch prüfen ob zb numern[8] über haupt einen wert hat, allso wen zu wenig zahlen eingegenen wurden kann es auch nicht funktionieren. da dann zb index 8 garn nicht exisiert...
 
Das mit den Werten (zb numern[8]) habe ich probiert, das ist es glaub ich nicht. Solange ich oben in der ersten Zeile nur EIN Zahlenblock übergebe klappt alles wunderbar, wenn ich allerdings den zweiten Zahlenblock aus "tbBlock2" der Variable zahl anhänge (string zahl = tbBlock1.Text + tbBlock2.Text;) geht es nicht mehr.
 
Zurück