Gå til innhold

................................................


Anbefalte innlegg

Videoannonse
Annonse

For å lagre tekst:

Open "C:\testfil.txt" For Output As #1
Print #1, "hallo"
Print #1, "Hei til deg også!"
Close #1

 

Og ja, select case er dårlig hvis du vil lage en ordbok. Skal du bruke select case ender du opp med å sitte å skrive kode for hvert eneste ord.

 

Det du bør gjøre er å lage en database (f eks access) med det norske ordet i en rad og engelske i en annen. Da kan man enkelt oversette.

Lenke til kommentar

Dette er kanskje litt over nivået ditt, men her kommer i alle fall hvordan jeg ville løst det (utenom Access):

 

Option Explicit

' En type er ikke mer enn en egendefinert datatype. Denne datatypen kan lagre to strenger pr. variabel.
' Vi skal utnytte dette ved å skape en array (samling av mange variabler av samme typer) som vi kan
' endre, åpne og lagre.

Private Type Oppslag
   Norsk As String ' Det norske ordet
   Engelsk As String ' Det engelske ordet
End Type

' Array-en som skal inneholde all data
Dim aOrdbok() As Oppslag

' Denne variabelen holder styr på hvor mange elementer "aOrdbok" inneholder
Dim Tell As Long

' Denne funksjonen åpner databasen. sFile er stien filen skal åpners fra, og aData er variabelen som fylles med informasjonen
Public Sub LoadDatabase(sFile As String, aData() As Oppslag)

' Om en feil skulle inntreffe hopp over linje
On Error Resume Next

Dim lFree As Long

' Først sjekker vi om filen eksisterer
If Dir(sFile) = "" Then
   ' Skulle den ikke eksistere, går vi simpelthen ut av metoden
   Exit Sub
End If

lFree = FreeFile

Open sFile For Binary Lock Read As lFree
   Get #lFree, , Tell
   
   ' Allokerer arrayen
   ReDim aData(Tell)
   
   Get #lFree, , aData
Close lFree

End Sub

' Denne funksjonen lagrer databasen. sFile er stien filen skal lagres til, og aData er variabelen som skal lagres
Public Sub SaveDatabase(sFile As String, aData() As Oppslag)

' Om en feil skulle inntreffe hopp over linje
On Error Resume Next

Dim lFree As Long

lFree = FreeFile

Open sFile For Binary As lFree
   Put #lFree, , Tell
   Put #lFree, , aData
Close lFree

End Sub

Private Sub Form_Load()

' Åpner databasen i samme mappe som programmet
LoadDatabase App.Path & "\Data.dat", aOrdbok

End Sub

Private Sub Form_Unload(Cancel As Integer)

' Lagrer databasen i samme mappe som programmet
SaveDatabase App.Path & "\Data.dat", aOrdbok

End Sub

 

For å lagt til et ord ville jeg brukt følgende kode:

 

Tell = Tell + 1
ReDim Preserve aOrdbok(Tell)

aOrdbok(Tell).Norsk = "Øy"
aOrdbok(Tell).Engelsk = "Island"

 

Å legge alle ordene inn i en list-box ville være meget enkelt:

 

Dim Cnt As Long

For Cnt = LBound(aOrdbok) To UBound(aOrdbok)
    List1.AddItem aOrdBok(Cnt).Norsk & " = " & aOrdbok(Cnt).Engelsk
Next

 

Og å søke etter et ord kunne blitt gjort på denne måten:

 

Dim Cnt As Long

For Cnt = LBound(aOrdbok) To UBound(aOrdbok)
    If LCase(aOrdBok(Cnt).Norsk) = "øy" Then
         MsgBox "Ordet øy skrives '" & aOrdbok(Cnt).Engelsk & "' på Engelsk"
    End If
Next

 

Men du kan fint bruke Select Case også. Det er i alle fall bedre enn en hau med IF og ELSEIF.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...