Läsa och skriva textfiler

Dialogfönster Textbehandling

VB.Net innehåller några funktioner som hanterar textfiler:

  • FileOpen: Öppnar en textfil för läsning eller skrivning.
  • LineInput: Läser en rad från en textfil.
  • PrintLine: Skriver en rad till en textfil.
  • EOF: (End of file) Kontrollerar om slutet av textfil nåtts vid läsning.
  • FileClose: Stänger en textfil.
Öppna en textfil för läsning och visa i en TextBox

Att öppna en textfil följer syntaxen:

FileOpen(filnummer, sökväg, operation)

Filnummer är ett tal man anger mellan 1 och 255. Det numret blir kopplat till den öppnade filen och används i programkoden i stället för ett filnamn.

Sökvägen kan man sätta dit själv om det är samma fil som skall användas hela tiden eller också kan man använda en FileOpenDialogbox.

Operation anger om vi skall läsa från filen eller skriva till den. Vi anger då OpenMode.Input respektive OpenMode.Output. Om man skriver till en fil med OpenMode.Output raderas det som redan står i filen. För att lägga till text efter den befintliga anväder vi OpenMode.Append.

Lägg ut en TextBox, en Label och en Button. Sätt TextBoxens egenskap MultiLine till True och ScrollBars till Vertical. Lägg också till en OpenFileDialog i projektet. Koden för knappen blir:

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

Dim Line As String
OpenFileDialog1.Filter = "(*.txt)|*.txt"
OpenFileDialog1.ShowDialog()
If OpenFileDialog1.FileName <> "" Then
   Label1.Text = OpenFileDialog1.FileName
   FileOpen(1, OpenFileDialog1.FileName, OpenMode.Input)
   Do Until EOF(1)
      Line = LineInput(1)
      TextBox1.Text = TextBox1.Text & Line & vbCrLf
   Loop
End If
FileClose(1)
End Sub

Varje rad i textfilen läses för sig och dessa rader skall läggas i en variabel som vi först deklarerar. Därefter öppnas OpenFileDialog med filter för att visa txt-filer.

I If-satsen kollas om man har valt en fil och om så är fallet visas sökvägen och filnamnet i Labeln. Sedan öppnas filen med kopplingsnummer 1 för läsning. Do until EOF(1) betyder att slingan skall köras till slutet av filen med nummer 1. Man kan alltså ha fler filer öppna samtidigt och styra läsningen genom kopplingsnumret.

Varje rad läggs till variabeln Line som sedan läggs till det som finns i TextBoxen. Bokstäverna vbCrLf ger en radmatning i filen, precis som ett Enterslag. När slingan är klar är det viktigt att stänga filen med FileClose(1).

Skriva till en textfil

Att skriva til en fil blir ungefär samma kod som att läsa en fil. Lägg till en Button och en SaveFileDialog till projektet. I den nya knappen skriver vi följande kod:

SaveFileDialog1.Filter = "(*.txt)|*.txt" SaveFileDialog1.ShowDialog() If SaveFileDialog1.FileName <> "" Then
   FileOpen(1, SaveFileDialog1.FileName, OpenMode.Output)
   PrintLine(1, TextBox1.Text)
   FileClose(1)
End If

När vi klickar på den nya knappen öppnas ett dialogfönster för filsparande, med ett filter som bara kan spara txt-filer.

Om vi anger ett filnamn skapas en ny fil som programmet skriver till. Om vi väljer en befintlig fil skrivs innehållet över. Vill vi behålla innehållet och lägga till text ändrar vi OpenMode.Output till OpenMode.Append. PrintLine skriver allt som finns i TextBox1 till filen.

Glöm inte att slutligen stänga filen.

Vi kanske vill skriva in dagens datum i filen. Då ändrar vi PrintLine-raden till:

PrintLine(1, DateString & vbCrLf & TextBox1.Text)

Nu hamnar datumet överst i den sparade textfilen

Dialogfönster Textbehandling

SupportData.Net
©