summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Lima <rafael.palma.lima@gmail.com>2021-02-17 23:56:07 +0100
committerAlain Romedenne <alain.romedenne@libreoffice.org>2021-02-22 18:12:27 +0100
commitc2fa9223ea62e33237a98bdcca5eaab2bbc5bb41 (patch)
treee97176f3c3ff960e59535b50cc5c2b553d91023b
parent9b39373c0559094e6b8b47cd740a7d5ddeb6a107 (diff)
Create SF TextStream Help page
Other minor changes: - sf_filesystem: remove blank spaces before colons; x-ref with sf_textstream - sf_calc: fix extra ")" at end of line; silence two strings for translation - lib_ScriptForge: changes the layout of the table of contents; silence a string for translation; Change-Id: I669e70ccd8c6b9462b5bd203bfb671c23dd8bc4f Reviewed-on: https://gerrit.libreoffice.org/c/help/+/111046 Tested-by: Jenkins Reviewed-by: Alain Romedenne <alain.romedenne@libreoffice.org>
-rw-r--r--AllLangHelp_sbasic.mk1
-rw-r--r--source/text/sbasic/shared/03/lib_ScriptForge.xhp126
-rw-r--r--source/text/sbasic/shared/03/sf_calc.xhp6
-rw-r--r--source/text/sbasic/shared/03/sf_filesystem.xhp88
-rw-r--r--source/text/sbasic/shared/03/sf_textstream.xhp337
5 files changed, 469 insertions, 89 deletions
diff --git a/AllLangHelp_sbasic.mk b/AllLangHelp_sbasic.mk
index 53af112a0c..cc0b7f3837 100644
--- a/AllLangHelp_sbasic.mk
+++ b/AllLangHelp_sbasic.mk
@@ -88,6 +88,7 @@ $(eval $(call gb_AllLangHelp_add_helpfiles,sbasic,\
helpcontent2/source/text/sbasic/shared/03/sf_session \
helpcontent2/source/text/sbasic/shared/03/sf_services \
helpcontent2/source/text/sbasic/shared/03/sf_string \
+ helpcontent2/source/text/sbasic/shared/03/sf_textstream \
helpcontent2/source/text/sbasic/shared/03/sf_timer \
helpcontent2/source/text/sbasic/shared/03/sf_ui \
helpcontent2/source/text/sbasic/shared/03/lib_schedule \
diff --git a/source/text/sbasic/shared/03/lib_ScriptForge.xhp b/source/text/sbasic/shared/03/lib_ScriptForge.xhp
index 7ef2387b3e..82e11d5c67 100644
--- a/source/text/sbasic/shared/03/lib_ScriptForge.xhp
+++ b/source/text/sbasic/shared/03/lib_ScriptForge.xhp
@@ -22,7 +22,7 @@
<section id="howtoget">
<embed href="text/sbasic/shared/00000003.xhp#basiclibhowtoget"/>
</section>
- <note id="par_id901528999850603"><embedvar href="text/sbasic/shared/00000003.xhp#basiclibrarynote" markup="keep"/><br/>
+ <note id="par_id901528999850603" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#basiclibrarynote" markup="keep"/><br/>
<item type="literal">GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")</item></note>
<paragraph role="paragraph" id="par_id781606153472028">The described modules and classes are invoked from user scripts as "Services". A generic constructor of those services has been designed for that purpose:</paragraph>
<bascode>
@@ -30,46 +30,88 @@
</bascode>
<paragraph role="paragraph" id="par_id891606153700196">Services from external libraries can be registered with the <literal>RegisterScriptServices(...)</literal> method in order to extend the set of available services.</paragraph>
<note id="par_id851605659675843">The <literal>ScriptForge</literal> Basic library is available from %PRODUCTNAME 7.1 onwards.</note>
- <table id="tab_id501611613601554">
- <tablerow>
- <tablecell colspan="4"><paragraph id="par_id891611613601554" role="tablehead" xml-lang="en-US">Services provided by the ScriptForge library</paragraph></tablecell>
- </tablerow>
- <tablerow>
- <tablecell>
- <paragraph id="par_id891611613601556" role="tablecontent" localize="false">
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Array" name="Array service">Array</link><br/>
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Calc" name="Calc service">Calc</link><br/>
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Database" name="Database service">Database</link><br/>
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Dialog" name="Dialog service">Dialog</link><br/>
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#DialogControl" name="DialogControl service">DialogControl</link>
- </paragraph>
- </tablecell>
- <tablecell>
- <paragraph id="par_id541611613601554" role="tablecontent" localize="false">
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Dictionary" name="Dictionary service">Dictionary</link><br/>
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Document" name="Document service">Document</link><br/>
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Exception" name="Exception service">Exception</link><br/>
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#FileSystem" name="FileSystem service">FileSystem</link><br/><br/>
- </paragraph>
- </tablecell>
- <tablecell>
- <paragraph id="par_id107611613601554" role="tablecontent" localize="false">
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Localization" name="Localization service">Localization (L10N)</link><br/>
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Platform" name="Platform service">Platform</link><br/>
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Services" name="Services service">Services</link><br/>
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Session" name="Session service">Session</link><br/><br/>
- </paragraph>
- </tablecell>
- <tablecell>
- <paragraph id="par_id701611613106554" role="tablecontent" localize="false">
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#String" name="String service">String</link><br/>
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#TextStream" name="TextStream service">TextStream</link><br/>
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Timer" name="Timer service">Timer</link><br/>
- <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#UI" name="UI service">UI</link><br/><br/>
- </paragraph>
- </tablecell>
- </tablerow>
- </table>
+
+ <h2 id="hd_id851613836643580">Services provided by the ScriptForge library</h2>
+ <table id="tab_id311613838858931">
+ <tablerow>
+ <tablecell>
+ <paragraph id="par_id131613838858931" role="tablehead">Category</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id441613838858931" role="tablehead">Services</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id441613839128931" localize="false" role="tablehead"></paragraph>
+ </tablecell>
+ </tablerow>
+ <tablerow>
+ <tablecell>
+ <paragraph id="par_id851613847558931" role="tablecontent">LibreOffice Basic</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph role="tablecontent" localize="false" id="par_id581613836728425">
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Array" name="Array service">Array</link><br/>
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Dictionary" name="Dictionary service">Dictionary</link><br/>
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Exception" name="Exception service">Exception</link><br/>
+ </paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph role="tablecontent" localize="false" id="par_id731613840022120">
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#FileSystem" name="FileSystem service">FileSystem</link><br/>
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#String" name="String service">String</link><br/>
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#TextStream" name="TextStream service">TextStream</link>
+ </paragraph>
+ </tablecell>
+ </tablerow>
+ <tablerow>
+ <tablecell>
+ <paragraph id="par_id131613838825831" role="tablecontent">Document Content</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph role="paragraph" localize="false" id="par_id771613836902464">
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Calc" name="Calc service">Calc</link><br/>
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Database" name="Database service">Database</link><br/>
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Document" name="Document service">Document</link>
+ </paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id441543838858931" localize="false" role="tablecontent"></paragraph>
+ </tablecell>
+ </tablerow>
+ <tablerow>
+ <tablecell>
+ <paragraph id="par_id131613947858931" role="tablecontent">User Interface</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph role="tablecontent" localize="false" id="par_id481613837033056">
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Dialog" name="Dialog service">Dialog</link><br/>
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#DialogControl" name="DialogControl service">DialogControl</link><br/>
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#UI" name="UI service">UI</link>
+ </paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id441613885558931" localize="false" role="tablecontent"></paragraph>
+ </tablecell>
+ </tablerow>
+ <tablerow>
+ <tablecell>
+ <paragraph id="par_id131613866258931" role="tablecontent">Utilities</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph role="tablecontent" localize="false" id="par_id461613837133275">
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Localization" name="Localization service">Localization</link><br/>
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Platform" name="Platform service">Platform</link><br/>
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Services" name="Services service">Services</link><br/>
+ </paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id441613723858931" localize="false" role="tablecontent">
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Session" name="Session service">Session</link><br/>
+ <link href="text/sbasic/shared/03/lib_ScriptForge.xhp#Timer" name="Timer service">Timer</link><br/><br/>
+ </paragraph>
+ </tablecell>
+ </tablerow>
+ </table>
<section id="Array">
<embed href="text/sbasic/shared/03/sf_array.xhp#abstract"/>
@@ -114,7 +156,7 @@
<embed href="text/sbasic/shared/03/sf_string.xhp#abstract"/>
</section>
<section id="TextStream">
- <paragraph role="paragraph" id="par_id791606151259895" localize="false">TextStream class Service</paragraph>
+ <embed href="text/sbasic/shared/03/sf_textstream.xhp#abstract"/>
</section>
<section id="Timer">
<embed href="text/sbasic/shared/03/sf_timer.xhp#abstract"/>
diff --git a/source/text/sbasic/shared/03/sf_calc.xhp b/source/text/sbasic/shared/03/sf_calc.xhp
index 156ef6a8e6..a2b782bfb1 100644
--- a/source/text/sbasic/shared/03/sf_calc.xhp
+++ b/source/text/sbasic/shared/03/sf_calc.xhp
@@ -67,7 +67,7 @@
<tip id="par_id71611090922315">The use of the prefix "<literal>SFDocuments.</literal>" while calling the service is optional.</tip>
<h2 id="hd_id991591016893982" xml-lang="en-US">Definitions</h2>
- <paragraph role="paragraph" id="par_id511591016999246" xml-lang="en-US">Many methods require a "<emph>Sheet</emph>" or a "<emph>Range</emph>" as argument. Single cells are considered a special case of a <literal>Range</literal>).</paragraph>
+ <paragraph role="paragraph" id="par_id511591016999246" xml-lang="en-US">Many methods require a "<emph>Sheet</emph>" or a "<emph>Range</emph>" as argument. Single cells are considered a special case of a <literal>Range</literal>.</paragraph>
<paragraph role="paragraph" id="par_id511591019278671" xml-lang="en-US">Both may be expressed either as a string or as a reference (= object) depending on the situation:</paragraph>
<list type="unordered">
<listitem>
@@ -86,10 +86,10 @@
<paragraph role="bascode" localize="false" id="bas_id941591017325429">oDocB.CopyToRange(oDocA.Range("SheetX.D4:F8"), "D2:F6") 'CopyToRange(source, target)</paragraph>
</bascode>
- <h3 id="hd_id941591020321580" xml-lang="en-US">SheetName</h3>
+ <h3 id="hd_id941591020321580" localize="false" xml-lang="en-US">SheetName</h3>
<paragraph role="paragraph" id="par_id341591020333849" xml-lang="en-US">Either the sheet name as a <literal>string</literal> or an <literal>object</literal> produced by the <literal>.Sheet</literal> property.</paragraph>
<paragraph role="paragraph" id="par_id651591020343023" xml-lang="en-US">The shortcut "~" (tilde) represents the current sheet.</paragraph>
- <h3 id="hd_id101591020737697" xml-lang="en-US">RangeName</h3>
+ <h3 id="hd_id101591020737697" localize="false" xml-lang="en-US">RangeName</h3>
<paragraph role="paragraph" id="par_id291591020728110" xml-lang="en-US">Either a string designating a set of contiguous cells located in a sheet of the current instance or an <literal>object</literal> produced by the <literal>.Range</literal> property.</paragraph>
<paragraph role="paragraph" id="par_id691591020711395" xml-lang="en-US">The shortcut "~" (tilde) represents the current selection or the first range if multiple ranges are selected.</paragraph>
<paragraph role="paragraph" id="par_id701592230700986" xml-lang="en-US">The shortcut "*" represents all used cells.</paragraph>
diff --git a/source/text/sbasic/shared/03/sf_filesystem.xhp b/source/text/sbasic/shared/03/sf_filesystem.xhp
index 16bb454908..96402fa027 100644
--- a/source/text/sbasic/shared/03/sf_filesystem.xhp
+++ b/source/text/sbasic/shared/03/sf_filesystem.xhp
@@ -333,8 +333,8 @@
<paragraph role="bascode" localize="false" id="bas_id731583933076815">FSO.BuildPath(FolderName As String, Name As String) As String</paragraph>
</bascode>
<h3 id="hd_id321583933076658" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id90158393307695"><emph>FolderName</emph> : The path with which <literal>Name</literal> will be combined. The specified path does not need to be an existing folder.</paragraph>
- <paragraph role="paragraph" id="par_id891583933076975"><emph>Name</emph> : The name of the file to be appended to <literal>FolderName</literal>. This parameter uses the notation of the current operating system.</paragraph>
+ <paragraph role="paragraph" id="par_id90158393307695"><emph>FolderName</emph>: The path with which <literal>Name</literal> will be combined. The specified path does not need to be an existing folder.</paragraph>
+ <paragraph role="paragraph" id="par_id891583933076975"><emph>Name</emph>: The name of the file to be appended to <literal>FolderName</literal>. This parameter uses the notation of the current operating system.</paragraph>
<h3 id="hd_id26158393307687" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id571583933076688">Dim FSO : FSO = CreateScriptService("FileSystem")</paragraph>
@@ -357,8 +357,8 @@
<paragraph role="bascode" localize="false" id="bas_id401601118910956">FSO.CompareFiles(FileName1 As String, FileName2 As String, [CompareContents As Boolean]) As Boolean</paragraph>
</bascode>
<h3 id="hd_id641601118910334" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id481601118910755"><emph>FileName1, FileName2</emph> : The files to compare.</paragraph>
- <paragraph role="paragraph" id="par_id111601118910848" xml-lang="en-US"><emph>CompareContents</emph> : When <literal>True</literal>, the contents of the files are compared (default = <literal>False</literal>).</paragraph>
+ <paragraph role="paragraph" id="par_id481601118910755"><emph>FileName1, FileName2</emph>: The files to compare.</paragraph>
+ <paragraph role="paragraph" id="par_id111601118910848" xml-lang="en-US"><emph>CompareContents</emph>: When <literal>True</literal>, the contents of the files are compared (default = <literal>False</literal>).</paragraph>
<h3 id="hd_id421601118910835" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id231601118910666">FSO.FileNaming = "SYS"</paragraph>
@@ -382,8 +382,8 @@
<paragraph role="bascode" localize="false" id="bas_id201584541257726">FSO.CopyFile(Source As String, Destination As String, [Overwrite As Boolean]) As Boolean</paragraph>
</bascode>
<h3 id="hd_id291584541257237" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id1001584541257789"><emph>Source</emph> : It can be a <literal>FileName</literal> or a <literal>NamePattern</literal> indicating one or more files to be copied.</paragraph>
- <paragraph role="paragraph" id="par_id111584542310166" xml-lang="en-US"><emph>Destination</emph> : It can be either a <literal>FileName</literal> specifying where the single <literal>Source</literal> file is to be copied, or a <literal>FolderName</literal> into which the multiple files from <literal>Source</literal> are to be copied.</paragraph>
+ <paragraph role="paragraph" id="par_id1001584541257789"><emph>Source</emph>: It can be a <literal>FileName</literal> or a <literal>NamePattern</literal> indicating one or more files to be copied.</paragraph>
+ <paragraph role="paragraph" id="par_id111584542310166" xml-lang="en-US"><emph>Destination</emph>: It can be either a <literal>FileName</literal> specifying where the single <literal>Source</literal> file is to be copied, or a <literal>FolderName</literal> into which the multiple files from <literal>Source</literal> are to be copied.</paragraph>
<list type="unordered">
<listitem>
<paragraph role="paragraph" id="par_id491612999134752">If <literal>FolderName</literal> does not exist, it is created.</paragraph>
@@ -392,7 +392,7 @@
<paragraph role="paragraph" id="par_id591612999166788">Wildcard characters are not allowed in <literal>Destination</literal>.</paragraph>
</listitem>
</list>
- <paragraph role="paragraph" id="par_id251584542431558" xml-lang="en-US"><emph>Overwrite</emph> : If <literal>True</literal> (default), files may be overwritten. The method will fail if <literal>Destination</literal> is readonly, regardless of the value specified in <literal>Overwrite</literal>.</paragraph>
+ <paragraph role="paragraph" id="par_id251584542431558" xml-lang="en-US"><emph>Overwrite</emph>: If <literal>True</literal> (default), files may be overwritten. The method will fail if <literal>Destination</literal> is readonly, regardless of the value specified in <literal>Overwrite</literal>.</paragraph>
<h3 id="hd_id32158454125769" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id51584882315776">FSO.FileNaming = "SYS"</paragraph>
@@ -417,8 +417,8 @@
<paragraph role="bascode" localize="false" id="bas_id351584544734991">FSO.CopyFolder(Source As String, Destination As String, [Overwrite As Boolean]) As Boolean</paragraph>
</bascode>
<h3 id="hd_id81584544734599" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id851584544734202"><emph>Source</emph> : It can be a <literal>FolderName</literal> or a <literal>NamePattern</literal> indicating one or more folders to be copied.</paragraph>
- <paragraph role="paragraph" id="par_id321584544734273" xml-lang="en-US"><emph>Destination</emph> : Specifies the <literal>FolderName</literal> into which the single or multiple folders defined in <literal>Source</literal> are to be copied.</paragraph>
+ <paragraph role="paragraph" id="par_id851584544734202"><emph>Source</emph>: It can be a <literal>FolderName</literal> or a <literal>NamePattern</literal> indicating one or more folders to be copied.</paragraph>
+ <paragraph role="paragraph" id="par_id321584544734273" xml-lang="en-US"><emph>Destination</emph>: Specifies the <literal>FolderName</literal> into which the single or multiple folders defined in <literal>Source</literal> are to be copied.</paragraph>
<list type="unordered">
<listitem>
<paragraph role="paragraph" id="par_id491612999134762">If <literal>FolderName</literal> does not exist, it is created.</paragraph>
@@ -427,7 +427,7 @@
<paragraph role="paragraph" id="par_id591612999166740">Wildcard characters are not allowed in <literal>Destination</literal>.</paragraph>
</listitem>
</list>
- <paragraph role="paragraph" id="par_id251584542431525" xml-lang="en-US"><emph>Overwrite</emph> : If <literal>True</literal> (default), files may be overwritten. The method will fail if <literal>Destination</literal> is readonly, regardless of the value specified in <literal>Overwrite</literal>.</paragraph>
+ <paragraph role="paragraph" id="par_id251584542431525" xml-lang="en-US"><emph>Overwrite</emph>: If <literal>True</literal> (default), files may be overwritten. The method will fail if <literal>Destination</literal> is readonly, regardless of the value specified in <literal>Overwrite</literal>.</paragraph>
<h3 id="hd_id961584544734150" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id761584882338442">FSO.FileNaming = "SYS"</paragraph>
@@ -449,7 +449,7 @@
<paragraph role="bascode" localize="false" id="bas_id311584540675905">FSO.CreateFolder(FolderName As String) As Boolean</paragraph>
</bascode>
<h3 id="hd_id2158454067534" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id491584540675469"><emph>FolderName</emph> : A string representing the folder to be created. If the folder already exists, an exception will be raised.</paragraph>
+ <paragraph role="paragraph" id="par_id491584540675469"><emph>FolderName</emph>: A string representing the folder to be created. If the folder already exists, an exception will be raised.</paragraph>
<h3 id="hd_id16158454067562" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id441584540675381">FSO.FileNaming = "SYS"</paragraph>
@@ -470,9 +470,9 @@
<paragraph role="bascode" localize="false" id="bas_id29158532268984">FSO.CreateTextFile(FileName As String, [Overwrite As Boolean], [Encoding As String]) As Object</paragraph>
</bascode>
<h3 id="hd_id831585322689487" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id901585322689715"><emph>FileName</emph> : The name of the file to be created.</paragraph>
- <paragraph role="paragraph" id="par_id501585322689209" xml-lang="en-US"><emph>Overwrite</emph> : Boolean value that determines if <literal>FileName</literal> can be overwritten (default = <literal>True</literal>).</paragraph>
- <paragraph role="paragraph" id="par_id551585322689192" xml-lang="en-US"><emph>Encoding</emph> : The character set to be used. The default encoding is "UTF-8".</paragraph>
+ <paragraph role="paragraph" id="par_id901585322689715"><emph>FileName</emph>: The name of the file to be created.</paragraph>
+ <paragraph role="paragraph" id="par_id501585322689209" xml-lang="en-US"><emph>Overwrite</emph>: Boolean value that determines if <literal>FileName</literal> can be overwritten (default = <literal>True</literal>).</paragraph>
+ <paragraph role="paragraph" id="par_id551585322689192" xml-lang="en-US"><emph>Encoding</emph>: The character set to be used. The default encoding is "UTF-8".</paragraph>
<h3 id="hd_id601585322689988" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id291585322689770">Dim myFile As Object</paragraph>
@@ -497,7 +497,7 @@
<paragraph role="bascode" localize="false" id="bas_id991584882040438">FSO.DeleteFile(FileName As String) As Boolean</paragraph>
</bascode>
<h3 id="hd_id821584882040911" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id441584882040860"><emph>FileName</emph> : It can be a <literal>FileName</literal> or a <literal>NamePattern</literal> indicating one or more files to be deleted.</paragraph>
+ <paragraph role="paragraph" id="par_id441584882040860"><emph>FileName</emph>: It can be a <literal>FileName</literal> or a <literal>NamePattern</literal> indicating one or more files to be deleted.</paragraph>
<h3 id="hd_id591584882040902" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id321584882040274">FSO.FileNaming = "SYS"</paragraph>
@@ -521,7 +521,7 @@
<paragraph role="bascode" localize="false" id="bas_id851584882542512">FSO.DeleteFolder(FolderName As String) As Boolean</paragraph>
</bascode>
<h3 id="hd_id641584882542272" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id451584882542247"><emph>FolderName</emph> : It can be a <literal>FolderName</literal> or a <literal>NamePattern</literal> indicating one or more folders to be deleted.</paragraph>
+ <paragraph role="paragraph" id="par_id451584882542247"><emph>FolderName</emph>: It can be a <literal>FolderName</literal> or a <literal>NamePattern</literal> indicating one or more folders to be deleted.</paragraph>
<h3 id="hd_id391584882542428" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id751584882542695">FSO.FileNaming = "SYS"</paragraph>
@@ -543,7 +543,7 @@
<paragraph role="bascode" localize="false" id="bas_id921583764426903">FSO.FileExists(FileName As String) As Boolean</paragraph>
</bascode>
<h3 id="hd_id641583764426186" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id361583764426547"><emph>FileName</emph> : A string representing the file to be tested.</paragraph>
+ <paragraph role="paragraph" id="par_id361583764426547"><emph>FileName</emph>: A string representing the file to be tested.</paragraph>
<h3 id="hd_id691583764426580" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id621583764787755">FSO.FileNaming = "SYS"</paragraph>
@@ -567,8 +567,8 @@
<paragraph role="bascode" localize="false" id="bas_id641583944327587">FSO.Files(FolderName As String, [Filter As String]) As Variant</paragraph>
</bascode>
<h3 id="hd_id41158394454325" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id731583944543140"><emph>FolderName</emph> : A string representing a folder. The folder must exist. <literal>FolderName</literal> must not designate a file.</paragraph>
- <paragraph role="paragraph" id="par_id591585648450060" xml-lang="en-US"><emph>Filter</emph> : A string containing wildcards ("?" and "*") that will be applied to the resulting list of files (default = "").</paragraph>
+ <paragraph role="paragraph" id="par_id731583944543140"><emph>FolderName</emph>: A string representing a folder. The folder must exist. <literal>FolderName</literal> must not designate a file.</paragraph>
+ <paragraph role="paragraph" id="par_id591585648450060" xml-lang="en-US"><emph>Filter</emph>: A string containing wildcards ("?" and "*") that will be applied to the resulting list of files (default = "").</paragraph>
<h3 id="hdid751583944327746" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id381583944327923">Dim filesList As Variant, file As String</paragraph>
@@ -593,7 +593,7 @@
<paragraph role="bascode" localize="false" id="bas_id361583765642228">FSO.FolderExists(FolderName As String) As Boolean</paragraph>
</bascode>
<h3 id="hd_id301583765642930" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id1001583765642211"><emph>FolderName</emph> : A string representing the folder to be tested.</paragraph>
+ <paragraph role="paragraph" id="par_id1001583765642211"><emph>FolderName</emph>: A string representing the folder to be tested.</paragraph>
<h3 id="hd_id331583765642394" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id301583765642138">FSO.FolderNaming = "SYS"</paragraph>
@@ -616,7 +616,7 @@
<paragraph role="bascode" localize="false" id="bas_id22158411061854">FSO.GetBaseName(FileName As String) As String</paragraph>
</bascode>
<h3 id="hd_id451584110618983" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id691584110618308"><emph>FileName</emph> : A string representing the file name and its path.</paragraph>
+ <paragraph role="paragraph" id="par_id691584110618308"><emph>FileName</emph>: A string representing the file name and its path.</paragraph>
<h3 id="hd_id48158411061852" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" id="bas_id861584110618986">' If the input parameter is a folder, it returns the last component of the path</paragraph>
@@ -640,7 +640,7 @@
<paragraph role="bascode" localize="false" id="bas_id571584032680636">FSO.GetExtension(FileName As String) As String</paragraph>
</bascode>
<h3 id="hd_id761584032680163" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id821584032680311"><emph>FileName</emph> : A string representing the file name and its path.</paragraph>
+ <paragraph role="paragraph" id="par_id821584032680311"><emph>FileName</emph>: A string representing the file name and its path.</paragraph>
<h3 id="hd_id631584032680726" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id241584032680600">FSO.FileNaming = "SYS"</paragraph>
@@ -661,7 +661,7 @@
<paragraph role="bascode" localize="false" id="bas_id821600685050342">FSO.GetFileLen(FileName As String) As Currency</paragraph>
</bascode>
<h3 id="hd_id31600685050872" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id161600685050367"><emph>FileName</emph> : A string representing an existing file.</paragraph>
+ <paragraph role="paragraph" id="par_id161600685050367"><emph>FileName</emph>: A string representing an existing file.</paragraph>
<h3 id="hd_id831600685050271" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id901600685050677">Dim a As Currency</paragraph>
@@ -682,7 +682,7 @@
<paragraph role="bascode" localize="false" id="bas_id521584811478511">FSO.GetFileModified(FileName As String) As Date</paragraph>
</bascode>
<h3 id="hd_id271584811478116" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id25158481147822"><emph>FileName</emph> : A string representing an existing file.</paragraph>
+ <paragraph role="paragraph" id="par_id25158481147822"><emph>FileName</emph>: A string representing an existing file.</paragraph>
<h3 id="hd_id811584811478741" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id911584811636241">Dim a As Date</paragraph>
@@ -704,7 +704,7 @@
<paragraph role="bascode" localize="false" id="bas_id321584032366710">FSO.GetName(FileName As String) As String</paragraph>
</bascode>
<h3 id="hd_id61584032366208" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id671584032366193"><emph>FileName</emph> : A string representing the file name and its path.</paragraph>
+ <paragraph role="paragraph" id="par_id671584032366193"><emph>FileName</emph>: A string representing the file name and its path.</paragraph>
<h3 id="hd_id141584032366384" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id381584032366430">Dim a As String</paragraph>
@@ -726,7 +726,7 @@
<paragraph role="bascode" localize="false" id="bas_id151584113432818">FSO.GetParentFolderName(FileName As String) As String</paragraph>
</bascode>
<h3 id="hd_id39158411343279" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id471584113432231"><emph>FileName</emph> : A string with the file or folder name to be analyzed.</paragraph>
+ <paragraph role="paragraph" id="par_id471584113432231"><emph>FileName</emph>: A string with the file or folder name to be analyzed.</paragraph>
<h3 id="hd_id71584113432160" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id100158411343225">Dim a As String</paragraph>
@@ -771,8 +771,8 @@
<paragraph role="bascode" localize="false" id="bas_id901601042514520">FSO.HashFile(FileName As String, Algorithm As String) As String</paragraph>
</bascode>
<h3 id="hd_id571601042514450" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id28160104251451"><emph>FileName</emph> : A string representing an existing file.</paragraph>
- <paragraph role="paragraph" id="par_id71601042959846" xml-lang="en-US"><emph>Algorithm</emph> : One of the supported algorithms.</paragraph>
+ <paragraph role="paragraph" id="par_id28160104251451"><emph>FileName</emph>: A string representing an existing file.</paragraph>
+ <paragraph role="paragraph" id="par_id71601042959846" xml-lang="en-US"><emph>Algorithm</emph>: One of the supported algorithms.</paragraph>
<h3 id="hd_id911601042514639" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id1160104251483">FSO.FileNaming = "SYS"</paragraph>
@@ -794,8 +794,8 @@
<paragraph role="bascode" localize="false" id="bas_id1001584791330829">FSO.MoveFile(Source As String, Destination As String) As Boolean</paragraph>
</bascode>
<h3 id="hd_id93158479133092" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id721584791330406"><emph>Source</emph> : It can be a <literal>FileName</literal> or <literal>NamePattern</literal> to designate one or more files to be moved.</paragraph>
- <paragraph role="paragraph" id="par_id291584791330181" xml-lang="en-US"><emph>Destination</emph> : If <literal>Source</literal> is a <literal>FileName</literal> then this parameter indicates the new path and file name of the moved file.</paragraph>
+ <paragraph role="paragraph" id="par_id721584791330406"><emph>Source</emph>: It can be a <literal>FileName</literal> or <literal>NamePattern</literal> to designate one or more files to be moved.</paragraph>
+ <paragraph role="paragraph" id="par_id291584791330181" xml-lang="en-US"><emph>Destination</emph>: If <literal>Source</literal> is a <literal>FileName</literal> then this parameter indicates the new path and file name of the moved file.</paragraph>
<paragraph role="paragraph" id="par_id31613063334246">If the move operation involves multiple files, then Destination must be a folder name. If it does not exist, it is created.</paragraph>
<paragraph role="paragraph" id="par_id391613063494599">If <literal>Source</literal> and <literal>Destination</literal> have the same parent folder, the method will rename the <literal>Source</literal>.</paragraph>
<paragraph role="paragraph" id="par_id941613063476533">Wildcard characters are not allowed in <literal>Destination</literal>.</paragraph>
@@ -822,8 +822,8 @@
<paragraph role="bascode" localize="false" id="bas_id301584791330135">FSO.MoveFolder(Source As String, Destination As String) As Boolean</paragraph>
</bascode>
<h3 id="hd_id931584791330194" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id541584791330777"><emph>Source</emph> : It can be a <literal>FolderName</literal> or <literal>NamePattern</literal> to designate one or more folders to be moved.</paragraph>
- <paragraph role="paragraph" id="par_id551584791330279" xml-lang="en-US"><emph>Destination</emph> : If the move operation involves a single folder, then <literal>Destination</literal> is the name and path of the moved folder and it must not exist.</paragraph>
+ <paragraph role="paragraph" id="par_id541584791330777"><emph>Source</emph>: It can be a <literal>FolderName</literal> or <literal>NamePattern</literal> to designate one or more folders to be moved.</paragraph>
+ <paragraph role="paragraph" id="par_id551584791330279" xml-lang="en-US"><emph>Destination</emph>: If the move operation involves a single folder, then <literal>Destination</literal> is the name and path of the moved folder and it must not exist.</paragraph>
<paragraph role="paragraph" id="par_id11613072890641">If multiple folders are being moved, then <literal>Destination</literal> designates where the folders in <literal>Source</literal> will be moved into. If <literal>Source</literal> does not exist, it is created.</paragraph>
<paragraph role="paragraph" id="par_id301613072928159">Wildcard characters are not allowed in <literal>Destination</literal>.</paragraph>
<h3 id="hd_id631584791330660" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
@@ -848,9 +848,9 @@
<paragraph role="bascode" localize="false" id="bas_id541585320922330">FSO.OpenTextFile(FileName As String, [IOMode As Integer], [Create As Boolean], [Encoding As String]) As Object</paragraph>
</bascode>
<h3 id="hd_id561585320922459" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id551585320922678"><emph>FileName</emph> : Identifies the file to open.</paragraph>
- <paragraph role="paragraph" id="par_id671585320922388" xml-lang="en-US"><emph>IOMode</emph> : Indicates the input/output mode. It can be one of three constants: <literal>FSO.ForReading</literal> (default), <literal>FSO.ForWriting</literal>, or <literal>FSO.ForAppending</literal>.</paragraph>
- <paragraph role="paragraph" id="par_id21585321398586" xml-lang="en-US"><emph>Create</emph> : Boolean value that indicates whether a new file can be created if the specified filename doesn't exist:</paragraph>
+ <paragraph role="paragraph" id="par_id551585320922678"><emph>FileName</emph>: Identifies the file to open.</paragraph>
+ <paragraph role="paragraph" id="par_id671585320922388" xml-lang="en-US"><emph>IOMode</emph>: Indicates the input/output mode. It can be one of three constants: <literal>FSO.ForReading</literal> (default), <literal>FSO.ForWriting</literal>, or <literal>FSO.ForAppending</literal>.</paragraph>
+ <paragraph role="paragraph" id="par_id21585321398586" xml-lang="en-US"><emph>Create</emph>: Boolean value that indicates whether a new file can be created if the specified filename doesn't exist:</paragraph>
<list type="unordered">
<listitem>
<paragraph id="par_id721613073434797" role="listitem">If <literal>True</literal> a new file and its parent folders will be created if they do not exist;</paragraph>
@@ -859,7 +859,7 @@
<paragraph id="par_id201613073469289" role="listitem">If <literal>False</literal> then new files are not created (default).</paragraph>
</listitem>
</list>
- <paragraph role="paragraph" id="par_id771585321576210" xml-lang="en-US"><emph>Encoding</emph> : The character set to be used. The default encoding is "UTF-8".</paragraph>
+ <paragraph role="paragraph" id="par_id771585321576210" xml-lang="en-US"><emph>Encoding</emph>: The character set to be used. The default encoding is "UTF-8".</paragraph>
<h3 id="hd_id791585320922270" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id841585320922219">Dim myFile As Object</paragraph>
@@ -884,7 +884,7 @@
<paragraph role="bascode" localize="false" id="bas_id541583670342502">FSO.PickFile([DefaultFile As String], [Mode As String], [Filter As String]) As String</paragraph>
</bascode>
<h3 id="hd_id431583670342502" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id481583670342502"><emph>DefaultFile</emph> : This argument is a string composed of a folder and file name:</paragraph>
+ <paragraph role="paragraph" id="par_id481583670342502"><emph>DefaultFile</emph>: This argument is a string composed of a folder and file name:</paragraph>
<list type="unordered">
<listitem>
<paragraph id="par_id511613074665951" role="listitem">The folder part indicates the folder that will be shown when the dialog opens (default = the last selected folder).</paragraph>
@@ -893,8 +893,8 @@
<paragraph id="par_id631613074685308" role="listitem">The file part designates the default file to open or save.</paragraph>
</listitem>
</list>
- <paragraph role="paragraph" id="par_id981583670342502"><emph>Mode</emph> : <literal>OPEN</literal> (input file) or <literal>SAVE</literal> (output file). The default value is <literal>OPEN</literal>.</paragraph>
- <paragraph role="paragraph" id="par_id31583670342502"><emph>Filter</emph> : The extension of the files displayed when the dialog is opened (default = no filter).</paragraph>
+ <paragraph role="paragraph" id="par_id981583670342502"><emph>Mode</emph>: <literal>OPEN</literal> (input file) or <literal>SAVE</literal> (output file). The default value is <literal>OPEN</literal>.</paragraph>
+ <paragraph role="paragraph" id="par_id31583670342502"><emph>Filter</emph>: The extension of the files displayed when the dialog is opened (default = no filter).</paragraph>
<h3 id="hd_id421583670342502" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id411583670342503">Dim a As Variant</paragraph>
@@ -916,8 +916,8 @@
<paragraph role="bascode" localize="false" id="bas_id31583671701808">FSO.PickFolder([DefaultFolder As String], [FreeText As String]) As String</paragraph>
</bascode>
<h3 id="hd_id601583671701437" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id951583671701872"><emph>DefaultFolder</emph> : A string containing the folder name that will be displayed when the dialog is opened (default = the last selected folder).</paragraph>
- <paragraph role="paragraph" id="par_id821583671701764"><emph>FreeText</emph> : Text to display in the dialog (default = "").</paragraph>
+ <paragraph role="paragraph" id="par_id951583671701872"><emph>DefaultFolder</emph>: A string containing the folder name that will be displayed when the dialog is opened (default = the last selected folder).</paragraph>
+ <paragraph role="paragraph" id="par_id821583671701764"><emph>FreeText</emph>: Text to display in the dialog (default = "").</paragraph>
<h3 id="hd_id511583671701308" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id21583671701795">Dim a As Variant</paragraph>
@@ -939,8 +939,8 @@
<paragraph role="bascode" localize="false" id="bas_id931584016761182">FSO.SubFolders(FolderName As String, [Filter As String]) As Variant</paragraph>
</bascode>
<h3 id="hd_id341584016761331" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
- <paragraph role="paragraph" id="par_id701584016761945"><emph>FolderName</emph> : A string representing a folder. The folder must exist. <literal>FolderName</literal> must not designate a file.</paragraph>
- <paragraph role="paragraph" id="par_id471585648674921" xml-lang="en-US"><emph>Filter</emph> : A string containing wildcards ("?" and "*") that will be applied to the resulting list of folders (default = "").</paragraph>
+ <paragraph role="paragraph" id="par_id701584016761945"><emph>FolderName</emph>: A string representing a folder. The folder must exist. <literal>FolderName</literal> must not designate a file.</paragraph>
+ <paragraph role="paragraph" id="par_id471585648674921" xml-lang="en-US"><emph>Filter</emph>: A string containing wildcards ("?" and "*") that will be applied to the resulting list of folders (default = "").</paragraph>
<h3 id="hd_id921584016761389" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
<bascode>
<paragraph role="bascode" localize="false" id="bas_id541584016761911">Dim folderList As Variant, folder As String</paragraph>
@@ -954,7 +954,7 @@
<embed href="text/sbasic/shared/03/lib_ScriptForge.xhp#SF_InternalUse"/>
<section id="relatedtopics">
- <comment>Link here SF_TextStream help page after it is finished</comment>
+ <embed href="text/sbasic/shared/03/sf_textstream.xhp#TextStreamService"/>
<paragraph role="paragraph" id="par_id301613075694148"><link href="text/sbasic/shared/03160000.xhp" name="Input function">Input Function</link></paragraph>
<paragraph role="paragraph" id="par_id271612398715438"><link href="text/sbasic/shared/03020103.xhp" name="Open statement">Open Statement</link></paragraph>
</section>
diff --git a/source/text/sbasic/shared/03/sf_textstream.xhp b/source/text/sbasic/shared/03/sf_textstream.xhp
new file mode 100644
index 0000000000..99c158e19f
--- /dev/null
+++ b/source/text/sbasic/shared/03/sf_textstream.xhp
@@ -0,0 +1,337 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<helpdocument version="1.0">
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+-->
+
+<meta>
+ <topic id="SF_TextStream" indexer="include" status="PUBLISH">
+ <title id="tit" xml-lang="en-US">ScriptForge.TextStream service</title>
+ <filename>/text/sbasic/shared/03/sf_textstream.xhp</filename>
+ </topic>
+ </meta>
+
+<body>
+<section id="ScriptForge-SF_TextStream">
+ <bookmark xml-lang="en-US" localize="false" branch="index" id="bm_id50158533078781">
+ <bookmark_value>TextStream service</bookmark_value>
+ </bookmark>
+</section>
+
+<section id="abstract">
+ <h1 id="bm_id351585330787295" xml-lang="en-US"><variable id="TextStreamService"><link href="text/sbasic/shared/03/sf_textstream.xhp" name="TextStream service"><literal>ScriptForge</literal>.<literal>TextStream</literal> service</link></variable></h1>
+ <paragraph role="paragraph" id="par_id511585330787205" xml-lang="en-US">The <literal>TextStream</literal> service is used to sequentially read from and write to files opened or created using the <literal>ScriptForge.FileSystem</literal> service.</paragraph>
+ <paragraph role="paragraph" id="par_id41613596903894" xml-lang="en-US">The methods <literal>OpenTextFile</literal> and <literal>CreateTextFile</literal> from the <literal>FileSystem</literal> service return an instance of the <literal>TextStream</literal> service.</paragraph>
+</section>
+ <paragraph role="paragraph" id="par_id161585330787262" xml-lang="en-US">Line delimiters may be specified by the user. In input operations CR, LF or CR+LF are supported. In output operations, the default line delimiter is the one used by the operating system.</paragraph>
+ <paragraph role="paragraph" id="par_id831613598137669" xml-lang="en-US">The line delimiter for the operating system where the macro is being executed can be accessed using the <literal>SF_String.sfNEWLINE</literal> property.</paragraph>
+ <note id="par_id851613597445432">All operations needed to read from or write to a file (open, read/write and close) are presumed to happen during the same macro run.</note>
+
+ <h2 id="hd_id83158533078741" xml-lang="en-US">Service instantiation</h2>
+ <paragraph role="paragraph" id="par_id351613598192725" xml-lang="en-US">The code snippet below uses the <literal>OpenTextFile</literal> method to create an instance of the <literal>TextStream</literal> Service.</paragraph>
+ <bascode>
+ <paragraph role="bascode" localize="false" id="bas_id77158533078783">GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id971585330787275">Dim FSO As Variant</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id11585330787585">FSO = CreateScriptService("FileSystem")</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id891585330787374">Set myFile = FSO.OpenTextFile("C:\Temp\ThisFile.txt", FSO.ForReading)</paragraph>
+ </bascode>
+ <paragraph role="paragraph" id="par_id371585330787197" xml-lang="en-US">The file must be closed with the <literal>CloseFile</literal> method after all read or write operations have been executed:</paragraph>
+ <bascode>
+ <paragraph role="bascode" id="bas_id91613599192241">myFile.CloseFile()</paragraph>
+ </bascode>
+ <paragraph role="paragraph" id="par_id891582733781994" xml-lang="en-US">Optionally, the resources used by the <literal>TextStream</literal> instance can be released using the <literal>Dispose</literal> method:</paragraph>
+ <bascode>
+ <paragraph role="bascode" id="bas_id761613599333614">Set myFile = myFile.Dispose()</paragraph>
+ </bascode>
+ <note id="par_id121612917368946">The methods in the <literal>TextStream</literal> service are mostly based on the <link href="https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1io_1_1XTextInputStream.html" name="XTextInputStream API"><literal>XTextInputStream</literal></link> and <link href="https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1io_1_1XTextOutputStream.html" name="XTextOutputStream API"><literal>XTextOutputStream</literal></link> UNO interfaces.</note>
+
+ <h2 id="hd_id941585330787948" xml-lang="en-US">Properties</h2>
+ <bookmark xml-lang="en-US" branch="index" id="bm_id1001613600572485">
+ <bookmark_value>TextStream service;AtEndOfStream</bookmark_value>
+ <bookmark_value>TextStream service;Encoding</bookmark_value>
+ <bookmark_value>TextStream service;FileName</bookmark_value>
+ <bookmark_value>TextStream service;IOMode</bookmark_value>
+ <bookmark_value>TextStream service;Line</bookmark_value>
+ <bookmark_value>TextStream service;NewLine</bookmark_value>
+ </bookmark>
+ <table id="tab_id81585330787547">
+ <tablerow>
+ <tablecell>
+ <paragraph id="par_id631585330787267" role="tablehead" xml-lang="en-US">Name</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id401585330787370" role="tablehead" xml-lang="en-US">Readonly</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id581585330787700" role="tablehead" xml-lang="en-US">Type</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id551585330787608" role="tablehead" xml-lang="en-US">Description</paragraph>
+ </tablecell>
+ </tablerow>
+ <tablerow>
+ <tablecell>
+ <paragraph id="par_id941585330787832" role="tablecontent" xml-lang="en-US" localize="false">AtEndOfStream</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id181585330787752" role="tablecontent" xml-lang="en-US">Yes</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id471585330787948" role="tablecontent" xml-lang="en-US" localize="false">Boolean</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id901585330787680" role="tablecontent" xml-lang="en-US">Used in read mode. A <literal>True</literal> value indicates that the end of the file has been reached. A test using this property should precede calls to the <literal>ReadLine</literal> method.</paragraph>
+ </tablecell>
+ </tablerow>
+ <tablerow>
+ <tablecell>
+ <paragraph id="par_id501585330787895" role="tablecontent" xml-lang="en-US" localize="false">Encoding</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id561585330787568" role="tablecontent" xml-lang="en-US">Yes</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id731585330787673" role="tablecontent" xml-lang="en-US" localize="false">String</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id741585330787777" role="tablecontent" xml-lang="en-US">The character set to be used. The default encoding is "UTF-8".</paragraph>
+ </tablecell>
+ </tablerow>
+ <tablerow>
+ <tablecell>
+ <paragraph id="par_id361585330787241" role="tablecontent" xml-lang="en-US" localize="false">FileName</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id641585330787207" role="tablecontent" xml-lang="en-US">Yes</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id9158533078741" role="tablecontent" xml-lang="en-US" localize="false">String</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id281585330787614" role="tablecontent" xml-lang="en-US">Returns the name of the current file either in URL format or in the native operating system's format, depending on the current value of the <literal>FileNaming</literal> property of the <literal>FileSystem</literal> service.</paragraph>
+ </tablecell>
+ </tablerow>
+ <tablerow>
+ <tablecell>
+ <paragraph id="par_id451585330787745" role="tablecontent" xml-lang="en-US" localize="false">IOMode</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id111585330787410" role="tablecontent" xml-lang="en-US">Yes</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id981585330787716" role="tablecontent" xml-lang="en-US" localize="false">String</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id861585330787417" role="tablecontent" xml-lang="en-US">Indicates the input/output mode. Possible values are "READ", "WRITE" or "APPEND".</paragraph>
+ </tablecell>
+ </tablerow>
+ <tablerow>
+ <tablecell>
+ <paragraph id="par_id721585330787688" role="tablecontent" xml-lang="en-US" localize="false">Line</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id87158533078795" role="tablecontent" xml-lang="en-US">Yes</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id601585330787171" role="tablecontent" xml-lang="en-US" localize="false">Long</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id561585330787741" role="tablecontent" xml-lang="en-US">Returns the number of lines read or written so far.</paragraph>
+ </tablecell>
+ </tablerow>
+ <tablerow>
+ <tablecell>
+ <paragraph id="par_id12158533078767" role="tablecontent" xml-lang="en-US" localize="false">NewLine</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id531585330787157" role="tablecontent" xml-lang="en-US">No</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id9415853307876" role="tablecontent" xml-lang="en-US" localize="false">String</paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id691585330787279" role="tablecontent" xml-lang="en-US">Sets or returns the current delimiter to be inserted between two successive written lines. The default value is the native line delimiter in the current operating system.</paragraph>
+ </tablecell>
+ </tablerow>
+ </table>
+<note id="par_id141613001281573">To learn more about the names of character sets, visit <link href="https://www.iana.org/assignments/character-sets/character-sets.xhtml" name="Character Sets">IANA's Character Set</link> page. Beware that %PRODUCTNAME does not implement all existing character sets.</note>
+<table id="tab_id501611613601554">
+ <tablerow>
+ <tablecell colspan="3"><paragraph id="par_id891611613601554" role="tablehead">List of Methods in the TextStream Service</paragraph></tablecell>
+ </tablerow>
+ <tablerow>
+ <tablecell>
+ <paragraph id="par_id891611613601556" role="tablecontent" localize="false">
+ <link href="text/sbasic/shared/03/sf_textstream.xhp#CloseFile" name="CloseFile method">CloseFile</link><br/>
+ <link href="text/sbasic/shared/03/sf_textstream.xhp#ReadAll" name="ReadAll method">ReadAll</link><br/>
+ </paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id541611613601554" role="tablecontent" localize="false">
+ <link href="text/sbasic/shared/03/sf_textstream.xhp#ReadLine" name="ReadLine method">ReadLine</link><br/>
+ <link href="text/sbasic/shared/03/sf_textstream.xhp#SkipLine" name="SkipLine method">SkipLine</link><br/>
+ </paragraph>
+ </tablecell>
+ <tablecell>
+ <paragraph id="par_id701611613601554" role="tablecontent" localize="false">
+ <link href="text/sbasic/shared/03/sf_textstream.xhp#WriteBlankLines" name="WriteBlankLines method">WriteBlankLines</link><br/>
+ <link href="text/sbasic/shared/03/sf_textstream.xhp#WriteLine" name="WriteLine method">WriteLine</link><br/>
+ </paragraph>
+ </tablecell>
+ </tablerow>
+</table>
+
+<section id="CloseFile">
+ <comment> CloseFile -------------------------------------------------------------------------------------------------------------------------- </comment>
+ <bookmark xml-lang="en-US" localize="false" branch="index" id="bm_id21585330787288">
+ <bookmark_value>TextStream service;CloseFile</bookmark_value>
+ </bookmark>
+ <h2 id="hd_id901585330787252" localize="false">CloseFile</h2>
+ <paragraph role="paragraph" id="par_id421585330787675">Closes the current input or output stream and empties the output buffer if relevant. Returns <literal>True</literal> if the file was successfully closed.</paragraph>
+ <h3 id="hd_id751585330787577" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functsyntax"/></h3>
+ <bascode>
+ <paragraph role="bascode" localize="false" id="bas_id131585330787787">myFile.CloseFile() As Boolean</paragraph>
+ </bascode>
+</section>
+
+<section id="ReadAll">
+ <comment> ReadAll -------------------------------------------------------------------------------------------------------------------------- </comment>
+ <bookmark xml-lang="en-US" localize="false" branch="index" id="bm_id311585330787690">
+ <bookmark_value>TextStream service;ReadAll</bookmark_value>
+ </bookmark>
+ <h2 id="hd_id311585330787335" localize="false">ReadAll</h2>
+ <paragraph role="paragraph" id="par_id65158533078799">Returns all the remaining lines in the text stream as a single string. Line breaks are not removed.</paragraph>
+ <paragraph role="paragraph" id="par_id71613600347125">The resulting string can be split in lines either by using the <literal>Split</literal> built-in Basic function if the line delimiter is known, or with the <literal>SF_String.SplitLines</literal> method.</paragraph>
+ <paragraph role="paragraph" id="par_id91585330787373" xml-lang="en-US">For large files, using the <literal>ReadAll</literal> method wastes memory resources. In such cases it is recommended to read the file line by line using the <literal>ReadLine</literal> method.</paragraph>
+ <h3 id="hd_id991585330787163" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functsyntax"/></h3>
+ <bascode>
+ <paragraph role="bascode" localize="false" id="bas_id881585330787244">myFile.ReadAll() As String</paragraph>
+ </bascode>
+ <h3 id="hd_id971585266787755" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
+ <paragraph role="paragraph" id="par_id921613595637851">Consider the text file "Students.txt" with the following contents (a name in each line):</paragraph>
+ <bascode>
+ <paragraph role="bascode" localize="false" id="bas_id921613595638140">Herbie Peggy</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id61613595639028">Hardy Jarrett</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id711613595639379">Edith Lorelle</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id331613595639605">Roderick Rosamund</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id641613595639909">Placid Everette</paragraph>
+ </bascode>
+ <paragraph role="paragraph" id="par_id391613596019750">The example below uses the <literal>ReadAll</literal> and <literal>SplitLines</literal> methods to read the contents of the file into an array of strings:</paragraph>
+ <bascode>
+ <paragraph role="bascode" localize="false" id="bas_id21613595640293">Sub ReadFile_Example</paragraph>
+ <paragraph role="bascode" id="bas_id251613595640550"> 'Loads the FileSystem service</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id931613595640789"> Dim FSO : FSO = CreateScriptService("FileSystem")</paragraph>
+ <paragraph role="bascode" id="bas_id181613595641087"> 'Opens the text file with the names to be read</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id291613595641480"> Dim inputFile as Object</paragraph>
+ <paragraph role="bascode" id="bas_id651613595641754"> Set inputFile = FSO.OpenTextFile("~/Documents/Students.txt")</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id711613595642109"> 'Reads all the contents in the input file as a single string</paragraph>
+ <paragraph role="bascode" id="bas_id81613595642474"> Dim allData as String</paragraph>
+ <paragraph role="bascode" id="bas_id191613595642766"> allData = inputFile.ReadAll()</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id961613595643093"> 'Splits the string into an array</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id51613595643398"> Dim arrNames as Variant</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id151613595643675"> arrNames = SF_String.SplitLines(allData)</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id211613595928948"> ' (...)</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id31613600104976"> inputFile.CloseFile()</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id21613595645255">End Sub</paragraph>
+ </bascode>
+</section>
+
+<section id="ReadLine">
+ <comment> ReadLine -------------------------------------------------------------------------------------------------------------------------- </comment>
+ <bookmark xml-lang="en-US" localize="false" branch="index" id="bm_id161585330787462">
+ <bookmark_value>TextStream service;ReadLine</bookmark_value>
+ </bookmark>
+ <h2 id="hd_id111585330787998" localize="false">ReadLine</h2>
+ <paragraph role="paragraph" id="par_id871585330787885">Returns the next line in the text stream as a string. Line breaks are removed from the returned string.</paragraph>
+ <paragraph role="paragraph" id="par_id431613600221626">The <literal>AtEndOfStream</literal> test should precede the <literal>ReadLine</literal> method like in the example below.</paragraph>
+ <paragraph role="paragraph" id="par_id171585330787774" xml-lang="en-US">An error will be raised if the <literal>AtEndOfStream</literal> was reached during the previous <literal>ReadLine</literal> or <literal>SkipLine</literal> method call.</paragraph>
+ <h3 id="hd_id381585330787934" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functsyntax"/></h3>
+ <bascode>
+ <paragraph role="bascode" localize="false" id="bas_id941585330787658">myFile.ReadLine() As String</paragraph>
+ </bascode>
+ <h3 id="hd_id971585330787755" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
+ <bascode>
+ <paragraph role="bascode" localize="false" id="bas_id321585330787499">Dim sLine As String</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id791585330787376">Do While Not myFile.AtEndOfStream</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id461585330787206"> sLine = myFile.ReadLine()</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id521585330787673"> ' (...)</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id715853307876">Loop</paragraph>
+ </bascode>
+</section>
+
+<section id="SkipLine">
+ <comment> SkipLine -------------------------------------------------------------------------------------------------------------------------- </comment>
+ <bookmark xml-lang="en-US" localize="false" branch="index" id="bm_id381585330787551">
+ <bookmark_value>TextStream service;SkipLine</bookmark_value>
+ </bookmark>
+ <h2 id="hd_id241585330787168" localize="false">SkipLine</h2>
+ <paragraph role="paragraph" id="par_id11585330787847">Skips the next line in the input stream when reading a <literal>TextStream</literal> file.</paragraph>
+ <paragraph role="paragraph" id="par_id441613600704766">This method can result in <literal>AtEndOfStream</literal> being set to <literal>True</literal>.</paragraph>
+ <h3 id="hd_id431585330787708" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functsyntax"/></h3>
+ <bascode>
+ <paragraph role="bascode" localize="false" id="bas_id661585330787443">myFile.SkipLine()</paragraph>
+ </bascode>
+</section>
+
+<section id="WriteBlankLines">
+ <comment> WriteBlankLines -------------------------------------------------------------------------------------------------------------------------- </comment>
+ <bookmark xml-lang="en-US" localize="false" branch="index" id="bm_id61585330787548">
+ <bookmark_value>TextStream service;WriteBlankLines</bookmark_value>
+ </bookmark>
+ <h2 id="hd_id241585330787109" localize="false">WriteBlankLines</h2>
+ <paragraph role="paragraph" id="par_id141585330787657">Writes a specified number of empty lines to the output stream.</paragraph>
+ <h3 id="hd_id731585330787560" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functsyntax"/></h3>
+ <bascode>
+ <paragraph role="bascode" localize="false" id="bas_id531585330787648">myFile.WriteBlankLines(Lines As Long)</paragraph>
+ </bascode>
+ <h3 id="hd_id391585330787227" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
+ <paragraph role="paragraph" id="par_id291585330787357"><emph>Lines</emph>: The number of empty lines to write.</paragraph>
+</section>
+
+<section id="WriteLine">
+ <comment> WriteLine -------------------------------------------------------------------------------------------------------------------------- </comment>
+ <bookmark xml-lang="en-US" localize="false" branch="index" id="bm_id371585330787255">
+ <bookmark_value>TextStream service;WriteLine</bookmark_value>
+ </bookmark>
+ <h2 id="hd_id611585330787877" localize="false">WriteLine</h2>
+ <paragraph role="paragraph" id="par_id101585330787215">Writes the given string to the output stream as a single line.</paragraph>
+ <paragraph role="paragraph" id="par_id421613601002074">The character defined in the <literal>NewLine</literal> property is used as the line delimiter.</paragraph>
+ <h3 id="hd_id861585330787574" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functsyntax"/></h3>
+ <bascode>
+ <paragraph role="bascode" localize="false" id="bas_id8158533078735">myFile.WriteLine(Line As String)</paragraph>
+ </bascode>
+ <h3 id="hd_id191585330787562" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functparameters"/></h3>
+ <paragraph role="paragraph" id="par_id491585330787650"><emph>Line</emph>: The line to write, may be empty.</paragraph>
+ <h3 id="hd_id971585330145755" localize="false"><embedvar href="text/sbasic/shared/00000003.xhp#functexample"/></h3>
+ <bascode>
+ <paragraph role="bascode" localize="false" id="bas_id171613321461620">Sub SquaredValuesFile(lastValue as Integer)</paragraph>
+ <paragraph role="bascode" id="bas_id21613321528612"> 'Instantiates the FileSystem Service</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id711613321529004"> Dim FSO as Variant : FSO = CreateScriptService("FileSystem")</paragraph>
+ <paragraph role="bascode" id="bas_id191613321529277"> 'Creates a text file</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id861613321529684"> Dim myFile as Variant : myFile = FSO.CreateTextFile("~/Documents/squares.csv")</paragraph>
+ <paragraph role="bascode" id="bas_id641613321530181"> 'Writes the Value and Value squared, separated by ";"</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id331613321530548"> Dim value as Integer</paragraph>
+ <paragraph role="bascode" id="bas_id141613321530960"> myFile.WriteLine("Value;Value Squared")</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id891613321531342"> For value = 1 To lastValue</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id951613321531798"> myFile.WriteLine(value &amp; ";" &amp; value ^ 2)</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id621613321532215"> Next value</paragraph>
+ <paragraph role="bascode" id="bas_id881613321532598"> 'Closes the file and free resources</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id671613321532919"> myFile.CloseFile()</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id51613321533150"> myFile.Dispose()</paragraph>
+ <paragraph role="bascode" localize="false" id="bas_id861613321645821">End Sub</paragraph>
+ </bascode>
+</section>
+
+ <embed href="text/sbasic/shared/03/lib_ScriptForge.xhp#SF_InternalUse"/>
+ <section id="relatedtopics">
+ <embed href="text/sbasic/shared/03/sf_filesystem.xhp#FileSystemService"/>
+ <paragraph role="paragraph" id="par_id301613075694148"><link href="text/sbasic/shared/03160000.xhp" name="Input function">Input Function</link></paragraph>
+ <paragraph role="paragraph" id="par_id271612398715438"><link href="text/sbasic/shared/03020103.xhp" name="Open statement">Open Statement</link></paragraph>
+ </section>
+</body>
+</helpdocument>