Avatar billede Mads Larsen Nybegynder
18. september 2009 - 13:04 Der er 3 kommentarer og
1 løsning

Tekstfiler - Open Close Reopen

Hej med jer

Mit problemer er at jeg skriver til en textfil i en while

men så kan det ske jeg skulle bruge en sub til at skrive noget specielt i den. Så bliver jeg jo nød til at lukke den jeg har i min while, men så når jeg skal bruge den i min while igen er der så en måde hvor jeg kan åbne den igen? Altså med det samme "dim" hvad man nu kalder det :)

Dim sw As New System.IO.StreamWriter

if blabla = 2 then
sw.close
  SkrivNogetFunction()
end if

Der er jo desværre ikke en sw.open :-)

Håber i forstår hvad jeg mener
Avatar billede bvli Praktikant
18. september 2009 - 13:11 #1
Det ville være god stil, om du lod din "SkrivNogetFunktion" tage en parameter af typen Stream (alternativt din writer) og så lade den skrive direkte til den.

På den måde vil du også kunne genanvende metoden, når du finder ud af, at den skal skrive til en NetworkStreamm, CryptoStream eller måske endda en MemoryStream på et andet tidspunkt.
Avatar billede Mads Larsen Nybegynder
18. september 2009 - 13:16 #2
Jeg er ikke helt med :-)
Du snakker mig helt over hovedet :)
Har aldrig brugt networkstream og alle dem.

Kan du forklare det på lidt mere "nemt" sprog.
Avatar billede bvli Praktikant
18. september 2009 - 13:29 #3
Ok - hvis du lader din "DoWriteSomething" tage en parameter, og det kan enten være en Stream (som er en baseklasse for alle de stream-typer der findes i frameworket) eller en TextWriter (som er baseklasse for alle de textwriters der findes i frameworket, så kan du nemmere genbruge din kode senere hen. Men selvom det ikke er tilfældet at du vil genbruge den, så vil det ihvertfald løse dit problem :)

Her er et eksempel:


[..]
Using stream As Stream = File.OpenWrite(somePath)
    Using writer As New StreamWriter(stream)
        writer.Write("hrmpf")
        While True
            If False Then
                DoWriteSomeThing(writer)
            End If
        End While
        writer.Write("hrmpf (igen)")
    End Using
End Using
[..]

Private Sub DoWriteSomeThing(ByVal writer As TextWriter)
    writer.Write("DoWriterSomething")
End Sub
Avatar billede Mads Larsen Nybegynder
18. september 2009 - 13:32 #4
Oh på den måde :-D

Tror godt jeg kan bruge det der :-)

Jeg takker mange gange :)
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