25. november 2000 - 20:00Der er
7 kommentarer og 1 løsning
Gemme og læse i filer
Hej
Jeg har en samsat type:
Type KanoType KanoNr As Integer TeltPlads As String SlutTid As String Status As Boolean End Type
Public Kanoer(1 To AntalKanoer) As KanoType
Mit spørgsmål er, hvordan lægger jeg oplysninger ned i en fil samt hvordan læser jeg fra en fil, jeg har prøvet følgende, men det virker ikke:
Læse:
Do While EOF(1) = False i = i + 1 Line Input #1, Kanoer(i).KanoNr Line Input #1, Kanoer(i).TeltPlads Line Input #1, Kanoer(i).SlutTid Line Input #1, Kanoer(i).Status Loop Close #1
Skrive:
For i = 1 To 10 Print #1, Kanoer(i).KanoNr Print #1, Kanoer(i).TeltPlads Print #1, Kanoer(i).SlutTid Print #1, Kanoer(i).Status Next i Close #1
Jeg får en fejl som hedder: Type mismatch
Når jeg sletter selve de linier som læser i filen virker selve skrive rutinen, men eller melder den også fejl her.
This example uses the Put statement to write data to a file. Five records of the user-defined type Record are written to the file.
Type Record \' Define user-defined type. ID As Integer Name As String * 20 End Type
Dim MyRecord As Record, RecordNumber \' Declare variables. \' Open file for random access. Open \"TESTFILE\" For Random As #1 Len = Len(MyRecord) For RecordNumber = 1 To 5 \' Loop 5 times. MyRecord.ID = RecordNumber \' Define ID. MyRecord.Name = \"My Name\" & RecordNumber \' Create a string. Put #1, RecordNumber, MyRecord \' Write record to file. Next RecordNumber Close #1 \' Close file.
This example uses the Get statement to read data from a file into a variable. This example assumes that TESTFILE is a file containing five records of the user-defined type Record.
Type Record \' Define user-defined type. ID As Integer Name As String * 20 End Type
Dim MyRecord As Record, Position \' Declare variables. \' Open sample file for random access. Open \"TESTFILE\" For Random As #1 Len = Len(MyRecord) \' Read the sample file using the Get statement. Position = 3 \' Define record number. Get #1, Position, MyRecord \' Read third record. Close #1 \' Close file.
wFileNo = freefile open \"c:\\fil.txt\" for output as wfileno for i = 0 to ubound(kanoer) print wfileno, kanoer.TeltPlads print wfileno, kanoer.SlutTid print wfileno, kanoer.Status next i
close #wfileno
Læse til fil: wFileNo = freefile open \"c:\\fil.txt\" for input as wfileno i = 0 do until eof wfileno i = i + 1 line input wfileno, wKanoer(i).teltplads line input wfileno, wkanoer(i).sluttid ........
Vedr. Læse til fil, går det godt indtil jeg kommer til line input wfileno, wkanoer(i).status her siger den type mismatch
wFileNo = freefile open \"c:\\fil.txt\" for input as wfileno i = 0 do until eof wfileno i = i + 1 line input wfileno, wKanoer(i).teltplads line input wfileno, wkanoer(i).sluttid ........
Hej mansoor Hmm du kan godt bruge det du har .. det skal bare rettet en smule ;o)
Oki du har typen.
Type KanoType KanoNr As Integer TeltPlads As String SlutTid As String Status As Boolean End Type
Så gør du bare sådan her. Din Type må ike være Public eller Global
Dim Kanoer(1 To AntalKanoer) As KanoType
\'sådan her henter du alle sammen. open \"filnavn.dat\" for binary as 1 get#1,, Kanoner() close#1
\'Sådan her gemmer du
open \"filnavn.dat\" for binary as 1 put#1,, Kanoner() close#1
Hilsen M.I.X
Synes godt om
Ny brugerNybegynder
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.