Chcel by som vedieť ako sa dá naprogramovať to že napr.: zadáš príkaz aby do textboxu napísal prvý riadok z textového súboru (subor.txt) . A ešte ako sa dá že zadáte iba adresár a on vám zo všetkých suborov s koncovkou .txt vypíše prvý riadok do listboxu .
Stačí aj neaký link ktorý bude niečo okolo toho :P
Dík fest .
P.S: hľadal som to na googli ale neviem aké správne kľúčové slovo k tomu použiť :(
Fórum › .NET
Čítanie z textového súboru
dík za link ale ešte jedno vec ako do toho mám dať aby mi prečítalo !iba! štvrty riadaok z toho textu ?
To zonda : Procházej jednotlivé řádky a až narazíš na ten správný, tak ho přečti (možná jde i přímo skočit na nějaký řádek, nejsem si jistej). Jo a když už se nekamarádíš s angličtinou, tak zkus alespoň překladač - mohl bys přijít na to, že tato kombinace slov tě velmi rychle posune k hledanému výsledu: http://www.google.com/search?client=opera&rls=cs&q=c%23+read+text+file&sourceid=opera&ie=utf-8&oe=utf-8.
No pozrel som všetko čo bolo na googli ale nenašiel som žeby niekde bolo čítanie pre niektorý riadok samostatne všetky boli iba pre čítanie celého textu .
Prosím porad veim že to má byť napísané niekde tu ale neviem čo tam má byť napísané .
try
{
using (StreamReader sr = new StreamReader("C://TestFile.txt"))
{
string line;
while ((line = sr.ReadLine()) != null)
// tu by podľa mna malo niečo byť aby bol neaký riadok
// dal som (line = sr.ReadLine()) != 2 ale nejde to !
{
comboBox1.Text = line;
}
}
}
catch (Exception e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
Musíš u toho taky trochu přemejšlet a ne jen opisovat, co kde najdeš.
try
{
using (StreamReader sr = new StreamReader("C://TestFile.txt"))
{
string line;
int index = 0;
while ((line = sr.ReadLine()) != null)
{
if(index == 4)
{
comboBox1.Text = line;
}
index++;
}
}
}
catch (Exception e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
To mnn : takových lidí je dnes většina
ee naopak ja sa pritom učím tiež lebo to vidím v praxi . A to treba tiež .
To zonda : Jo, praxe tě naučí hodně, ale bez teoretických základů to nejde. Když máš teoretický základy, tak pro tebe v praxi nebude problém vymyslet vlastní řešení (i když ne vždy), které ti dá mnohem víc než to, co ti někdo v diskuzi napíše.
Na Dušanovu obranu musím poznamenat, že se jednalo jen o "nakopnutí", ne hotové řešení (ostatně ten program čte pátý a ne čtvrtý řádek:) Ono by bylo vůbec dobré něco si přečíst o třídách .NETu, které manipulují se soubory - jiné jsou vhodné pro práci s textovými soubory, jiné pro obecné binární a ještě jiné pro binární se známou strukturou dat.
Ano, šlo jen o nakopnutí. Nepřemýšlel jsem nad tím, co tam píšu - to sice není nejlepší přístup, ale v tu dobu mi to bylo jedno.
BTW: Já nevim, jestli přečtením pátého řádku veškerá práce končí.
Pokud to nejsou nějaké gigantické soubory, kde se vyplatí používat StreamReader, bych pro začátečníka doporučil spíš tento postup:
string line = System.IO.File.ReadAllLines ("C://File.txt")[0];
plus ošetření výjimek. To čtení z adresáře bych udělal nějak takto:foreach (string fileName in System.IO.Directory.GetFiles ("C://Directory"))
{
string line = System.IO.File.ReadAllLines (fileName)[0];
// zpracovat radku
}
Když si prohlídneš metodu GetFiles, tak najdeš možnost filtrovat vyhledané soubory - jen txt jak jsi chtěl a další optiony, které upravují způsob výběru. To jsem ale do příkladu nezahrnul, protože se mi to nechtělo zkoušet.
To Wideman : Funguje tam totéž, co při vyhledávání ve Windows. Tj. třeba název souboru "k?t*.txt" může znamenat "kytara.txt", ale už ne "kravata.txt".
Mezi použitím System.IO.File.ReadAllLines a přímým použitím StreamReaderu není až takovej rozdíl, protože logika této metody vypadá nějak takhle:
public static string[] ReadAllLines(string path)
{
ArrayList list = new ArrayList();
using (StreamReader reader = new StreamReader(path, encoding))
{
string str;
while ((str = reader.ReadLine()) != null)
{
list.Add(str);
}
}
return (string[])list.ToArray(typeof(string));
}
dík fest za radi . JA viem že mám trochu medzeri .
A ešte mám jednu otázočko k tomu čítaniu :
Aké kľučové slovo by ste použili ak chcete aby prečítalo všetky subori v danom adresáte s koncovkov .txt ?
Napr na disku C mám 6 txt suborov .Aké kľučové slovo mám použiť aby mi vypísalo všetky texti z tých 6 txt suborov ?
zonda napsal:
dík fest za radi . JA viem že mám trochu medzeri .
A ešte mám jednu otázočko k tomu čítaniu :
Aké kľučové slovo by ste použili ak chcete aby prečítalo všetky subori v danom adresáte s koncovkov .txt ?
Napr na disku C mám 6 txt suborov .Aké kľučové slovo mám použiť aby mi vypísalo všetky texti z tých 6 txt suborov ?
Nejdřív bych zjistil, kolik .txt souborů je v daném adresáři a pak jejich obsah postupně vypisoval. IMOH na tom není nic těžkého a otázku s klíčovým slovem jsem moc nepochopil.
To zonda : Vzhledem k tomu, co jsem napsal by ti mohlo dojít, že to bude "*.txt".
new StreamReader("C://*.txt")
mám napísane ale nejde to .
A neviem či si to tak myslel ? s tou * ?
Napísal : paul27
Nejdřív bych zjistil, kolik .txt souborů je v daném adresáři a pak jejich obsah postupně vypisoval. IMOH na tom není nic těžkého a otázku s klíčovým slovem jsem moc nepochopil.
Ale ja neviem koľko ich tam bude preto sa pýtam lebo ja chcem iba pre hociaký počet s hociakým názvom aby ale iba s určitou koncovkov čiže .txt
To zonda : Takže ty u toho prostě nebudeš přemejšlet.
foreach (string fileName in System.IO.Directory.GetFiles ("C://Directory", "*.txt"))
{
string line = System.IO.File.ReadAllLines (fileName)[3];
// zpracovat radku
}
Toto tvoje nejde píše chybu v tomto ("C://Directory", "*.txt")
Tak so pozrel niečo viac na googli o GetFiles . z toho čo som vičítal som si poskladal toto :
DirectoryInfo disk = new DirectoryInfo("C://");
FileInfo[] filter = disk.GetFiles("*.txt");
foreach (FileInfo nazov in filter)
Console.WriteLine(nazov);
Toto mi nevypíše nič z toho čo je v subore ale vypíše iba názovsuboru s koncovkou txt .
nevieš toto ešte tak premeniť aby mi to čítalo čo je dnu ?? tie riadky s tačí iba prvý ked tak už .
Ak ee tak aj tak dík . A dík všetkým čo sa zapojili do tejto diskusií .
Konec, na tohle já nemám energii.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Čítanie textového súboru — založil Trebor
Citanie z textoveho suboru od konca po nejaky urcity riadok — založil Tayson
Ukladanie do súboru + čítanie zo súboru + mazanie prvkov a pod — založil angela
Ukladanie do súboru + dedenie + čítanie zo súboru — založil marek
Citanie suboru — založil Peter125
Moderátoři diskuze