[Libreoffice-commits] help.git: AllLangHelp_sbasic.mk source/text

Rafael Lima (via logerrit) logerrit at kemper.freedesktop.org
Mon Feb 22 17:13:09 UTC 2021


 AllLangHelp_sbasic.mk                            |    1 
 source/text/sbasic/shared/03/lib_ScriptForge.xhp |  126 +++++---
 source/text/sbasic/shared/03/sf_calc.xhp         |    6 
 source/text/sbasic/shared/03/sf_filesystem.xhp   |   88 +++---
 source/text/sbasic/shared/03/sf_textstream.xhp   |  337 +++++++++++++++++++++++
 5 files changed, 469 insertions(+), 89 deletions(-)

New commits:
commit c2fa9223ea62e33237a98bdcca5eaab2bbc5bb41
Author:     Rafael Lima <rafael.palma.lima at gmail.com>
AuthorDate: Wed Feb 17 23:56:07 2021 +0100
Commit:     Alain Romedenne <alain.romedenne at libreoffice.org>
CommitDate: Mon Feb 22 18:12:27 2021 +0100

    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 at libreoffice.org>

diff --git a/AllLangHelp_sbasic.mk b/AllLangHelp_sbasic.mk
index 53af112a0..cc0b7f383 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 7ef2387b3..82e11d5c6 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 156ef6a8e..a2b782bfb 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 16bb45490..96402fa02 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 000000000..99c158e19
--- /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 & ";" & 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>


More information about the Libreoffice-commits mailing list