Nejčastěji odpovídající uživatel
Práce s textovým souborem

Dotaz
-
Odpovědi
-
Pro práci se soubory slouží třídy v namespace System.IO, v nejednodušším případě pak pomocná třída File, popř. StreamReader a StreamWriter.
V případě malých souborů je nejrychlejší a nejjednodušší možnost přečíst celý soubor do paměti, provést změnu a zapsat soubor na disk.
Něco jako (píšu z paměti, budete si muset poladit):
string fileContent; using (StreamReader sr = File.OpenText(@"C:\MyFile.txt")) { fileContent = sr.ReadToEnd(); } // transformace fileContent, změna třetího řádku using (StreamWriter sw = File.CreateText(@"C:\MyNewFile.txt")) { sw.Write(fileContent); }
Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz- Označen jako odpověď Robert HakenMVP, Moderator úterý 21. července 2009 14:20
-
Aha, no tak to můžete buď použít v cyklu myLine = sr.ReadLine() a číst soubor po řádcích. Nebo udělat třeba string[] lines = fileContent.Split('\n') a rozdělit si to na pole řádek, následně lines[3] = novaHodnota; a třeba fileContent = String.Join(lines, "\n");
ad Nahrazení - můžete třeba původní soubor smazat File.Delete() a nový přejmenovat File.Move()
Nebo byste to celý musel dělat přes ReadWrite přístup, otevřít si FileStream, doSeekovat se na třetí řádek, ten překopat, atp. Ale to se vyplatí jen u velkých souborů.
Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz- Označen jako odpověď Robert HakenMVP, Moderator úterý 21. července 2009 17:51
Všechny reakce
-
Pro práci se soubory slouží třídy v namespace System.IO, v nejednodušším případě pak pomocná třída File, popř. StreamReader a StreamWriter.
V případě malých souborů je nejrychlejší a nejjednodušší možnost přečíst celý soubor do paměti, provést změnu a zapsat soubor na disk.
Něco jako (píšu z paměti, budete si muset poladit):
string fileContent; using (StreamReader sr = File.OpenText(@"C:\MyFile.txt")) { fileContent = sr.ReadToEnd(); } // transformace fileContent, změna třetího řádku using (StreamWriter sw = File.CreateText(@"C:\MyNewFile.txt")) { sw.Write(fileContent); }
Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz- Označen jako odpověď Robert HakenMVP, Moderator úterý 21. července 2009 14:20
-
-
Aha, no tak to můžete buď použít v cyklu myLine = sr.ReadLine() a číst soubor po řádcích. Nebo udělat třeba string[] lines = fileContent.Split('\n') a rozdělit si to na pole řádek, následně lines[3] = novaHodnota; a třeba fileContent = String.Join(lines, "\n");
ad Nahrazení - můžete třeba původní soubor smazat File.Delete() a nový přejmenovat File.Move()
Nebo byste to celý musel dělat přes ReadWrite přístup, otevřít si FileStream, doSeekovat se na třetí řádek, ten překopat, atp. Ale to se vyplatí jen u velkých souborů.
Robert Haken, Microsoft MVP ASP/ASP.NET, HAVIT, s.r.o., www.havit.cz, http://knowledge-base.havit.cz- Označen jako odpověď Robert HakenMVP, Moderator úterý 21. července 2009 17:51