Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Spara och hämta i Visual Basic 6.0

Postades av 2006-11-25 17:29:53 - Jan Ljungkvist, i forum visual basic - allmänt, Tråden har 10 Kommentarer och lästs av 780 personer

Hej !

Jag undrar om det är någon som vet hur man sparar till fil, och hämtar från fil när det gäller en egen definierad datatyp? Det är frågan om Medlem (1).namn, Medlem (1).idnummer o.s.v. Är det någon som har en bra kodsnutt?

Mvh
/Jan


Svara

Sv: Spara och hämta i Visual Basic 6.0

Postades av 2006-11-26 00:43:54 - Andreas Hillqvist

Här är et tiltet exempel:

Private Type Record    ' Define user-defined type.
    ID As Integer
    Name As String * 20
End Type



Private Sub Form_Load()
Dim FileNumber As Long
Dim MyRecord As Record
Const pathname = "text.dat"

    FileNumber = FreeFile()
    
    Open pathname For Binary Access Write Lock Write As #FileNumber Len = Len(MyRecord)
    MyRecord.ID = 1001
    MyRecord.Name = "Adam"
    Put #FileNumber, , MyRecord
    
    MyRecord.ID = 1002
    MyRecord.Name = "Beatric"
    Put #FileNumber, , MyRecord
    
    MyRecord.ID = 1003
    MyRecord.Name = "Carl"
    Put #FileNumber, , MyRecord
    
    Close #FileNumber
    
    Open pathname For Binary Access Read Lock Write As #FileNumber Len = Len(MyRecord)

    Do Until EOF(FileNumber)
        Get #FileNumber, , MyRecord
        Debug.Print MyRecord.ID, MyRecord.Name
    Loop
    Close #FileNumber
End Sub


Svara

Sv:Spara och hämta i Visual Basic 6.0

Postades av 2006-11-26 13:31:32 - Jan Ljungkvist

Hej Andreas!

Kul att du hade någon ide om hur det ska vara, jag testade det, men jag vet inte om jag fattat det när jag gjorde som följande. Datatypen är PersonData och fältet heter Person.
Variabler required får jag som svar när jag kör koden. Vad är det som jag missat?

Mvh /Jan



Private Sub CmdSpara_Click()

'Datatypen är PersonData (är deklarerad i en .bas fil).
'Public Person(1 To 500) As PersonData (är deklarerad i en .bas fil).

Dim FileNumber As Long
Dim inta As Integer
inta = 1
Const pathname = "text.dat"

FileNumber = FreeFile()

Open pathname For Binary Access Write Lock Write As #FileNumber Len = Len(Person)


For inta = 1 To intIndex

Person.Efternamn = Person(inta).Efternamn
Person.Fornamn = Person(inta).Fornamn
Person.Adress = Person(inta).Adress
Person.Postnummer = Person(inta).Postnummer
Person.Ort = Person(inta).Ort
Person.Telefon = Person(inta).Telefon
Person.Email = Person(inta).Email
Person.Yrke = Person(inta).Yrke
Person.Kommentar = Person(inta).Kommentar

Put #FileNumber, , Person

Close #FileNumber

Next inta


End Sub


Svara

Sv: Spara och hämta i Visual Basic 6.0

Postades av 2006-11-26 17:24:37 - Andreas Hillqvist

Ändra Private till Public om du placerat din datatyp i en modul.

Koden kan du förenkla till:

Private Sub CmdSpara_Click()
Dim inta As Long
Dim FileNumber As Long
Const pathname = "text.dat"
    FileNumber = FreeFile()
    
    Open pathname For Binary Access Write Lock Write As #FileNumber Len = Len(Person(1))
    For inta = 1 To intIndex
        Put #FileNumber, , Person(inta)
    Next 
    Close #FileNumber
    MsgBox "Posterna är nu sparade!", vbInfromation

End Sub

Eller:
Private Sub CmdSpara_Click()
Dim inta As Long
Dim FileNumber As Long
Dim P as PersonData 
Const pathname = "text.dat"
    FileNumber = FreeFile()
    
    Open pathname For Binary Access Write Lock Write As #FileNumber Len = Len(P)
    For inta = 1 To intIndex
        P = Person(inta)
        Put #FileNumber, , P
    Next 
    Close #FileNumber
    MsgBox "Posterna är nu sparade!", vbInfromation
End Sub


Du bör använda yrtest få globala variabler.

Låt bara Person var en global variabel. Om intIndex talar om hur många personer det finns bör du döpa om den till PersonCount eller PersonAntal för intIndex är inte så talande.


Svara

Sv:Spara och hämta i Visual Basic 6.0

Postades av 2006-11-26 22:15:10 - Jan Ljungkvist

Hej Andreas!

Tack.
Det funkade jättebra med att spara till fil i det exemplet som du visar.
Hur kan det se ut när man hämtar från fil, det var också lite knepigt, har du något exempel på det också?
Ja visst, globala ska man undvika där har du helt rätt!

Mvh/Jan


Svara

Sv: Spara och hämta i Visual Basic 6.0

Postades av 2006-11-26 23:38:35 - Andreas Hillqvist

Se mitt första inlägg. Andra open satsen är för att läsa, Do-loopen läser alla poster från filen.


Svara

Sv:Spara och hämta i Visual Basic 6.0

Postades av 2006-11-27 19:56:19 - Jan Ljungkvist

Hej Andreas,

Tack för kommentaren.
Nu är det nära, men tyvärr så funkar inte det riktigt... trots din fina beskrivning, ser inte vad som felar.
Kan du se vad som jag gör fel?

/Mvh Jan


'******* Detta är koden *****

Dim inta As Long
'Dim FileNumber As Long
'Const pathname = "text.dat"
inta = 1
'FileNumber = FreeFile()

Open "text.dat" For Binary Access Read Lock Write As #2 Len = Len(Person(1))


Do Until EOF(2)
Get #2, , Person(inta)


Debug.Print Person(inta).Efternamn, Person(inta).Fornamn, Person(inta).Adress, Person(inta).Postnummer, Person(inta).Ort, Person(inta).Telefon, Person(inta).Email, Person(inta).Yrke, Person(inta).Kommentar


inta = inta + 1
Loop

Close #2


Svara

Sv: Spara och hämta i Visual Basic 6.0

Postades av 2006-11-27 22:10:42 - Andreas Hillqvist

Vad får du för fel/problem?


Svara

Sv:Spara och hämta i Visual Basic 6.0

Postades av 2006-11-27 22:33:23 - Jan Ljungkvist

Hej!

Jo, det sker aldrig någon inläsning från fil.

/Mvh Jan


Svara

Sv: Spara och hämta i Visual Basic 6.0

Postades av 2006-12-10 20:11:52 - Jan Ljungkvist

Tack Andreas & Henrik!

Jag tror att det funkar nu, men det var lite trixit ett tag..
Tack.

Mvh
/Jan


Svara

Sv:Spara och hämta i Visual Basic 6.0

Postades av 2006-12-11 21:25:29 - Thomas Roman

Sätt tråden som löst, inte stängd.


Thomas


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
460
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies