StreamWriter problemer

Tags:    visual-basic

Godaften alle.

Jeg sidder her og er gået lidt i stå med StreamWriter :S

Jeg skal have mit program til at tilføje en ny linje i en ganske almindelig tekst fil. M
Min kode ser p.t. således ud:

Fold kodeboks ind/udKode 


Når jeg så prøver at tilføje den omtalte linje, får jeg fejlmeddelsen:
"A first chance exception of type 'System.NullReferenceException' occurred in SW.exe"
og:
"Objektreferencen er ikke indstillet til en forekomst af et objekt."

Er der nogle der har lidt kendskab til det, og er frisk på at give en hjælpende hånd?

På forhånd tak,
Lasse.



10 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Tjo, hvorfor ikke?
Nu har du jo allerede en streamreader i din kode, så det du gør er bare at næste gang filen skal skrives til, læser du den, lukker den, åbner den Writer og skriver det hele til den, efterfulgt af de nye linjer. Det er hvis det er i 'Log' format.
Det er klart at skal du manipulere filen og indsætte forskellige steder, skal du muligvis ind og læse enkelte tegn ad gangen and so forth...

Som sagt kommer det helt an på, hvad filen skal bruges til. Der er jo muligheden for at bruge databaser, men hvis du bare skal tilføje linjer til filen, er det bedre med en ren tekstfil. Skal du derimod bruge data enkeltvis og mere struktureret, er det lettere at manipulere i en database.

Håber det klarer tingene lidt op!



Kan afsætte flere points hvis det er?



Du har ikke givet din writer noget filnavn.
Prøv at kalde din writer som du gør med din reader, altså:
Fold kodeboks ind/udKode 




Ronnie > Så når jeg skal skrive til filen skal den se således ud?

Filskriver.WriteLine("Linjetekst")
Writer.Close()





Har lige prøvet - det virker halvt. Den tilfølger "Hi there" men; den kan kun tilføje den ene linje. Den skal jo helst tilføje en ny linje for hver gang man benytter den funktion?



Fold kodeboks ind/udKode 


Ellers brug Filskriver.Write istedet for WriteLine, så skal du bare have fat i det rigtige tegn for linjeskift, men det ovenstående skulle gerne fungere.
Du skal huske at når du bruger .Close() lukker du hele streamwriteren, ergo skal denne først bruges når du er færdig med at skrive til filen.



Indlæg senest redigeret d. 21.07.2008 14:48 af Bruger #13985
Ronnie > tror jeg er med nu. Men den skal jo bruges flere gange den txtfil - hver gang man submitter noget tekst, skal den addes til den nuværrende tekst i txtfilen.
Det er måske ikke txt-filer der er løsningen så?



Ronnie > Ahh, så dvs., at jeg kan lave det således:

Fold kodeboks ind/udKode 




Til dels. Du skal hente den med StreamReader først. Lav en google på den, det er noget med Dim Laeser as new IO.StreamReader("Filnavn").ReadToEnd, TROR jeg nok.
Dette vil være mere korrekt:
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 21.07.2008 18:00 af Bruger #13985
Okay, jeg takker mange gange.



t