Avatar billede dranzer Nybegynder
01. maj 2006 - 19:10 Der er 14 kommentarer og
1 løsning

Problemer sletter alt min tekst :o(

Jeg har lige oprette en ny tråd der var ikke nogen der ville svare på den ande.

Jeg ville spørger om man med denne kode ikke kunne gøre sådan at når den tilføjet noget så slette den ikke alt det andet tekst der var i file i forvejen så skrev den bare vidre neden under?

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim objStreamWriter As IO.StreamWriter

        'Pass the file path and the file name to the StreamWriter constructor.
        objStreamWriter = New IO.StreamWriter("D:\test.txt")

        'Write a line of text.
        objStreamWriter.WriteLine("Hello World")

        'Write a second line of text.
        objStreamWriter.WriteLine("From the StreamWriter class")

        'Close the file.
        objStreamWriter.Close()

    End Sub
End Class

Er det muligt? ;o)
Avatar billede nielle Nybegynder
01. maj 2006 - 19:24 #1
Ret denne:

objStreamWriter = New IO.StreamWriter("D:\test.txt")

- til dette:

objStreamWriter = New IO.StreamWriter("D:\test.txt", true)

- så burde den append'e i stedet for at overskrive.
Avatar billede dranzer Nybegynder
01. maj 2006 - 19:47 #2
Det virker fint tak. Men er det muligt at gøre sådan at hvis den er skrivebeskyttet den fil den vil skrive i så melder den ikke fejl...

Fordi hvis jeg prøve at få mit program til at skrive i en fil som er skrivebeskytte får jeg en fejl...
Så jeg ville hellere have at der så ikke sket nogen hvis den forsøger at skrive i filen og den ikke kunne. Så jeg ikke fik en fejl.

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim objStreamWriter As IO.StreamWriter

        'Pass the file path and the file name to the StreamWriter constructor.
        objStreamWriter = New IO.StreamWriter("D:\test.txt", True)

        'Write a line of text.
        objStreamWriter.WriteLine("Hello World")

        'Write a second line of text.
        objStreamWriter.WriteLine("From the StreamWriter class")

        'Close the file.
        objStreamWriter.Close()

    End Sub
End Class
Avatar billede nielle Nybegynder
01. maj 2006 - 19:54 #3
Det afhænger lidt af hvorfor at den er skrivebeskyttet ... hvis det f.eks. er fordi at der er et andet program som er i gang med at bruge filen, så er det ikke muligt.
Avatar billede nielle Nybegynder
01. maj 2006 - 20:07 #4
Kiggede lige på dit forrige spørgsmål. Er det noget i denne stil du er ude efter?

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim objStreamWriter As IO.StreamWriter

            'Pass the file path and the file name to the StreamWriter constructor.
            objStreamWriter = New IO.StreamWriter("D:\test.txt", True)

            'Write a line of text.
            objStreamWriter.WriteLine("Hello World")

            'Write a second line of text.
            objStreamWriter.WriteLine("From the StreamWriter class")

            'Close the file.
            objStreamWriter.Close()
        Catch ex As IO.IOException
            MessageBox.Show("Kunne ikke skrive til filen.")
        End Try
    End Sub
Avatar billede dranzer Nybegynder
01. maj 2006 - 20:08 #5
oki.. Hvis jeg nu for eksempel skulle skrive noget i hosts file den kan jo blive låst af nogen programmer.. Hvis den er lås af et program som for eksempel Spybot - Search & Destroy Kan man så bare gøre at den ikke skal sige noget hvis den ikke kan?
Avatar billede nielle Nybegynder
01. maj 2006 - 20:12 #6
Du kan bere udelade kodelinjen:

MessageBox.Show("Kunne ikke skrive til filen.")
Avatar billede dranzer Nybegynder
01. maj 2006 - 20:16 #7
oki med jeg prøvet den kode du gav mig jeg får denne fejl

objStreamWriter = New IO.StreamWriter("C:\WINDOWS\system32\drivers\etc\hosts", True)

Adgang til stien 'C:\WINDOWS\system32\drivers\etc\hosts' blev nægtet.

Hvad skal jeg gøre?
Avatar billede dranzer Nybegynder
01. maj 2006 - 20:18 #8
så den melder fejl... Det hjælp ikke den der kode.
Avatar billede nielle Nybegynder
01. maj 2006 - 20:22 #9
Kommer der ikke en exception?
Avatar billede dranzer Nybegynder
01. maj 2006 - 20:27 #10
Jeg får sådan en fejl her:

http://www.online-net.dk/fejl.JPG
Avatar billede nielle Nybegynder
01. maj 2006 - 20:31 #11
Som man kan se er det en UnauthorizedAccessException som kastes. Prøv derfor med denne her kode i stedet:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim objStreamWriter As IO.StreamWriter

            'Pass the file path and the file name to the StreamWriter constructor.
            objStreamWriter = New IO.StreamWriter("C:\WINDOWS\system32\drivers\etc\hosts", True)

            'Write a line of text.
            objStreamWriter.WriteLine("Hello World")

            'Write a second line of text.
            objStreamWriter.WriteLine("From the StreamWriter class")

            'Close the file.
            objStreamWriter.Close()
        Catch ex As UnauthorizedAccessException
            ' MessageBox.Show("Kunne ikke skrive til filen.")
        End Try
    End Sub
Avatar billede dranzer Nybegynder
01. maj 2006 - 20:43 #12
Mange, Mange Tak for hjælpen nielle.  ;o)
Avatar billede nielle Nybegynder
01. maj 2006 - 20:43 #13
Svar :^)

... med mindre at der var andet?
Avatar billede dranzer Nybegynder
01. maj 2006 - 20:52 #14
Der var ikke andet men jeg må bare lave en ny tråd hvis jeg skal sprøge om nogen nyt ingen. ;o)
Avatar billede nielle Nybegynder
01. maj 2006 - 20:55 #15
Takker for point :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester