Code archives/File Utilities/Ini File Updater
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| One command, Ini_File, this allows you to add to your ini file, append ini file values and get values back. Usage: To get a value out of an ini file: value= ini_file(Filename,Command)So if your ini file has a line Particles=200Then you would do something like particles=ini_file("setup.ini","Particles")This would then put the value to the varible particles.Okay, now updated the value: ini_file("setup.ini","Particles",50)This will update the particles entry on the ini file toParticles=50On top of this if you do ini_file("setup.ini","Particles",50,trueIt will do the same but date and time stamp the change.Further to this if you try to edit a value that is not present in the ini ini_file("setup.ini","Fred",20)This will add the entry ofFred=20If your value you want to amend or add is a string simply add a $ at the beginning of the value ini_file("setup.ini","Fred","$Wilma")This will then put " marks around the value, this is really useful if you're adding more of a message ie something with spaces in itini_file ("setup.ini","Gameovermes","$Game Over, You're dead and stuff")I hope this all makes sense, give me a shout if you find it handy. Cheers, Rob. | |||||
;ini file updater
; 2003 Mental Illusion
; http://www.mentalillusion.co.uk
; rob@mentalillusion.co.uk
; Usage:
; value of command = ini_file(Filename,Command)
;
; or
;
; ini_file(Filename,Command,New Value,[Date Stamp])
Function ini_file$(file$,cmd$,setting$="Null",date_stamp=False)
cmd=Lower(cmd)
found=False
filein = ReadFile(file$)
If setting<>"Null"
fileout= WriteFile("temp.ini")
If Left(setting,1)="$" Then setting=Chr(34)+Right(setting,Len(setting)-1)+Chr(34)
If date_stamp Then setting=setting+" ; Updated "+CurrentDate()+" "+CurrentTime()
EndIf
return_value$="NULL"
While Not Eof(filein)
temp$=ReadLine(filein)
If temp<>"" And Left(temp,1)<>";"
command$=Lower(Left$(temp,Instr(temp,"=")-1)) ;extract command
value$=Mid(temp,Instr(temp,"=")+1,(Instr(temp,";")-1)-(Instr(temp,"=")+1)) ;extract value
If Left(value,1)=Chr(34)
value=Mid(value,2,Instr(value,Chr(34),2)-2) ;extract a string if it is one
Else
If Instr(value," ")>0 Then value=Left(value,Instr(value," ")-1) ;trim spaces off value
If Instr(value,Chr(9))>0 Then value=Left(value,Instr(value,Chr(9))-1) ;trim tabs off value
EndIf
If command=cmd
found=True
If setting="Null"
return_value=value
Else
WriteLine(fileout,command+"="+setting)
EndIf
Else
If setting<>"Null" Then WriteLine(fileout,temp)
EndIf
Else
If setting<>"Null" Then WriteLine(fileout,temp)
EndIf
Wend
CloseFile (filein)
If setting="Null"
Return return_value
Else
If found=False Then WriteLine(fileout,cmd+"="+setting)
CloseFile (fileout)
DeleteFile file
CopyFile "temp.ini",file
DeleteFile "temp.ini"
EndIf
End Function |
Comments
None.
Code Archives Forum