Avatar billede jette1 Nybegynder
27. april 2002 - 11:56 Der er 11 kommentarer og
1 løsning

Brug af ini filer

Jeg har fundet følgende eksempelkode, som åbner og læser fra en INI fil. Jeg kan godt gennemskue at bruge det, men vil gerne vide følgende:

I erklæringen af variablerne lpKeyName og Temp står der hendholdsvis "As String * 20" og "As String * 30" ... hvad betyder det - altså at gange med 20 og 30??

I forbindelse med artikler om ini filer støder jeg ofte på ordet "buffer". Hvad betyder det?

***************************************************

Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnSring As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lplFileName As String) As Long

'Again, make sure it's all on one line.

'Now to "GET" information from an INI use the following code:

Dim FileName As String, lpAppName As String, lpKeyName As String * 20
Dim lpDefault As String, Temp As String * 30, X As Long

FileName = "MY_INI.INI" 'INI's File Name
lpAppName = "START-UP" 'Section of INI File

lpKeyName = "FILE1" ' Attribute name
lpDefault = "unknown" ' Default value if not present
X = GetPrivateProfileString(lpAppName, lpKeyName, lpDefault, Temp, Len(Temp), FileName)
LastFileName1 = Temp

Avatar billede terry Ekspert
27. april 2002 - 12:02 #1
a string with length 30
Avatar billede terry Ekspert
27. april 2002 - 12:04 #2
Try this
Dim s as string * 9
s = "1234567890"

Msgbox s
Avatar billede terry Ekspert
27. april 2002 - 12:06 #3
buffer, where is that used?

jette1 have you thought about using the system registry instead of INI files?
Avatar billede sjh Nybegynder
27. april 2002 - 12:06 #4
lpKeyName As String * 20 betyder at lpKeyName = length 20
at der kan være 20 tegn
Avatar billede jette1 Nybegynder
27. april 2002 - 16:04 #5
Hvis jeg erklærer en streng som...

dim my_str as string * 5

og skriver...

my_str = "jordbærtærte"

så vil my_string indeholde "jordb". Er det korrekt antaget?

Det er ikke kun i forbindelse med ini filer at jeg ser ordet buffer ... det er sådan generelt. Men f.eks. skriver de på msdn.microsoft.com:

buffer = String(145, Chr(" "))
  ret = GetPrivateProfileString(section, _
  entry, default, buffer, Len(buffer)-1, filename)
  retstring = Left(buffer, Instr(buffer, Chr(0))-1))

Er det bare et udtryk for en variabel?
Avatar billede jette1 Nybegynder
27. april 2002 - 16:06 #6
Her er et andet buffer-eksempel:
"In the previous article we learned the recv Winsock API function which is used to read incoming data from the Winsock buffer"
Avatar billede jette1 Nybegynder
27. april 2002 - 16:09 #7
Hvad angår system registry -> Der står altid i artikler om emnet, at man skal passe på med at rode i brugerens registry... derfor laver jeg bare en ini fil der ligger under app.path for at være på den sikre side...
Avatar billede ocp Nybegynder
27. april 2002 - 17:08 #8
Bufferen er det sted hvor den kaldte funktion "lægger" de data der skal returneres. For at vide hvor stort et område der er afsat beder funktionen om at få en angivelse af dig. Det vil sige at:

buffer = String(145, Chr(" "))

afsætter plads til 145 tegn ved at "servere" 145 mellemrum. Det svarer iøvrigt til String * 145.
Avatar billede kaffe Nybegynder
27. april 2002 - 17:08 #9
Jette1> Hvis du bruger savesetting og getsetting gemmer indstillingerne under din egen applikation i registry.
Avatar billede terry Ekspert
27. april 2002 - 17:10 #10
så vil my_string indeholde "jordb". Er det korrekt antaget?
Correct!

buffer = String(145, Chr(" "))
Buffer here is just a variable. I assume that it is in Winsock too.
According to the Oxford Advanced Learner's Dictionary a buffer is a device for lessoning a blow or collision.

I would describe it as as work variable!
Avatar billede jette1 Nybegynder
27. april 2002 - 17:22 #11
ocp -> Jeg takker :-)
kaffe -> Okay... det vil jeg se om jeg kan finde ud af ...
terry -> Tak for hjælpen... jeg sender lige nogle point i din retning :-)
Avatar billede terry Ekspert
27. april 2002 - 17:27 #12
selv tak :o)
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