Diskuze: Výběr textu ze souboru
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 7 zpráv z 7.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Tak získat text který je v uvozovkách lze několika způsoby ,ale pro mě nejlehčí a nejlepší jak ho získávat je pomocí regexu.
string pattern = "\"(.*?)\"";
MatchCollection matches = Regex.Matches(text, pattern);
foreach(Match match in matches)
{
Console.WriteLine(match.Groups[0].Value);
}
A u zápisu je to skoro stejný.Záleží jak čteš a zapisuješ do
souboru.Jestli načítáš celý soubor a nebo to projíždíš řádek po
řádku.
Snad ti to nějak pomůže.
Načítám celý soubor ale v listboxu upravuji jen konkrétní řádky, hned to vyzkouším a dám vědět
Tak úplně netuším jak to zaimplementovat můj kod pro načtení vypadá takto
private void btn_Load_Click(object sender, EventArgs e)
{
try
{
string[] lines = System.IO.File.ReadAllLines(txtPatch.Text.Trim());
foreach (string line in lines)
{
listBox1.Items.Add(line);
}
}
v C# začínám
Takže jestli to chápu tak ty chceš do listboxu vypsat jen věci v
uvozovkách že ? Tudíž první co jsme zapomněl napsat že je třeba přidat
using System.Text.RegularExpressions kde se nachází Regex atd....
Když upravím to co si poslal, tak by to mohlo vypadat nějak takhle:
private void btn_Load_Click(object sender, EventArgs e)
{
try
{
string file = System.IO.File.ReadAllText(txtPatch.Text.Trim());
string pattern = "\"(.*?)\"";
MatchCollection matches = Regex.Matches(file, pattern);
foreach(Match match in matches)
{
listBox1.Items.Add(match.Groups[0].Value);
}
}
Funguje to přesně jak potřebuji, můžeš mi ještě trošku osvětlit jak ten kod funguje ?
No jako na tom není nic moc co vysvětlovat. Jako vysvětlovat jak to přesně funguje není třeba.Když budeš chtít tak si najdi jak fungují regulární výrazy, případně třída Regex && Match. Když to shrnu tak máš prostě nějaký text a funkce
Regex.Matches(text,vzor);
vyhledá v tom textu řetězce který splňují zadaný vzor a já si ho pouze uložím do kolekce Match a potom si ho vytáhnu z kolekce pomocí foreach
Zobrazeno 7 zpráv z 7.