office-gobmx/testautomation/global/system/includes/inivalue.inc
2010-10-09 18:56:58 +02:00

236 lines
7.7 KiB
PHP

'encoding UTF-8 Do not remove or change this line!
'**************************************************************************
' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
'
' Copyright 2000, 2010 Oracle and/or its affiliates.
'
' OpenOffice.org - a multi-platform office productivity suite
'
' This file is part of OpenOffice.org.
'
' OpenOffice.org is free software: you can redistribute it and/or modify
' it under the terms of the GNU Lesser General Public License version 3
' only, as published by the Free Software Foundation.
'
' OpenOffice.org is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY; without even the implied warranty of
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
' GNU Lesser General Public License version 3 for more details
' (a copy is included in the LICENSE file that accompanied this code).
'
' You should have received a copy of the GNU Lesser General Public License
' version 3 along with OpenOffice.org. If not, see
' <http://www.openoffice.org/license.html>
' for a copy of the LGPLv3 License.
'
'/************************************************************************
'*
'* owner : thorsten.bosbach@oracle.com
'*
'* short description : routines to handle ini-files ( read/write items )
'*
'*****************************************************************
'*
' #1 GetIniValue ' get a value of an entry
' #1 GetIniValue2 ' subroutine for GetIniValue
' #1 SetIniValue ' set a value of an entry
' #1 SetIniValue2 ' subroutine for SetIniValue
' #1 ChangeExt ' change the extension of an file
' #1 AnhaengenAnDatei ' add a string into a file
'*
'\****************************************************************
function GetIniValue ( Datei$, Gruppe$, Variable$ ) as String
'/// wrapper for GetIniValue2 ///'
'///+ reads a value from an ini-file ///'
'///+ INPUT : name of ini-file; name of group (the one in braces []); the item (left of '=') ///'
'///+ OUTPUT: value (the right of the '=') ///'
if Dir(Datei$) = "" then
Warnlog "Error in GetIniValue(...):" + Datei$ + " not found"
exit function
end if
GetIniValue = GetIniValue2( Datei$, Gruppe$, Variable$ ) ' Arbeiten
end function
function SetIniValue( Datei$, Gruppe$, Variable$, Value$ ) as String
'/// wrapper for SetIniValue2 ///'
'///+ writes a value to an ini-file ///'
'///+ INPUT : name of ini-file; name of group (the one in braces []); the item (left of '='); value (the right of the '=') ///'
'///+ OUTPUT: - ///'
Dim FileNum as Integer
if Dir(Datei$) = "" then
WarnLog "Error in SetIniValue(...):" + Datei$ + " not found. File will be created now!"
FileNum = FreeFile
Open Datei$ For Output As #FileNum ' make empty file
Print #FileNum, ""
Close #FileNum
end if
SetIniValue = SetIniValue2( Datei$, Gruppe$, Variable$, Value$ )
end function
function GetIniValue2( Datei$, Gruppe$, Variable$ ) as String
'/// see the wrapper for it : GetIniValue ///'
Dim FileNum% : Dim GruppeOK% : Dim Pos% : Dim IniZeile$ : Dim IniZeile2$
FileNum% = FreeFile
GruppeOK%=FALSE
GetIniValue2 = ""
Open Datei$ For Input As #FileNum%
do until EOF(#FileNum%) = True
Line input #FileNum%, IniZeile$
IniZeile$ = TRIM(IniZeile$)
iniZeile2$ = UCASE( IniZeile$ ) ' compare case insensitive
if GruppeOK% = FALSE then ' still no group
if IniZeile2$= "[" + UCASE( Gruppe$ ) + "]" then 'Is it the wanted group?
GruppeOK% = TRUE
end if
else
If Left(IniZeile2$, 1) = "[" then 'sadly new group - goodby
Exit do
else
Pos% = Instr( IniZeile2$, "=" ) 'is the item valid?
if Pos%>0 then ' '=' not found
if Left( IniZeile2$ , Pos%-1 ) = UCASE( Variable$ ) then 'compare leftvalue
GetIniValue2 = Trim(Mid$( IniZeile$ , Pos%+ 1 )) 'return part right of '=' : with initial case
exit do
end if
end if
end if
end if
loop
Close #FileNum%
wait 1000
end function
sub SetIniValue2( Datei$, Gruppe$, Variable$, Value$ ) as String
'/// see the wrapper for it : SetIniValue ///'
Dim DateiBak$ : Dim D$ : Dim IniZeile$ : Dim IniZeile2$
Dim FileBak% : Dim GruppeOK% : Dim Gefunden% : Dim FileNum% : Dim Pos%
' rename
DateiBak$ = ChangeExt( Datei$, "BAK" )
GruppeOK% = FALSE
Gefunden% = FALSE
if Dir(DateiBak$)<>"" then
kill DateiBak$
end if
if Dir( Datei$ )<>"" then
D$ = CurDir
name Datei$ as DateiBak$
else
FileNum% = FreeFile
Open Datei$ For Output As #FileNum%
Print #FileNum%, "[" + Trim(Gruppe$) + "]"
Print #FileNum%, Variable$ + "=" + Trim(Value$)
Close #FileNum% ' finished here
Exit sub
endif
FileNum% = FreeFile
Open Datei$ For Output As #FileNum%
FileBak% = FreeFile
Open DateiBak$ For Input As #FileBak%
do until EOF(#FileBak%) = True
Line input #FileBak%, IniZeile$
IniZeile$ = TRIM(IniZeile$)
if IniZeile$ <> "" then
IniZeile2$ = UCASE( IniZeile$ )
if Left(IniZeile$, 1) = "[" then
if GruppeOK% = TRUE then 'groupchange
if Gefunden%=FALSE then
Print #FileNum%, Variable$ + "=" + Trim(Value$)
Gefunden% = TRUE
end if
GruppeOK% = FALSE
end if
Print #FileNum%, "" 'empty line
Print #FileNum%, IniZeile$
if IniZeile2$= "[" + UCASE( Gruppe$ ) + "]" then
GruppeOK% = TRUE
end if
else
if GruppeOK% = TRUE then ' found group
Pos% = Instr( IniZeile$, "=" )
if Left( IniZeile2$ , Pos%-1 ) = UCASE( Variable$ ) then
IniZeile$ = Left( IniZeile$ , Pos% ) +Trim( Value$ )' after the '='
Gefunden% = TRUE
end if
end if
Print #FileNum%, IniZeile$
end if
end if
loop
if Gefunden% = FALSE then
' set new group and value
if GruppeOK%=FALSE then
Print #FileNum%, ""
Print #FileNum%, "[" + Trim(Gruppe$) + "]"
end if
Print #FileNum%, Variable$ + "=" + Value$
end if
Close #FileNum%
Close #FileBak%
wait 1000
end sub
sub AnhaengenAnDatei ( Datei as String, Texte as String )
'/// append a string at the end of the file ///'
'///+ INPUT : filename; string///'
'///+ OUTPUT: - ///'
Dim FileNum%
FileNum% = FreeFile
Open Datei for Append as #FileNum%
Print #FileNum%, Texte
Close #FileNum%
end sub
function ChangeExt( Datei$, Ext$ )as String
'/// change the extension of a file ///'
'///+ INPUT : filename; extension ///'
'///+ OUTPUT: - ///'
Dim i%
i% = InStr( Right(Datei$, 4 ) , "." )
if Ext$<>"" then
if i%=0 then
ChangeExt = Datei$ +"."+Ext$
else
ChangeExt = Left( Datei$, Len(Datei$)-4+i% ) + Ext$
end if
elseif i%<>0 then
ChangeExt = Left( Datei$, Len(Datei$)-5+i% )
end if
end function