Gå til innhold

[Løst] C# .Replace klarer ikke ord med likehetstegn


Anbefalte innlegg

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 av RMBB
Lenke til kommentar
Videoannonse
Annonse

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);
  • Liker 1
Lenke til kommentar

 

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...