Gjest Slettet-cl2qXq Skrevet 6. januar 2015 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 Slettet-cl2qXq
kavorka Skrevet 6. januar 2015 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);
Gjest Slettet-cl2qXq Skrevet 7. januar 2015 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!
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å