RMBB 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 RMBB
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); 1
RMBB Skrevet 7. januar 2015 Forfatter 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å