Jag har en fil där inledningen är av typen recInitMaster och resten är av typen recMaster. Hej Problemet är att om jag fösrt kör "Get #1, , myrecord2" så hamnar allt fel sedan när jag kör "Get #1, , MyRecord" Hej Ja, men hur får jag bort myrecord2 delen sedan när jag ska loopa igenom MyRecord.  Gör det enkelt för dig istället. Håller med Andreas, men om du skall ha lösningen på det första problemet ändå skall du helt enkelt öppna filen före du läser. Niklas, jag testade det men fick det inte riktigt att fungera. Jag löste problemet på ett annat sätt istället. Get och Type
    
    
<br><br>
Type recInitMaster<br>
Type recMaster
<br><br>
Går det på något smidigt sätt att loopa igenom alla poster enligt den principen nedan? Det som förstör nu är ju den inledande texten recInitMaster. <br>
Alltså jag vill att inledning (recInitMaster) först ska läsas och att sedan resten (recMaster) loopas igenom
<code>
Dim MyRecord As recMaster
Open "FilNamn" For Random As #1 Len = Len(MyRecord)
     Do While Not EOF(1)
         Get #1, , MyRecord
     Loop
Close #1
</code>Sv: Get och Type
    
    
Förstår problemmet men ändå inte.
Varför har du två Typ Deklarationer ? I så fall får du köra två loopar.
kom igen låt oss kolla Typ deklarationen.
mvh
SvenSv: Get och Type
    
    
<code>
Type recMaster
     Id As String * 5
     Reserved  As String * 2
     Rec_Len  As String * 1
     Num_Fields   As String * 1
     Reserved1  As String * 2
     File_Name  As String * 18
     Reserved2  As String * 1
     Flag   As String * 1
     Init_Date  As Single
     Fin_Date  As Single
     Time  As String * 1
     Intr_Time  As String * 1
     Reserved3 As String * 2
     Symbol As String * 15
     Reserved4 As String * 1
     Autorun_Flag  As String * 1
     Reserved5 As String * 1
End Type
Type recInitMaster
    Trec_Num As String * 1
    Hrec_Used As String * 1
    Zeros As String * 40
End Type
Dim MyRecord As recMaster, myrecord2 as recInitMaster
Get #1, , myrecord2
Open "FilNamn" For Random As #1 Len = Len(MyRecord) 
    Do While Not EOF(1) 
        Get #1, , MyRecord 
    Loop 
Close #1 
</code>Sv: Get och Type
    
    
Givetvis .Du skall aldrig använda  As #1 som filnummer. Så här skall
du skriva enl denna princip.
Dim FileNum As Long
      FileNum = FreeFile
Open "FilNamn" For Random As #FileNum Len = Len(MyRecord) 
   Do While Not EOF(FileNum) 
       Get #FileNum, , MyRecord 
   Loop 
Close #FileNum 
myrecord2 och myrecord kan inte ha samma filnummer
Obs du måste se till att FileNum uppdateras just innan du börjar loopen
mvh
SvenSv: Get och Type
    
    
myrecord2 har ju bara en post och ska enbart läsas en gång.
<br><br>
För om jag först läser "Get #1, , myrecord2" och sedan "Get #1, , MyRecord" så hamnar ju MyRecord på fel plats.<br>
Båda ligger ju i samma fil. Sv: Get och Type
    
    
<code>
Private Sub cmdSave_Click()
Dim FileNo As Long
Dim FileName As String
Dim MyMaster As recInitMaster
Dim MyRecords() As recMaster
Dim Size As Long
'Skapar testdata
Dim Index As Long
    ReDim MyRecords(10)
    For Index = 0 To 10
        With MyRecords(Index)
            .Id = Index
        End With
    Next
'Testdata skapat
    
    FileNo = FreeFile()
    FileName = "c:\Test.tmp"
    
    Open FileName For Binary Access Write Shared As #FileNo
    Put #FileNo, , MyMaster
    Size = UBound(MyRecords)
    Put #FileNo, , Size
    Put #FileNo, , MyRecords
    Close #FileNo
End Sub
Private Sub cmdLoad_Click()
Dim FileNo As Long
Dim FileName As String
Dim MyMaster As recInitMaster
Dim MyRecords() As recMaster
Dim Size As Long
    FileNo = FreeFile()
    FileName = "c:\Test.tmp"
    Open FileName For Binary Access Read Shared As #FileNo
    Get #FileNo, , MyMaster
    Get #FileNo, , Size
    ReDim MyRecords(Size)
    Get #FileNo, , MyRecords
    Close #FileNo
End Sub
</code>Sv: Get och Type
    
    
open ...
Get #1, detförsta
do
    Get #1, resten
loop until eof(1)
/Niklas JanssonSv: Get och Type
    
    
Tacka för alla svar!