Forum » Programiranje » branje iz datoteke c#
branje iz datoteke c#

bigbada ::
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Linq; using System.Text; using System.IO; using System.Text.RegularExpressions; namespace Vaja1 { class Program { static void Main(string[] args) { string datoteka; while (true) { Console.Write("Ime datoteke: "); datoteka = Console.ReadLine(); if (File.Exists(datoteka)) break; else Console.WriteLine("Datoteka s tem imenom ne obstaja!"); } FileStream fs = new FileStream(datoteka, FileMode.Open, FileAccess.Read); StreamReader textIn = new StreamReader(fs); int znakov = 0; int besed = 0; while (textIn.Peek() != -1) { string stavek = textIn.ReadLine(); znakov = znakov + stavek.Length; } textIn.Close(); Console.WriteLine("Skupno število znakov v datoteki: " + znakov); Console.WriteLine("Skupno število besed v datoteki: " + besed); Console.ReadKey(); } } }
Moram narediti, da iz datoteke prebere število znakov in število besed. Za znake mi je nekako uspelo. Za besede pa nevem kako se naj lotim. Oz. kako naj preštejem besede.. Vejice in pike nadomestim s presledki, potem pa bi nekako moral prebrati do vsakega presledka in naprej.. Moram pa uporabiti metodo split in razred RegeX..
Any help?
hvala
- spremenilo: bigbada ()

bigbada ::
@"[\S]+" v tem primeru odstrani presledke.. vse kar ni presledek kao. Vejic pa ne odstrani in jih kar zraven šteje kot besede.. hmm
Zgodovina sprememb…
- spremenilo: bigbada ()

bigbada ::
Mogoče kdo ve kako je reg.izraz za vse črke in še ŠUMNIKE.
Poskusil sem @"[A-Za-z0-9]" in @"[A-Za-z0-9čČšŠžŽ]" pa ne gre. Ne najde mi šumnikov...
Poskusil sem @"[A-Za-z0-9]" in @"[A-Za-z0-9čČšŠžŽ]" pa ne gre. Ne najde mi šumnikov...

bigbada ::
Sem ze resil. Zanima me kako bi naredil, da bi mi iz ene datoteke(besede2.txt) prebralo vse besede in potem prebralo drugo datoteko(besede1.txt) in pogledalo, če se v njej nahajajo iste besede?
besede1.txt
blabla
avto
krneki
krneki
miza
miza
besede2.txt
avto
miza
Potem bi mi izpisalo, katere besede so iste in koliko jih je:
izpis:
avto 1
miza 2
Prosim za kanček pomoči, ker mi nikakor ne uspe niti začet. Najlazje je narediti z metodo .Matches, samo nevem kako.
besede1.txt
blabla
avto
krneki
krneki
miza
miza
besede2.txt
avto
miza
Potem bi mi izpisalo, katere besede so iste in koliko jih je:
izpis:
avto 1
miza 2
Prosim za kanček pomoči, ker mi nikakor ne uspe niti začet. Najlazje je narediti z metodo .Matches, samo nevem kako.

dolenc ::
Idejno rešiš takole, dva readerja en bere eno datoteko en drugo.
Potem potrebuješ dve zanki, while bo uredu, ki preletita datoteki in sicer tako, greš v prvo, prebereš prvo besedo in prevrtiš drugo datoteko, če je beseda v prvi enaka besedi v drugi, povečaš nek števec in če je števec večji od 0, to besedo izpišeš in njen števec(da dobiš željeni izpis), potem se v prvi datoteki premakneš na drugo besedo in ponoviš postopek. Se pravi za vsako besedo v prvi preletiš vse besede v drugi in na koncu izpisuješ če imaš kaj. Zdej al boš primerjaj beseda1 = beseda2 ali pa uporabil matches je pa čisto po-željno.
Potem potrebuješ dve zanki, while bo uredu, ki preletita datoteki in sicer tako, greš v prvo, prebereš prvo besedo in prevrtiš drugo datoteko, če je beseda v prvi enaka besedi v drugi, povečaš nek števec in če je števec večji od 0, to besedo izpišeš in njen števec(da dobiš željeni izpis), potem se v prvi datoteki premakneš na drugo besedo in ponoviš postopek. Se pravi za vsako besedo v prvi preletiš vse besede v drugi in na koncu izpisuješ če imaš kaj. Zdej al boš primerjaj beseda1 = beseda2 ali pa uporabil matches je pa čisto po-željno.

bigbada ::
Hmm ja ideja zveni kul, vendar je problem, da recimo ima prva datoteka AVTO, AVTO.
v drugi pa je vpisano AVTO
Torej se nahaja vendar ne morem preverjati, ker AVTO, != AVTO .. Verjetno bi moral vse vejice in pike nadomestiti s presledki? Ali kako?
v drugi pa je vpisano AVTO
Torej se nahaja vendar ne morem preverjati, ker AVTO, != AVTO .. Verjetno bi moral vse vejice in pike nadomestiti s presledki? Ali kako?

keworkian ::
A se besede v prvi datoteki ponavljajo?
ok nvm se ponavljajo.
ok nvm se ponavljajo.
Zgodovina sprememb…
- spremenil: keworkian ()

bigbada ::
Ja
Evo datoteka z besedilom
Druga datoteka z besedami, ki se iščejo v prvi
PRODAM mora najti 4x
kg 4x
cisterno 1x
Evo datoteka z besedilom
PRODAM DVA PRAŠIČA. Tel. 02/682-67-41. (OJ34526/21/1) PRODAM PRAŠIČA 200 KG, domače reje. Zg. Duplek. Tel. 02/681-0211. (OJ34529/21/1) PRAŠIČE DOMAČE REJE, težke ca. 170-180 kg, prodam. Možnost kolin. Tel. 02/629-2250, 041 262 546. (OJ34531/21/1) PRODAM PRAŠIČE 100-140 kg. Cena 1,30 EUR/kg in cisterno Creina 3200 l. Tel. 031 754-973. (OJ34534/21/1) 230 DELO 231 DOBI
Druga datoteka z besedami, ki se iščejo v prvi
PRODAM cisterno KG
PRODAM mora najti 4x
kg 4x
cisterno 1x
Zgodovina sprememb…
- spremenilo: bigbada ()

keworkian ::
Izvoli je napisan uber češko samo se mi ni dalo preveč komplicirat z raznim UTF-8 sranjem.
PS: pozabil še izpis!!!
PS: pozabil še izpis!!!
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Text.RegularExpressions; namespace wordcompare { class Program { static string dat = @"c:\vaja\compare\besede1.txt"; static string dat2 = @"c:\vaja\compare\besede2.txt"; static string regex = @"\w+"; static void Main(string[] args) { string vals = File.ReadAllText(dat); string vals2 = File.ReadAllText(dat2); MatchCollection m1 = Regex.Matches(vals, regex); MatchCollection m2 = Regex.Matches(vals2, regex); Dictionary<string, int> w = new Dictionary<string, int>(); for (int i = 0; i < m1.Count; i++) { for (int j = 0; j < m2.Count; j++) { if (m1[i].Value.ToLower() == m2[j].Value.ToLower()) { if (!w.ContainsKey(m1[i].Value.ToLower())) { w.Add(m1[i].Value.ToLower(), 1); } else { w[m1[i].Value.ToLower()] += 1; } } } } foreach (KeyValuePair<string, int> item in w) { Console.WriteLine("{0} {1}", item.Key, item.Value); } Console.ReadLine(); } } }
Zgodovina sprememb…
- spremenil: keworkian ()

darkolord ::
Malo manj češko:
string vals = File.ReadAllText(@"c:\vaja\compare\besede1.txt"); string vals2 = File.ReadAllText(@"c:\vaja\compare\besede2.txt"); var besede = vals.ToLower().Split(" ,.!?\r\n".ToCharArray()); var besede2 = vals2.ToLower().Split(" ,.!?\r\n".ToCharArray()); var w = besede.Where(b => besede2.Contains(b)).GroupBy(b => b); foreach (var item in w) { Console.WriteLine("{0} {1}", item.Key, item.Count()); } Console.ReadLine();
Zgodovina sprememb…
- spremenilo: darkolord ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | c# seminarskaOddelek: Programiranje | 2800 (2473) | tuned |
» | [c#] Majhen problemčekOddelek: Programiranje | 1057 (865) | darkolord |
» | [c#] Ustvarjanje objekta v drugem razreduOddelek: Programiranje | 1691 (1636) | Cvenemir |
» | Štetje besed v nizu (C#)Oddelek: Programiranje | 1095 (1033) | Spura |
» | [c] Enaki datotekiOddelek: Programiranje | 1073 (933) | Spura |