Avatar billede hobn00b Nybegynder
06. september 2005 - 22:34 Der er 5 kommentarer og
1 løsning

At gemme og hente data fra fil

Overskriften siger det meste.
jeg skal faktisk bare bruge en måde hvorpå jeg kan gemme tekst, eller variabler fra indput boxe i en fil. nogle der kan hjælpe?
Avatar billede martin_moth Mester
07. september 2005 - 08:24 #1
Prøv af afstem antal points til sværhedsgrad...

Og prøv evt. søgefunktionen

Fra søgefunktionen findes bl.a. http://www.eksperten.dk/spm/252223, hvorfra jeg copy-paster følgende:

---------


....VB læser en fil linie for linie.

Fx. hvis der i filen står:

1435
Peter

Kan du læse på følgende måde:

  Filnummer = FreeFile
  Open "C:\Fil.txt" For Input As #Filnummer
  Line Input #Filnummer, MinString1 'Putter 1. linie ind i MinString1
  Line Input #Filnummer, MinString2 'Putter 2. linie ind i MinString2
  Close #Filnummer

Og skrive på følgende måde
  Filnummer = FreeFile
  Open "C:\Fil.txt" For Output As #Filnummer
  Print #Filnummer, Minstring1 'Skriver indholdet af MinString1 til linie 1
  Print #Filnummer, MinString2 'Skriver indholdet af MinString1 til linie 2
  Close #Filnummer
Avatar billede supertekst Ekspert
07. september 2005 - 08:57 #2
Hvis konteksten er et Word dokument med en formular med 2 tekstbokse og 2 knapper kunne kode se således ud:

Const workFil = "c:\workfil.txt"
Private Sub CommandButton1_Click()                  'gem
    Open workFil For Output As #1
    Write #1, TextBox1.Value
    Write #1, TextBox2.Value
    Close #1
End Sub
Private Sub CommandButton2_Click()                  'hent
Dim data, count
    count = 1
    Open workFil For Input As #1
    While Not EOF(1)
        Input #1, data
        Select Case count
            Case 1: TextBox1.Value = data
            Case 2: TextBox2.Value = data
        End Select
        count = count + 1
    Wend
    Close #1
End Sub

Hvis der er et større antal kontroller - kunne det være en fordel også at gemme navnet på selve kontrollen for derved at kunne indlæse data via en dynamisk procedure.
Avatar billede martin_moth Mester
07. september 2005 - 12:11 #3
supertekst: Hvad har ovenstående med word at gøre?
PS: Er der en forskel på dit svar og mit?
Avatar billede hobn00b Nybegynder
07. september 2005 - 14:35 #4
hmm fandt nu en lidt anden løsning selv, men hvordan skriver man flere end en linie?
    Dim filesys, filetxt, getname, path, readfile
        filesys = CreateObject("Scripting.FileSystemObject")
        filetxt = filesys.TextFile("c:\somefile.txt", True)
        path = filesys.GetAbsolutePathName("c:\somefile.txt")
        getname = filesys.GetFileName(path)
        filetxt.writeline(DateTime.Now + ": " + TextBox1.Text)
        filetxt.Close()

Det den tekst jeg bruger nu, men den overskriver bare første linie??
Avatar billede martin_moth Mester
07. september 2005 - 15:17 #5
Du kan jo smide en return i enden af hver linie (chr(13) eller VBLf)
Avatar billede martin_moth Mester
12. september 2005 - 13:03 #6
... Eller bruge et af svarene overfor...

Flere spørgsmål?
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