* contrib/gtwvg/tests/_wvtcls.prg
* contrib/gtwvg/tests/demowvg.prg
* contrib/hbct/doc/en/dattime3.txt
* contrib/hbct/tests/datetime.prg
* contrib/hbnf/doc/en/acctadj.txt
* contrib/hbnf/doc/en/acctmnth.txt
* contrib/hbnf/doc/en/acctqtr.txt
* contrib/hbnf/doc/en/acctweek.txt
* contrib/hbnf/doc/en/acctyear.txt
* contrib/hbnf/doc/en/dayofyr.txt
* contrib/hbnf/doc/en/daytobow.txt
* contrib/hbnf/doc/en/elapsed.txt
* contrib/hbnf/doc/en/firstday.txt
* contrib/hbnf/doc/en/lastday.txt
* contrib/hbnf/doc/en/madd.txt
* contrib/hbnf/doc/en/month.txt
* contrib/hbnf/doc/en/qtr.txt
* contrib/hbnf/doc/en/savearr.txt
* contrib/hbnf/doc/en/setdate.txt
* contrib/hbnf/doc/en/wda.txt
* contrib/hbnf/doc/en/week.txt
* contrib/hbnf/doc/en/workdays.txt
* contrib/hbnf/doc/en/woy.txt
* contrib/hbnf/doc/en/year.txt
* contrib/hbnf/tests/elapsed.prg
* contrib/hbnf/tests/savearr.prg
* contrib/hbnf/tests/setdate.prg
* contrib/hbnf/tests/wda.prg
* contrib/hbnf/tests/workdays.prg
* contrib/hbnf/tests/woy.prg
* contrib/hbpgsql/tests/dbf2pg.prg
* contrib/hbsqlit3/hdbcsqlt.prg
* contrib/rddsql/tests/arrayrdd.prg
* doc/en/datetime.txt
* doc/en/math.txt
* doc/en/string.txt
* doc/hdr_tpl.txt
* extras/gtwvw/tests/ebtest7.prg
* extras/gtwvw/tests/wvwtest9.prg
* extras/guestbk/inifiles.prg
* extras/hbvpdf/core.prg
* extras/httpsrv/cgifunc.prg
* tests/array16.prg
* tests/bldtest/bldtest.c
* tests/byref.prg
* tests/dates.prg
* tests/gfx.prg
* tests/inifiles.prg
* tests/initexit.prg
* tests/longdev.prg
* tests/parseini.ini
* tests/parseini.prg
* tests/usrrdd/exarr.prg
* website/samples/byref.prg.html
* website/samples/initexit.prg.html
* website/samples/longdev.prg.html
* website/samples/mousetst.prg.html
* website/samples/parseini.ini.html
* website/samples/parseini.prg.html
* various cleanups
201 lines
4.5 KiB
HTML
201 lines
4.5 KiB
HTML
<!DOCTYPE html>
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/xregexp/2.0.0/xregexp-min.js"></script>
|
|
<script type="text/javascript" src="http://www.xregexp.com/addons/backcompat.js"></script>
|
|
<script type="text/javascript" src="/js/shCore.js"></script>
|
|
<script type="text/javascript" src="/js/shBrushHarbour.js"></script>
|
|
<link href="/css/shCore.css" rel="stylesheet" type="text/css" />
|
|
<link href="/css/shThemeDefault.css" rel="stylesheet" type="text/css" />
|
|
<script type="text/javascript">SyntaxHighlighter.all()</script>
|
|
</head>
|
|
<body>
|
|
|
|
<script type="syntaxhighlighter" class="brush: harbour"><![CDATA[
|
|
|
|
/**
|
|
* Test for Ini file reading/writing
|
|
*
|
|
* Giancarlo Niccolai
|
|
*/
|
|
|
|
PROCEDURE Main( cName )
|
|
|
|
LOCAL hIni, aSect, cIni
|
|
LOCAL cSection
|
|
LOCAL cKey
|
|
LOCAL nRow := 1
|
|
|
|
SET COLOR TO w+/b
|
|
CLS
|
|
@ nRow++, 20 SAY "H A R B O U R - .ini file parser test"
|
|
@ nRow++, 5 SAY "Call from command line using a .ini filename as the only parameter"
|
|
nRow++
|
|
|
|
IF Empty( cName )
|
|
cName := "parseini.ini"
|
|
@ nRow++, 5 SAY "Using default parseini.ini file"
|
|
ENDIF
|
|
|
|
hIni := hb_iniRead( cName )
|
|
|
|
@ nRow, 0
|
|
|
|
? "Content of " + cName
|
|
|
|
IF Empty( hIni )
|
|
? "Not a valid .ini file!"
|
|
ELSE
|
|
FOR EACH cSection IN hIni:Keys
|
|
?
|
|
? "Section [" + cSection + "]"
|
|
aSect := hIni[ cSection ]
|
|
|
|
FOR EACH cKey IN aSect:Keys
|
|
? cKey + " = " + aSect[ cKey ]
|
|
NEXT
|
|
NEXT
|
|
ENDIF
|
|
|
|
?
|
|
? "Adding section 'Added', with key NEW = new"
|
|
hIni[ "Added" ] := { => }
|
|
hIni[ "Added" ][ "NEW" ] := "new"
|
|
|
|
? "Writing output to parseini_out.ini"
|
|
IF hb_iniWrite( "parseini_out.ini", hIni, "#Generated file; don't touch", "#End of file" )
|
|
? "File written"
|
|
ELSE
|
|
? "Can't write file"
|
|
ENDIF
|
|
?
|
|
? "Press any key to next text."
|
|
Inkey( 0 )
|
|
|
|
nRow := 3
|
|
@ nRow, 0 CLEAR
|
|
?
|
|
? "REPEATING TESTS WITHOUT AUTOMATIC MAIN SECTION"
|
|
?
|
|
|
|
hIni := hb_iniRead( cName,; /* default case */
|
|
,; /* default key indicators */
|
|
, .F. )
|
|
|
|
? "Content of " + cName
|
|
|
|
IF Empty( hIni )
|
|
? "Not a valid .ini file!"
|
|
ELSE
|
|
FOR EACH cSection IN hIni:Keys
|
|
/* Now (without automatic main), toplevel options may be in the root hash */
|
|
aSect := hIni[ cSection ]
|
|
|
|
IF HB_ISHASH( aSect )
|
|
/* It's a section */
|
|
?
|
|
? "Section [" + cSection + "]"
|
|
|
|
FOR EACH cKey IN aSect:Keys
|
|
? cKey + " = " + aSect[ cKey ]
|
|
NEXT
|
|
ELSE
|
|
/* It's a toplevel option */
|
|
? "TOPLEVEL option:", cSection + " = " + aSect
|
|
ENDIF
|
|
NEXT
|
|
ENDIF
|
|
|
|
?
|
|
? "Adding section 'Added', with key NEW = new"
|
|
hIni[ "Added" ] := { => }
|
|
hIni[ "Added" ][ "NEW" ] := "new"
|
|
|
|
? "Writing output to parseini_out1.ini"
|
|
IF hb_iniWrite( "parseini_out1.ini", hIni,;
|
|
"#Generated file without main auto section; don't touch", "#End of file",;
|
|
.F. )
|
|
? "File written"
|
|
ELSE
|
|
? "Can't write file"
|
|
ENDIF
|
|
?
|
|
? "Press any key to next text."
|
|
Inkey( 0 )
|
|
|
|
nRow := 3
|
|
@ nRow, 0 CLEAR
|
|
?
|
|
? "WRITING INI TO A STRING"
|
|
?
|
|
|
|
cIni := hb_iniWriteStr( hIni )
|
|
|
|
? "Content of hIni : "
|
|
?
|
|
? cIni
|
|
?
|
|
? "Press any key to next text."
|
|
Inkey( 0 )
|
|
|
|
nRow := 3
|
|
@ nRow, 0 CLEAR
|
|
?
|
|
? "READING INI FILE FROM A STRING"
|
|
?
|
|
|
|
hIni := hb_iniReadStr( cIni,; /*default case*/
|
|
,; /*Default key indicators */
|
|
, .F. )
|
|
|
|
? "Content: "
|
|
|
|
IF Empty( hIni )
|
|
? "Not a valid .ini file!"
|
|
ELSE
|
|
FOR EACH cSection IN hIni:Keys
|
|
/* Now (without automatic main), toplevel options may be in the root hash */
|
|
aSect := hIni[ cSection ]
|
|
|
|
IF HB_ISHASH( aSect )
|
|
/* It's a section */
|
|
?
|
|
? "Section [" + cSection + "]"
|
|
|
|
FOR EACH cKey IN aSect:Keys
|
|
? cKey + " = " + aSect[ cKey ]
|
|
NEXT
|
|
ELSE
|
|
/* It's a toplevel option */
|
|
? "TOPLEVEL option:", cSection + " = " + aSect
|
|
ENDIF
|
|
NEXT
|
|
ENDIF
|
|
|
|
?
|
|
? "Press any key to next text."
|
|
Inkey( 0 )
|
|
|
|
nRow := 3
|
|
@ nRow, 0 CLEAR
|
|
?
|
|
? "WRITING INI FILE TO A STRING "
|
|
?
|
|
|
|
cIni := hb_iniWriteStr( hb_iniRead( cName ) )
|
|
|
|
? "Content of " + cName
|
|
?
|
|
? cIni
|
|
?
|
|
? "Press any key to next text."
|
|
Inkey( 0 )
|
|
|
|
RETURN
|
|
|
|
]]></script>
|
|
|
|
</body>
|
|
</html>
|