Velena Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 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 https://www.diskusjon.no/topic/1078745-c-textwriterwrite-vil-ikke-fungere/
Nuduaa Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 Bruk backslash \ istedet for forwardslash /. Og når du bruker \ i en string så må du escape den fordi \ har spesiell betydelse ellers. f.eks: C:\\Programmer\\Adobe Lenke til kommentar https://www.diskusjon.no/topic/1078745-c-textwriterwrite-vil-ikke-fungere/#findComment-13184081
Velena Skrevet 23. februar 2009 Forfatter Del Skrevet 23. februar 2009 (endret) 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 23. februar 2009 av Velena Lenke til kommentar https://www.diskusjon.no/topic/1078745-c-textwriterwrite-vil-ikke-fungere/#findComment-13184271
GeirGrusom Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 bruk verbatim string @"Hello\sworld!" Lenke til kommentar https://www.diskusjon.no/topic/1078745-c-textwriterwrite-vil-ikke-fungere/#findComment-13184402
Velena Skrevet 23. februar 2009 Forfatter Del Skrevet 23. februar 2009 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 https://www.diskusjon.no/topic/1078745-c-textwriterwrite-vil-ikke-fungere/#findComment-13184669
GeirGrusom Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 (endret) 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 23. februar 2009 av GeirGrusom Lenke til kommentar https://www.diskusjon.no/topic/1078745-c-textwriterwrite-vil-ikke-fungere/#findComment-13185191
Velena Skrevet 23. februar 2009 Forfatter Del Skrevet 23. februar 2009 Det er helt enkelt fordi jeg liker å bruke så få variabler som mulig. Skal bytte til Regex.Replace snarest mulig. Men hva er galt? Lenke til kommentar https://www.diskusjon.no/topic/1078745-c-textwriterwrite-vil-ikke-fungere/#findComment-13185523
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å