Avatar billede bgjensen Nybegynder
08. februar 2004 - 23:30 Der er 8 kommentarer og
1 løsning

Function Spm

Jeg bruger denne kode til at indlæse en tekst fil til et tekst felt. Er der en som ikke kan lave det om til en function så man ikke skal skrive hele koden ved alle de steder den skal bruges?
Et lille eks:

Private Sub Command1_Click()

Dim intFree As Integer
Dim strOut As String

  intFree = FreeFile
  Open "C:\Visual Basic\Reinstall\Lyd.txt" For Binary Access Read As #intFree
    strOut = Space$(LOF(intFree))
    Get #intFree, 1, strOut
  Close #intFree

Text1.Text = strOut
End Sub

Skal gerne laves om til en function, og så skal den linie der henviser til filen skal kunne ændres så den er tilpasset hver kanp!
Avatar billede thesurfer Nybegynder
08. februar 2004 - 23:39 #1
Function ReadFile(fname)

Dim intFree As Integer
Dim strOut As String

  intFree = FreeFile
  Open fname For Binary Access Read As #intFree
    strOut = Space$(LOF(intFree))
    Get #intFree, 1, strOut
  Close #intFree

Text1.Text = strOut
End Sub

Den kaldes så med: ReadFile("c:\mappe\fil")
Avatar billede thesurfer Nybegynder
08. februar 2004 - 23:39 #2
Doh!..
"End Sub" skulle være "End Function".
Avatar billede bgjensen Nybegynder
08. februar 2004 - 23:58 #3
ok det virker fint, og lige et hurtigt spm kan man godt have flere ting i en functions()  eks:
Function ReadFile(fname, fname1, fname2)?
Avatar billede thesurfer Nybegynder
09. februar 2004 - 00:07 #4
Yep :)
Jeg tror faktisk ikke at der er nogen grænse, for hvor mange parametere man sende..
Avatar billede bgjensen Nybegynder
09. februar 2004 - 00:09 #5
ok, så er det på plads, så er det af vejen.
Thx for hjælpen.
Avatar billede bgjensen Nybegynder
09. februar 2004 - 00:10 #6
Smid lige et svar :o)
Avatar billede thesurfer Nybegynder
09. februar 2004 - 00:10 #7
Jeg smider et svar :)
Det skal lige siges at "fname" var bare noget jeg fandt på.. du kan bruge hvad som helst.. bare ikke reserverede ord..
Avatar billede bgjensen Nybegynder
09. februar 2004 - 09:13 #8
thesurfer -> du må lige vente lidt med dine point
http://www.eksperten.dk/spm/462831
Avatar billede martin_moth Mester
09. februar 2004 - 10:46 #9
Da din function ikke returnerer noget som helst, ville jeg





1: lave det som en Sub:

Sub ReadFile(fname as String)
  'Bla bla, kode fra ovenstående
End Sub

Den kaldes så med: ReadFile "c:\mappe\fil"  'Kald uden paranteser





2: Eller lade den returnere noget

Function ReadFile(fname as String) as String
  Dim intFree As Integer
  Dim strOut As String
  intFree = FreeFile
  Open fname For Binary Access Read As #intFree
    strOut = Space$(LOF(intFree))
    Get #intFree, 1, strOut
  Close #intFree
  ReadFile = strOut
End Functionj

Den kaldes så med:
Text1.text = ReadFile("c:\mappe\fil")
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester