Jump to content
Sign in to follow this  
GenericName

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

Recommended Posts

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.

Share this post


Link to post

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.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...