Zawartość pola textbox do tablicy

0

Witam! Chciałbym się poradzić, czy istnieje możliwość zapisania zawartości pola tekstowego do tablicy? Chodzi o wpisane w textbox liczby oddzielone od siebie spacjami, by każda z nich była elementem przypuśćmy, że tablicy tab(n)?

3

Istnieje. string.Split, żeby podzielić napis i Array.ConvertAll / IEnumerable<T>.Select, żeby zamienić tablicę napisów na tablicę liczb (int.Parse).

0

Chodzi o użycie vb.net. Mogę prosić o pomoc w rozwiązaniu tego przykładu?

txtLiczby.Text = "5 10 15 20 25"
Dim Liczby As String = Split(txtLiczby.Text) '??????
Dim tab(5) As Double

'Co z ConvertAll???

For Dim i As Integer = 0 To 5
tab(i) = '.....????
Next
2

Znajdź w MSDN opis metod, które podałem. Programowanie nie polega chyba na zgadywaniu.

0

Rozumiem, że użycie wymienionych przez Ciebie funkcji, to jedyna metoda na rozwiązanie problemu?

0

Ale, ale IMO najprostsza, bo sprowadza się do wywołania trzech metod w jednej linijce.

0

Nie udało mi się wykorzystać wszystkich wspomnianych przez Ciebie funkcji...

Dim wyrazya As String = txtLos.Text
        Dim tablicaa() As String = wyrazya.Split(" ")

gdzie:

 txtLos.Text = "5 10 15 20" 

Te elementy są dobrze tablicowane w tablicaa, jednak aby móc użyć każdego z nich, muszą być typu Double. I tu rodzi się mój problem konwersji... Gdybym na przykład zechciał użyć drugiego elementu do obliczeń:

Dim a As Double = tablicaa(2)
WartFunk = WartoscCiagu(m, wznx, a)

Funkcja WartoscCiagu jest typu double:

Function WartoscCiaguTabela(ByVal ilosc As Integer, ByVal X As Double, ByVal a As Double) As Double
Dim s As Double
....
return s
End Function
 
1

No i do tego możesz użyć Array.ConvertAll.

Dim tablicaDoubli() As Double = Array.ConvertAll(napis.Split(" "), Function(str As String) Double.Parse(str))
0

http://msdn.microsoft.com/en-us/library/exc45z53.aspx#Y0
Za jej pomocą możesz cało tablicę, jej wszystkie elementy przekonwertować z jednego typu na inny.

0
Rev napisał(a)

No i do tego możesz użyć Array.ConvertAll.

Dim tablicaDoubli() As Double = Array.ConvertAll(napis.Split(" "), Function(str As String) Double.Parse(str))

Input string was not in a correct format.
Wartość pola tekstowego nie jest pusta, zawiera liczby oddzielone spacjami; w czym więc może tkwić problem?
Pole tekstowe zostaje wypełnione przy wywołaniu funkcji w Subie obsługi przycisku, tablica zaś jest konwertowana we wspomnianym subie.

Mój kod dla powyższych moich linijek wygląda następująco:

 Dim wyrazya As String = txtLos.Text
        Dim tablicaDoubli() As Double = Array.ConvertAll(wyrazya.Split(" "), Function(str As String) Double.Parse(str)) 
1

Przyjrzyj się metodzie double.Parse, to ona wyrzuca wyjątek. Być może masz tam liczby z kropkami, a ustawienia kulturowe uznają przecinek. Albo jest tam jeszcze coś innego niż liczby.

0

Nawet jeśli double zamieniłem na Integery zarówno w funkcjach, wywołaniach i textboxie, błąd jest ten sam.

1

user image

ew. możesz to przeładowanie metody Split zamienić na napis.Split(New Char() {" "}, StringSplitOptions.RemoveEmptyEntries), będzie bardziej "wyrozumiałe".

0

Już znam błąd. ostatni znak tablicy był białym pustym znakiem, stąd wyjątek. Pozdrawiam i dziękuję za pomoc! :)

0

Polecam double.tryparse :) nie rzuca nic, a początkującemu życie ułatwia

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