Filer og mapper
- Konvertering
- Strenger
- Dato og tid
- Filer og mapper
- Brukerdialoger
- Annet
Ofte må programmet innom mapper og filer. For programmering mot dokument
ordnes dette med indirekte hjelp av Apache OpenOffice sitt API.
Ellers har man i Basic egne funksjoner for direkte tilgang mot filsystemet.
Angivelse av filbane
Parameter "m" angir en bane. Det kan være absolutt (starter med roten, som i "C:\Window" eller "/usr/home" i UNIX) eller relativ (i forhold til den mappe Apache OpenOffice "står i", d.v.s. har som "current working directory"). Videre kan "m" inneholde ? for å angi at hvilket som helst tegn tillates i denne posisjon. Hvis "m" avsluttes med "*" betyr det at hva som helst tillates som avslutning.
Traversering av mappetre
Mapper er organisert i et tre. Med Dir(m,x) starter en traversering av det treet som starter i mappe m, som i eksempelet under:
Sub visFiler Dim nesteFil As String Dim alleFiler As String alleFiler = "" nesteFil = Dir("C:\", 0) While nesteFil <> "" alleFiler = alleFiler & Chr(13) & nesteFil ' legg inn linjeskift nesteFil = Dir() Wend MsgBox alleFiler End Sub
Dir() uten argument gir neste fil (eller mappe). Dir (m) gir første fil i Apache OpenOffice sin gjeldende mappe. Dir (m,0) ber om kun filer i m, Dir (m,16) ber om kun mapper i m. Vil en liste kun mapper kan en f.eks.:
Sub visMapper Dim nesteMappe As String Dim alleMapper As String alleMapper = "" nesteMappe = Dir("C:\", 16) While nesteMappe <> "" alleMapper = alleMapper & Chr(13) & nesteMappe nesteMappe = Dir() Wend MsgBox AllDirs End Sub
Operasjon mot mapper
- MkDir(m) oppretter m og eventuelle mellom-mapper som ikke fins
- RmDir(m) fjerner mappe "m" og tilliggende mapper og filer renskes bort
- FileCopy(fra, til) kopierer en fil
- Name OldName As NewName vil gi nytt navn
- Kill(m) fjerner en fil (ikke mappe)
- FileExists(f) er boolsk, True hvis f finnes
- getAttr(f) gir et Integer som avslører data om filen (1=readonly, 16=er mappe)
- setAttr(f,a) endrer f sitt attributt til a
- FileDateTime(f) gir sist filen ble endret
- FileLen(f) gir filens lengde (antall byte)
Operasjon mot fil
Skal en lese eller skrive en fil fins funksjonene:
- FreeFile: gir ledig "handle" (et Integer)
- Open f for Output as #h: Åpne fil med navn f for skriving (h er handle)
- Print #h, s: Skriver s til handle h
- Line Input #h, s: Legger neste linje fra fil med handle h, i s
- eof (h): boolsk, True hvis h er ferdig lest (nådd slutten)
- Close #h: Stenger h
Et eksempel er:
Dim FileNo As Integer Dim CurrentLine As String Dim Filename As String Filename = "c:\klokeord.txt" FileNo = FreeFile Open Filename For Output As #FileNo Print #FileNo, "Rosenborg er best" Print #FileNo, "Molde er best" Close #FileNo
Et eksempel på lesing av en fil:
Dim filNummer As Integer Dim linje As String Dim filNavn As String Dim innhold as String filnavn = "c:\visdomsord.txt" filNummer = Freefile Open filnavn For Input As filNummer Do While not eof( filNummer ) Line Input #filNummer, linje If linje <>"" then innhold = innhold & linje & Chr(13) end if Loop Close #filNummer Msgbox ( innhold )
Annet
Vil en ha økt kompatibilitet med VBA anvendes "Compatibility mode" som under:
CompatibilityMode( True ) 'set mode CompatibilityMode( False) 'clear mode Dim bMode as Boolean bMode = CompatibilityMode()
Content on this page is licensed under the Public Documentation License (PDL). |