Z TextBoxa do tablicy

Odpowiedz Nowy wątek
2011-07-11 21:21
0

Witam mam problem chce zrobić textBoxa do którego będą wprowadzane cyfry (11 cyfr) i chciałbym z tych jedenastu cyfr zrobić tablice 11 elementową typu int bardzo proszę o pomoc jak takie coś wykonać

Pozostało 580 znaków

2011-07-11 21:34
 
int [] tab = new int[11];
 
for(int i=0; i<11; i++)
   tab[i] = textBox.Text[i] - 48;
 

edytowany 2x, ostatnio: Loganek, 2011-07-11 21:36
Ciekawe jak to zadziała dla znaków diakrytycznych. - somekind 2011-07-11 21:50
miało dzialać dla cyfr:) - Loganek 2011-07-11 21:57
Racja. :) Ale czy magic numbers to na pewno dobre rozwiązanie? - somekind 2011-07-11 21:59
oczywiście że nie, robiłem to dla konkretnego przypadku autora:) - Loganek 2011-07-11 22:01

Pozostało 580 znaków

2011-07-11 21:37
O_o
0

Moje fajniejsze :)

using System.Linq;
...
public int[] StringToIntArray(string Text)
        {            
            List<int> n=new List<int>();
            (from c in Text.ToCharArray() select c).ToList().ForEach(C=>n.Add(int.Parse(new string(new char[] {C}))));
            return n.ToArray();
        }

W sumie to inta nie trzeba bo przy takiej konwersji i tak mamy liczby od 0 do 9 więc byte pyknie.


O̾..͠o
Chyba rekord braku wydajności. - somekind 2011-07-11 21:50
Ale fajnie wyglądają te nawiasy na końcu ;) - O_o 2011-07-11 21:52
tab[i] = (((((((textBox.Text[i] - 48))))))); też fajnie wygląda, nie?:) - Loganek 2011-07-11 22:05
Nie ;) W moim cukiereczku każdy nawias jest z sensem :) - O_o 2011-07-11 22:24
Ten kod to tragedia. Gdybyś pracował u mnie w zespole to podczas inspekcji kodu musiałbyś na następny dzień przynieść ciasto (takie stosujemy kary za niechlujny kod lub "zobaczcie jak potrafię namotać") - siema cześć i czołem 2011-07-12 08:19
Oj toć zabawki od czasu do czasu napisać nie można? :) - O_o 2011-07-12 10:47

Pozostało 580 znaków

2011-07-12 00:39
0

ok bardzo dziękuje za pomoc.

edytowany 2x, ostatnio: arkagdynia, 2011-07-12 00:45

Pozostało 580 znaków

2011-07-12 01:25
msm
2

Sorry, nie mogłem się powstrzymać...
"Alternatywne" rozwiązanie:

        public int[] StringToIntArray(string Text)
        {
            string pattern = "(0)|(1.)|(2..)|(3...)|(4....)|(5.....)|(6......)|(7.......)|(8........)|(9.........)";
            Regex r = new Regex(pattern);
 
            List<int> numbers = new List<int>();
 
            while (Text.Length > 0)
            {
                Match m = r.Match(Text.PadRight(10));
                numbers.Add(m.Value.Length - 1);
                Text = Text.Remove(0, 1);
            }
 
            return numbers.ToArray();
        }

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0