RMBB Skrevet 6. januar 2015 Del Skrevet 6. januar 2015 (endret) Har en .bat fil som inneholder blant annet "monitor=2" Dette ønsker jeg å kunne bytte til "monitor=1" Jeg bruker regex til å hente ut "monitor=2" og deretter .Replace til å erstatte den. Men det ser ikke ut til å virke. Noen som ser hva jeg gjør galt? private void AddMonitor1_Click(object sender, EventArgs e) { string txtfil = System.IO.File.ReadAllText("C:\\start.bat"); var match = Regex.Match(txtfil, @"(?:monitor=)\d{1,4}"); txtfil.Replace(match.ToString(), "monitor=1"); File.WriteAllText("C:\\start.bat", txtfil); } Endret 6. januar 2015 av RMBB Lenke til kommentar
kavorka Skrevet 6. januar 2015 Del Skrevet 6. januar 2015 Jeg ser (tror jeg) Replace vil ikke modifisere variabelen du kaller den på (string er en såkalt immutable datatype i C#), men vil i stedet returnere en ny string som du må ta vare på og gi som parameter til WriteAllText: replacedText = txtfil.Replace(match.ToString(), "monitor=1"); File.WriteAllText("C:\\start.bat", replacedText); 1 Lenke til kommentar
RMBB Skrevet 7. januar 2015 Forfatter Del Skrevet 7. januar 2015 Jeg ser (tror jeg) Replace vil ikke modifisere variabelen du kaller den på (string er en såkalt immutable datatype i C#), men vil i stedet returnere en ny string som du må ta vare på og gi som parameter til WriteAllText: replacedText = txtfil.Replace(match.ToString(), "monitor=1"); File.WriteAllText("C:\\start.bat", replacedText); Det gjorde du. Takker! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå