Läs och skriv till en textfil 1/2
Förord
Denna lilla kurs innefattar de absolut enklaste funktionerna för att läsa och skriva till en textfil. När du har läst igenom detta, föreslår jag att du själv försöker skriva din egna kod, och inte använda dessa exempel som du klistrar in i ditt projekt och sedan kör. På detta sätt kommer du att få mer förståelse i vad och varför vissa saker görs. Som du kommer att märka är kursen skriven för en användare som knappt arbetat med Visual Basic, så ni som är lite mer vana får skumma igenom detta.Innehåll
»»
»
»
Relaterade artiklar
» Läs och skriv till en textfil 2/2
Textfilen
Vi börjar med att bestämma vad textfilen skall innehålla. Ett klassiskt exempel är en lista som innehåller information om exempelvis namn på kompisar. Vi koncentrerar oss i detta fall endast på 1 informationskälla, nämligen namnet. Om du börjar med att starta exempelvis notepad och skriver in ett 10-tal namn, sparar denna filen som kompis.txt i katalogen c:\exempel, så har vi i alla fall börjat. Som exempel visar även jag en lista innehållande 10 namn.Adam
Anna
Annika
Bengt
Bertil
Claes
David
Elin
Elsa
Fredrik
I denna textfil finns nu 10 namn angivna. När du sparat denna filen som kompis.txt i c:\exempel skall vi börja med att skriva själva programmet för att kunna lägga till, söka i och läsa dessa poster.
Verktyg
Nu startar du Visual Basic och öppnar ett nytt projekt. Om du klickar en gång på din tomma form, så ser du till höger alla egenskaper som du kan sätta på formen. En egenskap (property) som du kan sätta är caption. Skriv i det fältet "Kompisregister". Du kan även döpa denna form i .name egenskapen till frmMain. Detta används bara internt i ditt program. Börja med att ta tag i en commandknapp och dra den till din form. Placera den på valfritt ställe och sätt dess storlek genom att dra i nedre högra hörnet för att få en bra storlek. För denna knappen sätter vi två egenskaper (som visas om du klickar på knappen en gång), nämligen .caption och .name. För egenskapen .name sätter du cmdAdd och i caption anger du "Addera kompis". Nu tar du ytterligare en commandknapp och placerar under, denna sätter du .name till cmdFind, och caption till "Sök kompis". Sedan tar vi ytterligare en knapp och den kallar vi i .name, cmdList och caption till "Lista kompisar". Nu tar vi slutligen en knapp som vi döper till cmdEnd och dess caption till "Avsluta". Nu har vi förberett vårt program så att du kan göra addering, sökning och listning på dina kompisar.
Tips!, om du i caption skriver exempelvis &Addera kompis, kommer A bli understruket på knappen. På detta sätt skapar du möjlighet för att snabbt navigera sig utan att använda musen, utan i detta fall trycka ALT+A för att klicka på knappen.
En form för addering
Nu när vi förberett detta, så är det dags att skapa en ny form som vi skall använda för addering. Eftersom du i detta exempel endast kommer använda dig av en text, behövs det inte så mycket kod runt detta. Vi börjar med de kontroller som skall finnas och då skapar vi först en ny form. Under Project-menyn finner du add form, klicka på denna så får du en ny form. Börja med att sätt dess .name till frmAdd och dess caption till "Addera kompis". På den nya formen lägger vi till en textbox och du placerar den på formen. Sätt dess .name egenskap till txtKompis, sätt även egenskapen .text till "" (dvs blankt). Därefter adderar vi två commandknappar, en för Spara och en för ångra. Spara-knappen kallar du cmdSave och ångraknappen till cmdCancel.frmAdd
Nu tycker jag det är dags för den första koden. Vi börjar med att dubbelklicka på cmdCancel knappen. Här skall vi sköta hanteringen då man inte vill spara informationen. I och med att du dubbelklicka på denna knapp, får du fram en ruta där du skall skriva in programkod. Så här som bilden visar ser det ut ungefär när du börjar. Nedan ser du vad de två knapparna gör om du trycker på dessa- läs de kommentarer som finns i koden.
Private Sub cmdCancel_Click()
' avslutar denna formen och återgår
' till huvudformen
Unload Me
End Sub
Private Sub cmdSave_Click()
' dimentionerar en variabel som vi skall använda
' för det filnummer som är ledigt att använda.
Dim FreeNr As Long
FileNr = FreeFile
' öppnar kompis.txt filen som append (lägg till)
Open "c:\exempel\kompis.txt" For Append As FileNr
' skriv innehållet från textbox kontrollen till
' slutet av filen.
Print #FileNr, text1.Text
' stäng filen igen
Close FileNr
' avslutar denna formen och återgår
' till huvudformen
Unload Me
End Sub
Nu har vi lagt till programkod för att kunna addera ytterligare kompisar i vår textfil. Givetvis kan och bör man lägga till massor av kontroller för detta såsom att man bör skrivit något i textboxen för att kunna spara informationen. En annan kontroll bör vara att filen verkligen existerar så att du inte får ett fel om du aldrig skapat detta. Eftersom jag tog upp detta, är det väl lika bra att jag skriver lite om hur det skulle kunna se ut. Vi tar samma kod, men lägger till lite extra för just detta. Den röda texten är tillägg från tidigare exempel (med lite mer felkontroller).
' en variabel som vi använder för att hålla reda på om
' du verkligen inte vill spara information som skrivits.
Private SaveNewData As Boolean
Private Sub cmdCancel_Click()
Dim Answer
' om du skrivit någon text i textboxen, så borde detta sparas. Denna kontroll
' ser om du angett något och varnar i så fall.
If Len(txtKompis.Text) > 0 Then
Answer = MsgBox("Du har inte sparat det du skrivit in, vill du verkligen avbryta?", vbCritical + vbYesNo, "Spara ny kompis")
If Answer <> vbYes Then
' Sätter en parameter som håller reda på om vi var här, men
' inte ville spara informationen
SaveNewData = False
Exit Sub
' om du inte vill avsluta, hoppar vi bara
' ut från denna sub-rutinen så fortsätter
' programmet.
End If
End If
' avslutar denna formen och återgår
' till huvudformen
Unload Me
End Sub
Private Sub cmdSave_Click()
' dimentionerar en variabel som vi skall använda
' för det filnummer som är ledigt att använda.
Dim FreeNr As Long
Dim Answer
FileNr = FreeFile
' finns inget angivet i textboxen, är det ingen idé att spara
' en tom blank post, vi återvänder så användaren skall kunna
' ange någonting att spara.
If Len(txtKompis.Text) = 0 Then
MsgBox "Du har inte skrivit in något!", vbCritical + vbYesNo, "Inget att spara"
Exit Sub
End If
' finns filen tidigare
If Len(Dir("c:\exempel\kompis.txt")) = 0 Then
' filen finns inte, vi frågar om den skall skapas.
Answer = MsgBox("Filen finns inte, vill du skapa den?", vbCritical + vbYesNo, "Skapa kompis-fil")
If Answer <> vbYes Then
' du vill inte spara, finns någon information då?
' vi kallar på cmdCancel, för det finns redan en
' kontroll där om det finns något i textboxen.
cmdCancel_Click
' vi frågade om vi skulle spara, men du klickade
' på nej, så vi stänger formen
If SaveNewData = False Then
Unload Me
Exit Sub
End If
End If
End If
' öppnar kompis.txt filen som append (lägg till)
Open "c:\exempel\kompis.txt" For Append As FileNr
' skriv innehållet från textbox kontrollen till
' slutet av filen.
Print #FileNr, txtKompis.Text
' stäng filen igen
Close FileNr
' avslutar denna formen och återgår
' till huvudformen
Unload Me
End Sub
0 Kommentarer