Gå til innhold

Anbefalte innlegg

Jeg har et aldri å lite problem med å lagre en tekstfil, og har kommet frem til at textWriter.Write er problemet: den skriver rett og slett ikke noe som helst. Mer speisifkt oppstår problemet når stringen jeg vil skrive inneholder en filvei, som f.eks: C:/Programmer/Adobe. I alle andre tilfeller jeg har testet dette virker det helt fint, så jeg skjønner ikke helt hva problemet kan være. All feedback mottas med takk =).

Lenke til kommentar
Videoannonse
Annonse

Tingen er at jeg bruker Regex til å lese informasjon fra tekstfilen, noe som skaper trøbbel når den inneholder \. Det er faktisk selve grunnen til at jeg brukte / i utgangspunktet.

Edit: Prøvde nettopp å erstatte "/" med "%" før jeg lagret det til filen, for så å erstatte "%" med "/" igjen når jeg ville hente informasjonen, men av en aller annen grunn vil det fremdeles ikke lagres.

Endret av Velena
Lenke til kommentar

Er rimelig irritert nå. Hva i all verden er galt med dette:

string theSettings;
using (TextReader settingsFile = new StreamReader(Application.StartupPath+@"\Settings.ini"))
theSettings = settingsFile.ReadToEnd();

theSettings = theSettings.Remove(Regex.Match(theSettings, @"(?<=!DFPt:)C:(\\w+)+.txt(?=!)").Index, Regex.Match(theSettings, @"(?<=!DFPt:)C:(\\w+)+.txt(?=!)").Length);
theSettings = theSettings.Insert(Regex.Match(theSettings, @"(?<=!DFPt:)!").Index, FilepathTBox.Text);

using (TextWriter settingsWriter = new StreamWriter("Settings.ini"))
		{
			settingsWriter.Write(theSettings);
		 }

Selve tekstfilen:

-----------Settings file-----------

!TAB1-!DPt:0!DPc:False!DNt:0!DNc:False!DFt:230!DFc:False!
!TAB2-!DXt:100!DXc:True!DYt:100!DYc:True!DTt:2!DTc:True!
!TAB3-!DFPt:C:\Programmer\Eksempel\Test.txt!DFPc:True!

				   :::NOTE:::
Please don't edit this using a text editor. Instead, click the
settings button in the main window and edit your preferences there.

Innhold i FilepathTBox:C:\Programmer\Test.txt

Resultat: Ingenting blir skrevet til filen.

Lenke til kommentar

Hvorfor matcher du flere ganger?

 

Match m = reg.Match(blablabla);

while(m.Success)
{
 theSettings = theSettings.Remove(m.Index, m.Length);
 m = m.NextMatch();
}

 

edit: det er ikke helt riktig det heller, det er egne replace funksjoner bygget inn i regex.

Endret av GeirGrusom
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...