Scix Skrevet 7. mai 2004 Del Skrevet 7. mai 2004 korleis skal det sjå ut inne i tekst dokumentet for at eg skal klare å finne fram informasjon som ligger der? Lenke til kommentar
aadnk Skrevet 7. mai 2004 Del Skrevet 7. mai 2004 En enkel database kan lages ved å bruke INI-fil API-kallene. Et eksempel kan være dette: Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long Private Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long Private Sub Form_Load() 'Skriv nummer 55 til denne tekstfilen: WritePrivateProfileString "Sample", "Sample", "55", App.Path & "\sample.ini" 'Så, hent tilbake dette nummeret: MsgBox GetPrivateProfileInt("Sample", "Sample", 0, App.Path & "\sample.ini") End Sub Teksfilen blir da seende slik ut: [Sample] Sample=55 For å lagre og hente tekst kan du bruke denne koden: Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long Private Sub Form_Load() WritePrivateProfileString App.Title, "KeyName", "This is the value", "c:\test.ini" MsgBox GetINIString("c:\test.ini", App.Title, "KeyName", "") Kill "c:\test.ini" End Sub Public Function GetINIString(strFile As String, strAppName As String, strKey As String, strDefault As String) Dim Buff As String, NC As Long Buff = String(255, 0) NC = GetPrivateProfileString(strAppName, strKey, strDefault, Ret, 255, strFile) If NC <> 0 Then Buff = Left$(Buff, NC) End If GetINIString = Buff End Function Men selvsakt finnes det andre måter å lagre på. Du kan også bruke Propeties CLASS'en for å lagre mye mer enn tekst og nummer. Se her: Private Sub Form_Load() Dim Prop As New PropertyBag Prop.WriteProperty "Test", "Hallo!" Prop.WriteProperty "Nummer", 100 Prop.WriteProperty "Bilde", picImg.Picture ' Ta denne vekk hvis du ikke vil teste bildelagringsfunksjonen SaveProperty "C:\Test.dat", Prop ' Sletter all data (for å bevise at alt blir i realteten åpnet fra en fil) Set Prop = Nothing OpenPropery "C:\Test.dat", Prop MsgBox Prop.ReadProperty("Test") MsgBox Prop.ReadProperty("Nummer") Set picImg2.Picture = Prop.ReadProperty("Bilde") ' Ta vekk hvis du ikke ønsker å teste dette ' Slett filen Kill "C:\Test.dat" End Sub Public Sub SaveProperty(File As String, Prop As PropertyBag) Dim Free As Long Free = FreeFile Open File For Binary As Free Put Free, , Prop.Contents Close Free End Sub Public Sub OpenPropery(File As String, Prop As PropertyBag) Dim Free As Long, BuffData As Variant If Dir(File) = "" Then Err.Raise 53 ' File not found Exit Sub End If Free = FreeFile Open File For Binary As Free Get Free, , BuffData Close Free If Prop Is Nothing Then Set Prop = New PropertyBag End If Prop.Contents = BuffData End Sub Men skal du bare lagre enkel informasjon kan du likegjerne bare bruke en Type og lagre data med den: Private Type TestData Navn As String Alder As Long End Type Private Sub Form_Load() Dim Free As Long, Test As TestData Free = FreeFile Test.Alder = InputBox("Hvor gammel er du?") Test.Navn = InputBox("Hva heter du?") Open "C:\Test.dat" For Binary As Free Put Free, , Test Close Free ' Fjerner alt (dette er ikke nødvendig. Er her bare for å vise at alt faktisk blir lastet inn) Test.Alder = 0 Test.Navn = "" Free = FreeFile Open "C:\Test.dat" For Binary As Free Get #1, , Test Close Free MsgBox "Du heter " & Test.Navn & " og er " & Test.Alder ' Sletter filen (naturligvis ikke hvis data skal lagres lenge) Kill "C:\Test.dat" End Sub Håper dette hjalp. Lenke til kommentar
Scix Skrevet 8. mai 2004 Forfatter Del Skrevet 8. mai 2004 hjalp mykje dette. takk men er det nokre sider som forklarer kva alle desse "Declare Function" tingene betyr. er noob i vb enda, så det hadde vert morro å vist kva eg egentlig skreiv på Lenke til kommentar
aadnk Skrevet 8. mai 2004 Del Skrevet 8. mai 2004 (endret) Disse Declare Function syntaksene i koden kalles for API-calls (Application Program Interface) og er en måte for programmer å kommunisere med operativsystemet. Hvis du vil se flere eksempler på disse (sammen med en mer omfattene forklaring) trykk her. Endret 8. mai 2004 av aadnk Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå