diff options
Diffstat (limited to 'testautomation/global/system/includes/inivalue.inc')
-rw-r--r-- | testautomation/global/system/includes/inivalue.inc | 236 |
1 files changed, 236 insertions, 0 deletions
diff --git a/testautomation/global/system/includes/inivalue.inc b/testautomation/global/system/includes/inivalue.inc new file mode 100644 index 000000000000..2cc13be957cb --- /dev/null +++ b/testautomation/global/system/includes/inivalue.inc @@ -0,0 +1,236 @@ +'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 + |