Zalomenie riadku – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Zalomenie riadku – .NET – Fórum – Programujte.comZalomenie riadku – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Peter
~ Anonymní uživatel
2551 příspěvků
19. 10. 2011   #1
-
0
-

Potreboval by som napr. takýto text: 0012 1508 40668 401 zalomiť vždy po medzeri. Aby každé číslo bolo v jednom riadku. Ale každe číslo by som chcel, aby bolo samostatne v poli. Skúšal som to pomocov funkcie Peek(), ale nešlo mi to uložiť do pola. Prosím, kto by vedel poradiť, nech poradí. Ďakujem.

Nahlásit jako SPAM
IP: 87.197.139.–
Reklama
Reklama
KIIV+42
God of flame
19. 10. 2011   #2
-
0
-

#1 Peter
mozna neco jako string.Split

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Peter
~ Anonymní uživatel
2551 příspěvků
19. 10. 2011   #3
-
0
-

Díky za radu. A mohol by si mi ešte prosím ťa napísať, ako to použiť?

Tu je ten môj kód:

    //vyžšie mám zbytok kódu, ale ten tu asi netreba
        string slovo;
        slovo = tr.ReadLine(); //tu mi to uloží celý ten text
        slovo.Split();
        Console.WriteLine(slovo);
Nahlásit jako SPAM
IP: 87.197.139.–
Peter
~ Anonymní uživatel
2551 příspěvků
19. 10. 2011   #4
-
0
-

Skúšal som to aj pomocou toho Peek(), ale toto je teraz druhý kód(iný spôsob).

Nahlásit jako SPAM
IP: 87.197.139.–
KIIV+42
God of flame
Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Peter
~ Anonymní uživatel
2551 příspěvků
19. 10. 2011   #6
-
0
-
Nahlásit jako SPAM
IP: 87.197.139.–
Peter
~ Anonymní uživatel
2551 příspěvků
19. 10. 2011   #7
-
0
-

Ešte sa mi podarilo naraziť na problém:-( Prosím vás, ako môžem zmeniť pole stringov na intové pole? Skúšal som aj cez foreach, ale nešlo(aj iné spôsoby - napr. Convert.ToInt32).

Nahlásit jako SPAM
IP: 87.197.139.–
Peter
~ Anonymní uživatel
2551 příspěvků
19. 10. 2011   #8
-
0
-

Niečo takéto som skúšal, ale nejde mi to spustiť:

        int[] values = new int[array.Length];
        for (int x = 0; x < array.Length; x++)
            values[x] = Convert.ToInt32(array[x].ToString());
Nahlásit jako SPAM
IP: 87.197.139.–
KIIV+42
God of flame
19. 10. 2011   #9
-
0
-

co neco takovyho:  int x = Int.Parse("23");  (misto "23" array[x] a tak)

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Peter
~ Anonymní uživatel
2551 příspěvků
19. 10. 2011   #10
-
0
-

Nejak takto:

values[x] = int.Parse(array[x]);
Nahlásit jako SPAM
IP: 87.197.139.–
Peter
~ Anonymní uživatel
2551 příspěvků
19. 10. 2011   #11
-
0
-

To čo som napísal v správe vyžšie mi nejde. Stále mi píše tú istú chybu:-(

Nahlásit jako SPAM
IP: 87.197.139.–
KIIV+42
God of flame
19. 10. 2011   #12
-
0
-

to je od toho hezke ze ti to napise nejakou chybu... tezko radit kdyz nevime jakou

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Peter
~ Anonymní uživatel
2551 příspěvků
19. 10. 2011   #13
-
0
-

Ospravedlňujem sa, zabudol som. Toto mi vypíše: Input string was not in a correct format.

Nahlásit jako SPAM
IP: 87.197.139.–
Peter
~ Anonymní uživatel
2551 příspěvků
19. 10. 2011   #14
-
0
-

Keď si dám prechádzanie kódu krok po kroku, chyba sa mi vypíše pri tomto riadku: values[x] = int.Parse(array[x]);

Nahlásit jako SPAM
IP: 87.197.139.–
KIIV+42
God of flame
19. 10. 2011   #15
-
0
-

tak si hod watch na tu promennou array  nebo i  array[x] (co v tom vubec je)

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Peter
~ Anonymní uživatel
2551 příspěvků
19. 10. 2011   #16
-
0
-

Všetko vyzerá v poriadku. Ale asi je problém v tom, že to je desatinné číslo (napr. 10.99) a ja to mám ako int. Mám to zmeniť na iný dátovy typ?

Nahlásit jako SPAM
IP: 87.197.139.–
liborb
~ Redaktor
+18
Guru
20. 10. 2011   #17
-
0
-

Když celočíselnému parseru předhodíš desetinné číslo, tak se mu to samozřejmě nelíbí. Buď používej parser desetinných čísel a pak ty desetiny zahazuj, pokud tě nezajímají nebo tě zajímají a pak musíš změnit datový typ.

Nahlásit jako SPAM
IP: 78.80.52.–
Peter
~ Anonymní uživatel
2551 příspěvků
20. 10. 2011   #18
-
0
-

To nie je číselne pole, ale stringové pole. Ale v tom stringovom poli sú čísla. A ja to potrebujem prekonvertovať(to textové pole na číselne-s desatinnými číslami). Lenže mi to nejde:-( Niekde chybu robím, len neviem príjsť na to, že kde.

Nahlásit jako SPAM
IP: 87.197.139.–
Peter
~ Anonymní uživatel
2551 příspěvků
20. 10. 2011   #19
-
0
-

Tu je popísaný príklad vo veľmi jednoduchej podobe. Ale princíp(chyba) je tá istá.

        static void Main(string[] args)
        {
            string s = "22.5";
            double c;
            c = Convert.ToInt32(s);
            Console.WriteLine(c);
            Console.ReadKey();
        }
Nahlásit jako SPAM
IP: 87.197.139.–
KIIV+42
God of flame
20. 10. 2011   #20
-
0
-
Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Peter
~ Anonymní uživatel
2551 příspěvků
20. 10. 2011   #21
-
0
-

Hups, v tom kóde je jedna chybyčka. Dátovy typ premennej som dal double a konvertoval som to na Int32. Namiesto toho Int32 malo byť Double. Ale aj tak to nejde.

Nahlásit jako SPAM
IP: 87.197.139.–
KIIV+42
God of flame
20. 10. 2011   #22
-
0
-

tak jeste zkontroluj jestli to neceka desetinnou carku misto tecky (precijen je rozdil mezi cechama a anglii)

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Peter
~ Anonymní uživatel
2551 příspěvků
20. 10. 2011   #23
-
0
-

Si génius:-) Už ide. Len ešte jedna otázka. Dá sa to tak spraviť, aby botku bral ako čiarku?

Nahlásit jako SPAM
IP: 87.197.139.–
KIIV+42
God of flame
20. 10. 2011   #24
-
0
-
Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Peter
~ Anonymní uživatel
2551 příspěvků
20. 10. 2011   #25
-
0
-

No parádička, už aj s botkou mi to počíta. Dúfam, že sa už nikde neseknem. Ďakujem za pomoc:-)

Nahlásit jako SPAM
IP: 87.197.139.–
Peter
~ Anonymní uživatel
2551 příspěvků
21. 10. 2011   #26
-
0
-

Dalo by sa nejak spraviť, že napr. s piatich desatinných čísel mi vybere to najväčšie, alebo najmenšie? Nechcem to všetko dávať do podmienok. Takto to mám teraz, ale je to veľmi dlhé:

if ((v[a] > v[b]) && (v[a] > v[c]))
                najviac = v[a];

To mám aj pre premenné b a c a potom ešte pre najmenšie hľadané číslo. Takže dokopy 3x 2 + 3x 2 = 12 riadkov kódu. A keby mám 10 číslic tak by som mal 40 riadkov kódu. Takže to je blbosť. tak či by sa to nedalo len nejak vyhľadať to najväčšie a zároveň aj najmenšie číslo.

Nahlásit jako SPAM
IP: 87.197.139.–
Peter
~ Anonymní uživatel
2551 příspěvků
21. 10. 2011   #27
-
0
-

Už nič, našiel som to. Stačilo len trochu porozmýšlať. Dal som na pole metódu Max.

Nahlásit jako SPAM
IP: 87.197.139.–
Peter
~ Anonymní uživatel
2551 příspěvků
21. 10. 2011   #28
-
0
-

Kód ide, ale zase mám problém:-( A neviem to už ani na nete nájsť. Mne to síce vyhodí najmenšiu hodnotu, ale len dvoch číslic. Ako by sa dalo spraviť, že mi to vyhodí najmenšiu hodnotu 5 číslic? Prosím, poraďte.

Nahlásit jako SPAM
IP: 87.197.139.–
KIIV+42
God of flame
21. 10. 2011   #29
-
0
-

to bude tim ze se to dela jen pro dve hodnoty... jestli chces pro vic tak si to naprogramuj sam

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Peter
~ Anonymní uživatel
2551 příspěvků
21. 10. 2011   #30
-
0
-

Ako by sa to dalo spraviť? Keď chcem v poli napr. pole[0] po pole[4].

Nahlásit jako SPAM
IP: 87.197.139.–
KIIV+42
God of flame
21. 10. 2011   #31
-
0
-

samozrejme musis projit po jednom... a do pomocne promenne si ukladat minimum

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Peter
~ Anonymní uživatel
2551 příspěvků
21. 10. 2011   #32
-
0
-

Aha, díky:-) Aj keď mi to príde trochu blbé, ale aj tak je to lepšie, než bolo predtým(myslím ten 12 riadkový kód).

Nahlásit jako SPAM
IP: 87.197.139.–
Peter
~ Anonymní uživatel
2551 příspěvků
21. 10. 2011   #33
-
0
-

Už asi posledná otázka (dúfam): ako môžem vytvoriť pole, keď neviem, aký počet bude? Napr.: int[] pole = new int[];

Nahlásit jako SPAM
IP: 87.197.139.–
zlz
~ Anonymní uživatel
634 příspěvků
21. 10. 2011   #34
-
0
-
Nahlásit jako SPAM
IP: 213.211.51.–
Peter
~ Anonymní uživatel
2551 příspěvků
22. 10. 2011   #35
-
0
-

Ďakujem za radu:-) Prosím vás, ako by som mohol napr. medzi číslicami 1 2 3 4 5 nájsť čísla aké chýbajú. Napr. keby mám len 1 2 4. Ako zistím že 3 a 5 chýbajú? U stringov by som to vedel pomocou IndexOfAny, ale u číslic neviem ako. Prekonvertovať? A nedá sa to nejak lahšie?

Nahlásit jako SPAM
IP: 87.197.139.–
zlz
~ Anonymní uživatel
634 příspěvků
22. 10. 2011   #36
-
0
-

Pokud nic jiného, tak snad jsi schopný to pole projít a podívat se, co v něm je.

Pokud je seřazené, tak to dáš jedním průchodem. Jinak třeba takhle

Array.Exists<int>(pole, cislo => cislo == hledanecislo)
Nahlásit jako SPAM
IP: 213.211.51.–
Peter
~ Anonymní uživatel
2551 příspěvků
24. 10. 2011   #37
-
0
-

Díky. A ako by som mohol spraviť v ´kóde moju vetu: ak sa nerovná číslam od 1 do 5? : if(cislo != ......

Ďalej neviem. Ten rozsah od do. Od 1 do 5. Takže 1,2,3,4,5.

Nahlásit jako SPAM
IP: 87.197.139.–
liborb
~ Redaktor
+18
Guru
25. 10. 2011   #38
-
0
-

   

if ((cislo < 1) && (cislo > 5)) {
	// cislo se nerovna 1, 2, 3, 4, 5
}
Nahlásit jako SPAM
IP: 78.80.52.–
Risak
~ Anonymní uživatel
2 příspěvky
30. 10. 2011   #39
-
0
-

#1 Peter
 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim pole() As String = TextBox1.Text.Split(" ")
        Dim delka As Integer
        delka = pole.Length
        For i As Integer = 0 To delka - 1
            ListBox1.Text = ListBox1.Text & pole(i) & vbNewLine
        Next
    End Sub

Měl jsi na mysli toto ? Kde zadáš do textboxu, ve formě nějaký text, a zmáčkneš tlačítko. Pak ti celej text, převede do pole, po mezerach ,do samostatného pole stringu a vypíše. A v cyklu vypíše do tabulky a oddělí novým řádkem :)

Nahlásit jako SPAM
IP: 46.183.56.–
Peter
~ Anonymní uživatel
2551 příspěvků
30. 10. 2011   #40
-
0
-

Ďakujem všetkym za rady. Trochu inak som to spravil. Zle som tu aj popísal môj problém.

Nahlásit jako SPAM
IP: 87.197.139.–
student
~ Anonymní uživatel
3 příspěvky
30. 10. 2011   #41
-
+1
-
Zajímavé

#38 liborb
mas tam chybu. misto and tam ma byt or. Tvoje podminka pro cisla ruzna od 1 do 5 nikdy nenastane...

if ((cislo < 1) || (cislo > 5)) {
	// cislo se nerovna 1, 2, 3, 4, 5
}
Nahlásit jako SPAM
IP: 77.78.83.–
Peter
~ Anonymní uživatel
2551 příspěvků
7. 11. 2011   #42
-
0
-

Do tejto témy sa to nehodí, ale tak keď som ju založil a už som sem písal pár otázok, tak som sa rozhodol že moju ďalšiu otázku napíšem sem. Aby som kvôli nejakej maličkosti nemusel zakladať nové vlákno.

Prosím vás, potrebujem z jedného riadku načítať päť slov. Je to z .txt súboru. Slova:

mačka   pes   krava   koza   ovečka

Ako by som mohol každé načítať? Viem to spraviť pomocou ReadLine, ale to mi prejde celý riadok. Ja potrebujem len po slove a každé slovo dať do poľa. Sú medzi tými slovami tri medzere, nie len jedna. Prosím, poraďte.

Moderátor: nová otázka = nové vlákno

Nahlásit jako SPAM
IP: 87.197.139.–
7. 11. 2011   #43
-
0
-

#42 Peter
Zdravím, stačí přečíst řádek a použít: 

var slovaBezMezer = radek.Split(new [] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

A příště založ nové vlákno.

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Peter
~ Anonymní uživatel
2551 příspěvků
7. 11. 2011   #44
-
0
-

#43 djanosik

Ďakujem za radu, skúšal som to, ale nešlo mi to. Neviem to spraviť. Prosím ťa, nemohol by si mi ukázať kód, ako by to vyzeralo celé?

Nahlásit jako SPAM
IP: 87.197.139.–
7. 11. 2011   #45
-
0
-

#44 Peter
To jsem už udělal, nic víc na tom není (resp. mezi slovy se mohou vyskytnout i jiné bílé znaky). Pokud chceš vědět co máš špatně, budeš muset poslat svůj kód.

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Peter
~ Anonymní uživatel
2551 příspěvků
7. 11. 2011   #46
-
0
-

#45 djanosik

radek = tr.ReadLine(); //tr je StreamReader tr
var slovaBezMezer = radek.Split(new [] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

Ale neviem čo s tým mám robiť. Skoro vôbec som to nepozmenil, lebo neviem čo tam ešte treba.

Nahlásit jako SPAM
IP: 87.197.139.–
7. 11. 2011   #47
-
0
-

#46 Peter
Dobře a teď zkus zjistit, co obsahuje proměnná radek a co obsahuje výsledné pole. Nebo jinak. Kde je vlastně problém?

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Peter
~ Anonymní uživatel
2551 příspěvků
7. 11. 2011   #48
-
0
-

#47 djanosik

Napr. keď dám Console.WriteLine(slovaBezMezer[3]); tak mi to nevypíše štvrté slovo.

Nahlásit jako SPAM
IP: 87.197.139.–
7. 11. 2011   #49
-
0
-

#48 Peter
Jasně. Stále se nemám čeho chytit. Co vypíše místo čtvrtého slova? Jaký je obsah toho pole a jaký je obsah řádku?

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Peter
~ Anonymní uživatel
2551 příspěvků
7. 11. 2011   #50
-
0
-

Na začiatku mám nastavené to streamReader a tu je ten zbytok kódu: 

string radek = tr.ReadLine(); //tr je StreamReader tr
var slovaBezMezer = radek.Split(new [] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine(slovaBezMezer[3]);

Nevypíše nič, skončí mi to s chybovou hláškou na tom poslednom riadku. Kde to chcem vypisovať.

Nahlásit jako SPAM
IP: 87.197.139.–
7. 11. 2011   #51
-
0
-

#50 Peter
Prosimtě, zapni si debugger, dej si tam breakpoint a prozraď mi, co obsahuje řádek a co obsahuje výsledné pole. Ten kód je napsanej správně a bez těch údajů můžu jen hádat. Ta chybová hláška zřejmě říká, že tam žádná čtvrtá položka není, tak zkus zjistit proč.

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Peter
~ Anonymní uživatel
2551 příspěvků
7. 11. 2011   #52
-
0
-

#51 djanosik

Hups, asi ma zabyješ. Ide to, len ja som teraz dával ako vstup tri slova. Díky moc za rady (hehe a trpezlivosť pri mne). Prosím ťa, ešte ak by si bol tak ochotný, mohol by si mi to podrobne popísať čo to robí? Lebo, aj keď to robí čo má, moc sa v tom nevyznám.

Nahlásit jako SPAM
IP: 87.197.139.–
7. 11. 2011   #53
-
0
-

#52 Peter
Tak hlavně, že to funguje.

1. řádek: Přečte ze vstupu první řádek.
2. řádek: Projde text řádku a rozdělí ho na několik částí (tam kde jsou mezery). Přitom vynechá všechny části, které neobsahují žádný text.

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Peter
~ Anonymní uživatel
2551 příspěvků
7. 11. 2011   #54
-
0
-

#53 djanosik
A ešte to aj ukladá do poľa hej?

Nahlásit jako SPAM
IP: 87.197.139.–
7. 11. 2011   #55
-
0
-

#54 Peter
Jo, určitě.

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Peter
~ Anonymní uživatel
2551 příspěvků
7. 11. 2011   #56
-
0
-

#55 djanosik
Okay, ďakujem za všetkú pomoc :-)

Nahlásit jako SPAM
IP: 87.197.139.–
7. 11. 2011   #57
-
0
-

Tak to není vůbec zač.

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 48 hostů

Podobná vlákna

Citanie celeho riadku — založil dodo_mt

Vymazanie neakého riadku . — založil zonda

Vymazanie vstupného riadku — založil ArcaneBeam13

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý