Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
jakub.matousek23:18.9.2014 16:03

Zdravím,

Mám problém dokončit úlohu, kde se má do jednoho textboxu v multiline režimu zadat do tří řádku tři čísla a ty se mají sečíst.Výsledek se má objevit na řadcích místo původně zadaných čísel.Program dále obsahuje jedno tlačítko.

předem děkuji za pomoc:)

Dim radky() As String = TextBox1.Text.Split(vbNewLine)
        Dim p As Integer
        p = radky.Length

        For i = 0 To radky.Length - 1
 
Odpovědět
18.9.2014 16:03
Avatar
Odpovídá na jakub.matousek23
Michal Žůrek - misaz:18.9.2014 16:06

a vem že je ten problém co nejde? Sečíst tři řádky?

 
Nahoru Odpovědět
18.9.2014 16:06
Avatar
Odpovídá na Michal Žůrek - misaz
jakub.matousek23:18.9.2014 16:09

Problém je v tom že úplně přesně nevím jak v kódu pokračovat..

 
Nahoru Odpovědět
18.9.2014 16:09
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na jakub.matousek23
Jan Vargovský:18.9.2014 16:24
Dim radky As String() = {"1", "2", "3"} // tu dáš akorát ty splitnuté hodnoty z textboxu
Dim sum As Integer = radky.[Select](Function(n) Integer.Parse(n)).Sum()
 
Nahoru Odpovědět
18.9.2014 16:24
Avatar
Odpovídá na Jan Vargovský
jakub.matousek23:18.9.2014 16:32

Děkuji za pomoc,

Teď mi to vypočítá statické hodnoty, které zadám v kódu.Já se chtěl pokusit o to, abych zadal do bežícího programu 3 hodnoty do každého ze tří řádku a následně dostal hodnoty. Asi jsem špatně formuloval co vlastně chci =)

 
Nahoru Odpovědět
18.9.2014 16:32
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na jakub.matousek23
Jan Vargovský:18.9.2014 16:43

Máš tam komentář (který asi nečteš :) ), takže nahradíš

Dim radky As String() = {"1", "2", "3"}

za

Dim radky As String() = TextBox1.Text.Split(vbNewLine)
Editováno 18.9.2014 16:44
 
Nahoru Odpovědět
18.9.2014 16:43
Avatar
Odpovídá na Jan Vargovský
jakub.matousek23:18.9.2014 16:50

Stále mi to hlásí : Vstupní řetězec nemá správný formát

 
Nahoru Odpovědět
18.9.2014 16:50
Avatar
jakub.matousek23:18.9.2014 16:57

Program funguje při zadání do textboxu : 1
2
3
a hodí mi to výsledek : 6

Já potřebuji : 1 , 2 , 3
: 1 , 2 , 3
: 1 , 2 , 3

Výsledek : 6
: 6
: 6

 
Nahoru Odpovědět
18.9.2014 16:57
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na jakub.matousek23
Jan Vargovský:18.9.2014 17:01

To pak bude složitější a musíš si projet cyklem jednotlivé řádky, nebo to hodit do 2d pole. Být to C# tka ti to napíšu, ale patlat to ve VB se mi nechce, sorry.

 
Nahoru Odpovědět
18.9.2014 17:01
Avatar
Odpovídá na Jan Vargovský
jakub.matousek23:18.9.2014 17:03

Jasně to chápu ale i přesto moc děkuji. i tak sem o kousek dál =)

 
Nahoru Odpovědět
18.9.2014 17:03
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na jakub.matousek23
Jan Vargovský:18.9.2014 17:52
button1.Click += (o, e) =>
    {
        var rows = textBox1.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList();
        var results = new List<int>();
        rows.ForEach(r => results.Add(r.Split(',').Select(s => int.Parse(s)).Sum()));
        textBox1.Text = string.Join(Environment.NewLine, results);
    };

Kdyžtak zkus nějakej C# to VB converter :)

 
Nahoru Odpovědět
18.9.2014 17:52
Avatar
Odpovídá na Jan Vargovský
jakub.matousek23:18.9.2014 18:10

Funguje krásně díky moc =)Teď už jen zbývá to pochopit xD

 
Nahoru Odpovědět
18.9.2014 18:10
Avatar
Odpovídá na Jan Vargovský
sadlomaslox25:19.9.2014 0:14

no nevim jestli bylo rozumne postovat cloveku co neumi secist cisla kod ve kterem je linq, extension metody a lambdy ;)

 
Nahoru Odpovědět
19.9.2014 0:14
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na sadlomaslox25
Jan Vargovský:19.9.2014 2:55

Chtěl jen kód, tak jsem pomohl :D

 
Nahoru Odpovědět
19.9.2014 2:55
Avatar
Odpovídá na sadlomaslox25
jakub.matousek23:19.9.2014 6:48

Sem začátečník a vůbec se v tom neorientuju to ano s tím souhlasím.Program se stále snažím udělat pomocí cyklů nebo 2D pole.Je sice hezké že tomu rozumíš sadlomaslox25 a závidím ti to, ale určitě si také nějak začínal =)Takže prosím tě příště nekomentuj lidi co potřebují pomoct nebo lidi co pomohli , ale buď se snaž taky pomoct a nebo nepiš vůbec.

 
Nahoru Odpovědět
19.9.2014 6:48
Avatar
jakub.matousek23:19.9.2014 9:58

Vyřešeno všem ještě jednou děkuji za pomoc=)

Dim radky() As String = txtCisla.Text.Split(vbNewLine)
        Dim novytext As String = ""


        For Each radek As String In radky
            novytext += radek & vbNewLine
        Next




        novytext = ""
        For Each radek As String In radky
            Dim polozkyradku() = radek.Split(" "c)
            Dim suma As Decimal = 0
            Dim x As Decimal

            For Each polozka As String In polozkyradku
                If Decimal.TryParse(polozka, x) Then
                    suma += x
                End If

            Next
            If Not String.IsNullOrEmpty(novytext) Then
                novytext &= vbNewLine
            End If


            novytext &= suma.ToString



        Next
        txtCisla.Text = novytext
 
Nahoru Odpovědět
19.9.2014 9:58
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 16 zpráv z 16.