18. september 2009 - 13:04Der 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
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.
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
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.