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
Veganekk
Člen
Avatar
Veganekk:9.3.2013 12:46

Chci se zeptat jak na zištění počtu slov z textového dokumentu ?
Mockrát děkuju za radu.

Odpovědět
9.3.2013 12:46
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na Veganekk
Theodor Johnson:9.3.2013 12:59

Musis si nacist dokument do stringu a pak pomoci foreach pocitat mezery

Nahoru Odpovědět
9.3.2013 12:59
Mo8ilε 15 Ѐλđ
Avatar
Veganekk
Člen
Avatar
Veganekk:9.3.2013 13:05

Dik zkusim a uvidime jak to pujde...
Jen se chci zeptat kolik mezer ma

'\n'

Kdyz chci pocitat znaky v TXT tak mi to zlobi....
Musim z znaku odecist jestli se nepletu, Tak MEZERY a NOVY RADEK ale nejak mi to zlobi vzdy to mam o 1 - 2 cisla vic nebo min

Nahoru Odpovědět
9.3.2013 13:05
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na Veganekk
Theodor Johnson:9.3.2013 13:10

mel by jsi ty mezery pocitat jako

if (soucasnyZnak == ' ' || soucasnyZnak == '\n')
     pocetSlov++;
Nahoru Odpovědět
9.3.2013 13:10
Mo8ilε 15 Ѐλđ
Avatar
Neaktivní uživatel:9.3.2013 14:15

a ešte by si mal dávať pozor na to, keď máš v tom súbore niekoľko medzier za sebou (preklep/tabu­látor)...

Nahoru Odpovědět
9.3.2013 14:15
Neaktivní uživatelský účet
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Theodor Johnson:9.3.2013 14:34

tabulator != mezera, tabulator ma znak \t

Nahoru Odpovědět
9.3.2013 14:34
Mo8ilε 15 Ѐλđ
Avatar
Odpovídá na Theodor Johnson
Neaktivní uživatel:9.3.2013 15:07

máš pravdu, ale nie je nič nezvyčajné, že keď stlačíš tabulátor, tak to miesto neho hodí 4 medzery...

Nahoru Odpovědět
9.3.2013 15:07
Neaktivní uživatelský účet
Avatar
Mediel
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Mediel:9.3.2013 19:35

To by se dalo osetrit nejakou vnorenou podminkou, kde bys kontroloval, zda dalsi znak za mezerou je mezera, pokud ano, tak ho asi ignorovat :)

Nahoru Odpovědět
9.3.2013 19:35
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Veganekk
Člen
Avatar
Veganekk:9.3.2013 20:38

Trosku Nechapu.... Nemohl by to nekdo sepsat zase jsem se totalne ztratil.... Vubec nevim co myslite

Nahoru Odpovědět
9.3.2013 20:38
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Veganekk
Člen
Avatar
Veganekk:9.3.2013 20:44

Jinak to co poradil loapmail nefunguje jak ma... pocita to slova blbe :/

Nahoru Odpovědět
9.3.2013 20:44
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Veganekk
David Hartinger:9.3.2013 20:52

"Počítá to blbě" - co ti na tohle máme odpovědět? Řešíš třeba prázdné řádky?

Nahoru Odpovědět
9.3.2013 20:52
New kid back on the block with a R.I.P
Avatar
Veganekk
Člen
Avatar
Veganekk:9.3.2013 20:58

Toto mam v txt a kdyz pocitam slovo tak to vypisuje pocet slov 6. Tabulator jsme nepouzil takze nevim kde je chyba

aho ahoj
jo jo
ne ne
ano

podminka je v foreach cyklu

int pocetslov=0;
string s="nacitam do ni do souboru pomoci STREMREADRU";
foreach(char znak in s)
**{
if(znak==' ' || znak=='\n')
**{
pocetslov++;
}**

}**
Nahoru Odpovědět
9.3.2013 20:58
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Veganekk
David Hartinger:9.3.2013 21:00

Řekl bych že je tam vždy o 1 slovo více, jelikož na konci posledního řádku není \n. Stačí tedy na konci k výsledku přičíst 1.

Nahoru Odpovědět
9.3.2013 21:00
New kid back on the block with a R.I.P
Avatar
Veganekk
Člen
Avatar
Veganekk:9.3.2013 21:03

bohuzel nepomohlo furt mam o jedno vice
:( Asi bude chby ze na novem radku je mezera pred slovem... Mohlo by to byt ono ?

Editováno 9.3.2013 21:05
Nahoru Odpovědět
9.3.2013 21:03
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Veganekk
David Hartinger:9.3.2013 21:03

Nahoře jsi uvedl 7 slov a napsal že ti to vypisuje 6. 6 + 1 by mělo být 7.

Nahoru Odpovědět
9.3.2013 21:03
New kid back on the block with a R.I.P
Avatar
Veganekk
Člen
Avatar
Veganekk:9.3.2013 21:06

bohuzel nepomohlo furt mam o jedno vice
:(
Asi bude chby ze na novem radku je mezera pred slovem... Mohlo by to byt ono ? jen me nenapada jak to osetrit ... :(

Editováno 9.3.2013 21:07
Nahoru Odpovědět
9.3.2013 21:06
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Veganekk
David Hartinger:9.3.2013 21:07

To samozřejmě vadí.

Nahoru Odpovědět
9.3.2013 21:07
New kid back on the block with a R.I.P
Avatar
Veganekk
Člen
Avatar
Veganekk:9.3.2013 21:08

Zkousel jsem to ale moje podminka nejde bohuzel :(

Nahoru Odpovědět
9.3.2013 21:08
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Mediel
Tvůrce
Avatar
Odpovídá na Veganekk
Mediel:9.3.2013 21:15

Mozna, by pomohlo vice se nad tim zamyslet, nez ocekavat, ze to nekdo vyresi za tebe... Ted jsem k tomu sednul a hle, vysledek je doma:

/// <summary>
    /// Počítní slov pomocí cysklu a podmínek.
    /// </summary>
    public static int CountWords2(string s)
    {
        int c = 0;
        for (int i = 1; i < s.Length; i++)
        {
            if (char.IsWhiteSpace(s[i - 1]) == true)
            {
                if (char.IsLetterOrDigit(s[i]) == true ||
                    char.IsPunctuation(s[i]))
                {
                    c++;
                }
            }
        }
        if (s.Length > 2)
        {
            c++;
        }
        return c;
    }

nebo:

/// <summary>
    /// Počítání slov pomocí regex výrazu.
    /// </summary>
    public static int CountWords1(string s)
    {
        MatchCollection collection = Regex.Matches(s, @"[\S]+");
        return collection.Count;
    }
Nahoru Odpovědět
9.3.2013 21:15
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Mediel
David Hartinger:9.3.2013 21:22

Stačí jet po znaku a pamatovat si jeslti jsi ve slově nebo ne. Mít pole znaků co jsou "mimoslovní". Napsal bych to sem, ale nemám teď čas.

Nahoru Odpovědět
9.3.2013 21:22
New kid back on the block with a R.I.P
Avatar
Mediel
Tvůrce
Avatar
Odpovídá na David Hartinger
Mediel:9.3.2013 21:23

To moje funguje take dobre :) Zvlaste to s tim regex :) je to kratke a efektivni :)

Nahoru Odpovědět
9.3.2013 21:23
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Veganekk
Člen
Avatar
Veganekk:9.3.2013 21:23

Tak promin ale snazim se nejvic co to jde ale bohuzel mi to nejde. Asi je to moje chyba ale to co jsme napsal nejde.A neznam nejaky IsWhiteSpace. Snazil jsme se to vyresit pomoci toho co umim ale i tak bud to pocitalo o 1 vic ci min tak promin ze jsem takovej DEBIL.

Nahoru Odpovědět
9.3.2013 21:23
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Mediel
Tvůrce
Avatar
Odpovídá na Veganekk
Mediel:9.3.2013 21:30

Nic se nedeje :) Jen proste asi by me vice zaujalo, kdyby jsi sem prisel s nejakou analyzou problemu... Tohle je uplne krasna algoritmizacni uloha k procvicovani hlubsiho uvazovani... :)

A kdyz se nad tim logicky clovke zamysli a udela si treba i tabulku promennych a jak to asi v tom cyklu vypada, tak na to po chvilce prijde...

A nemyslim si, ze jsi debil :) Naopak, mas snahu :) Zkus si projit tu horni metodu a napsat si k ni komentare :)

Nahoru Odpovědět
9.3.2013 21:30
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Veganekk
Člen
Avatar
Veganekk:9.3.2013 21:32

Ok zkusim. JEn mohl bys mi kdyztak napsat sem co znamena (IsWhiteSpace,..) a ty dalsi. nebo nekam kde si to mohu najit a procist? Byl bych vdecny. Dekuju

Nahoru Odpovědět
9.3.2013 21:32
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
Avatar
Mediel
Tvůrce
Avatar
Odpovídá na Veganekk
Mediel:9.3.2013 21:44

Z nazvu je to patrne...

IsWhiteSpace = Označuje, zda zadaný znak Unicode se dělí na prázdné místo.
IsLetterOrDigit = Označuje, zda je zadaný znak Unicode dělí písmeno nebo desítkové číslice.
IsPunctuation = Označuje, zda je zadaný znak Unicode dělí interpunkční znaménko.

Jak jsem k tomuto podrobnemu popisu prisel? Vzal jsam kazdy ten vyraz, napriklad IsWhiteSpace a okopiroval ho do google :) A ten mi hned jako prvni odkaz ukazal toto: http://msdn.microsoft.com/…tespace.aspx Coz je napoveda primo od Microsoftu :)

Nahoru Odpovědět
9.3.2013 21:44
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Veganekk
Člen
Avatar
Veganekk:9.3.2013 21:55

Děkuju... za vyvětlení :) a pomoc. Příště než přidám příspěvek tak si ten problem u kterého se seknu nechám projít hlavou dýl a snad za tu delší dobu kápnu na to.
Děkuji všem za pomoc

Nahoru Odpovědět
9.3.2013 21:55
Rád se učím novým věcem. A věci co nechápu rád pochopím a naučím.
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 26 zpráv z 26.