Avatar
jakub.matousek23:

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):

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

Nahoru Odpovědět 18.9.2014 16:06
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Michal Žůrek (misaz)
jakub.matousek23:

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ý
Redaktor
Avatar
Odpovídá na jakub.matousek23
Jan Vargovský:
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:

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ý
Redaktor
Avatar
Odpovídá na jakub.matousek23
Jan Vargovský:

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:

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:

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ý
Redaktor
Avatar
Odpovídá na jakub.matousek23
Jan Vargovský:

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:

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ý
Redaktor
Avatar
Odpovídá na jakub.matousek23
Jan Vargovský:
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  +1 18.9.2014 17:52
Avatar
Odpovídá na Jan Vargovský
jakub.matousek23:

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:

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ý
Redaktor
Avatar
Odpovídá na sadlomaslox25
Jan Vargovský:

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:

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:

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.