Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 11 odgovora
  • 5.303 pregleda

Najnovija ↓

Citanje iz fajla u C# 28.11.2007. u 19:42 · pre 230 meseci #1
Kako da pročitam reči odvojene blanko karakterom iz tekstualnog fajla u C#?

Hvala
Re: Citanje iz fajla u C# 28.11.2007. u 22:39 · pre 230 meseci #2
Code:

            StreamReader objReader = new StreamReader("nesto.txt");
            string str = objReader.ReadToEnd();
            objReader.Close();

            List<string> stringovi = new List<string>();

            foreach (string subString in str.Split(' '))
           {
                    stringovi.Add (subString);
           }
Potpis
Mislim, šta reći !
Re: Citanje iz fajla u C# 29.11.2007. u 00:59 · pre 230 meseci #3
Nisam siguran pa taman i da se proverim, da li bi se str.Split(' ') izvrsilo samo jednom (kao sto bi bilo ovde potrebno)?
Tj. kako foreach interno radi?
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Citanje iz fajla u C# 29.11.2007. u 16:07 · pre 230 meseci #5
Kapiram,hvala puno.

Jos jedno pitanje, kako bih mogao sada te reci da upisujem u novi fajl ali da budu sortirane,svaka rec u novom redu.

Hvala
Re: Citanje iz fajla u C# 29.11.2007. u 16:21 · pre 230 meseci #6
Zašto mi ovo liči na domaći/seminarski zadatak?

Šta ti konkretno ne ide, napiši kako si probao pa neće.
Re: Citanje iz fajla u C# 29.11.2007. u 19:06 · pre 230 meseci #8
Citat:
Shadowed: Nisam siguran pa taman i da se proverim, da li bi se str.Split(' ') izvrsilo samo jednom (kao sto bi bilo ovde potrebno)?
Tj. kako foreach interno radi?


foreach je jezikca konstrukcija, tj. kompajler u pozadini uradi implementaciju while petlje. U zavisnosti da li objekat implementira IDisposable ovo varira:
Code:

Enumerator enumerator = (collection).GetEnumerator();
try {
    while (enumerator.MoveNext()) {
        ElementType element = (ElementType)enumerator.Current;
        statement;
    }
}
finally {
    IDisposable disposable = enumerator as System.IDisposable;
    if (disposable != null) disposable.Dispose();
}


Zanimljivo da Reflecotor prikazuje foreach petlju a ne ovakvu while konstrukciju, sto ce reci, izgleda da cita odredjeni blok IL kodova kako bi zakljucio da je u pitanju foreach petlja. Ono sto je jos zanimljivo je, sto sve nizove ([]) foreach drukcije konstruise u odnosu na klase koje implementiraju IEnumerable. Ukoliko klasa implementira IEnumerable onda se poziva citava ova konstrukcija, dok ako je u pitanju niz, onda se radi prosto uporedjivanje duzine niza sa trenutnom pozicijom u while petlji. Drugim recima, brze radi foreach sa [] nego sa klasama koje implementiraju IEnumerable i to skoro 2x.
Da, zaboravih, sporije je ako se radi samo uporedjivanje foreach bez ikakvog dodatnog overhead-a, sto u praksi niko ne koristi, dok ako postoji i obicno sabranje dve promenljive u foreach, onda ta razlika bledi sa povecanjem kompleksnosti operacije, drugim recima, skoro da je nebitno.

@cvolka11
Imas System.IO.File.ReadAllText method, posto vidim da citas odjednom ceo fajl.
Re: Citanje iz fajla u C# 29.11.2007. u 19:09 · pre 230 meseci #9
Citat:
cvolka11: Kapiram,hvala puno.

Jos jedno pitanje, kako bih mogao sada te reci da upisujem u novi fajl ali da budu sortirane,svaka rec u novom redu.

Hvala


Code:

           stringovi.Sort();

           StreamWriter objWriter = new StreamWriter("nestoDrugo.txt");

           for (int i = 0; i < stringovi.Count; i++)
           {

               objWriter.WriteLine(stringovi[i]);
           }
           objWriter.Close();
Potpis
Mislim, šta reći !
Re: Citanje iz fajla u C# 29.11.2007. u 20:11 · pre 230 meseci #10
@negyxo, hvala na odgovoru. Ono zbog cega sam pitao je to sto se sama kolekcija (niz u ovom slucaju) dobija u samoj foreach petlji pa ne znam da li kompajler nju uzme u neku promenljivu i onda nju koristi ili poziva svaki put? Pretpostavljam da je ovo prvo, ali sam par puta imao nedoumicu sta ce se desavati pa zato pitam (interesuje me i za javu isto, iako nije bas tema ovog foruma).
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Citanje iz fajla u C# 29.11.2007. u 21:25 · pre 230 meseci #11
Citat:
Shadowed: Ono zbog cega sam pitao je to sto se sama kolekcija (niz u ovom slucaju) dobija u samoj foreach petlji pa ne znam da li kompajler nju uzme u neku promenljivu i onda nju koristi ili poziva svaki put? Pretpostavljam da je ovo prvo, ali sam par puta imao nedoumicu sta ce se desavati pa zato pitam (interesuje me i za javu isto, iako nije bas tema ovog foruma).


E sad, da li ovo konstatujes sta ti nije bilo jasno ili je pitanje? Ukoliko je pitanje onda iz prethodnog odgovora mozes videti da se GetEnumerator() poziva pre while petlje, sto znaci, da se ne poziva na svakoj iteraciji jer bi to bilo suludo. Verovatno i sam znas da svaki poziv f-je zahteva par operacija sa registrima i stekom, sto je bespotrebni overhead.
Sad, sto se tice jave, to vec ne znam, ali pretpostavljam da je resenje veoma slicno.
Re: Citanje iz fajla u C# 29.11.2007. u 22:06 · pre 230 meseci #12
OK, da, u pravu si, nisam lepo obratio paznju, kada uzme jednom enumerator, posle uvek radi sa istom kolekcijom (od koje je i uzet), i da, isto je i u javi. Hvala!
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme