1<?xml version="1.0" encoding="UTF-8"?>
2
3<!--***********************************************************
4 *
5 * Licensed to the Apache Software Foundation (ASF) under one
6 * or more contributor license agreements.  See the NOTICE file
7 * distributed with this work for additional information
8 * regarding copyright ownership.  The ASF licenses this file
9 * to you under the Apache License, Version 2.0 (the
10 * "License"); you may not use this file except in compliance
11 * with the License.  You may obtain a copy of the License at
12 *
13 *   http://www.apache.org/licenses/LICENSE-2.0
14 *
15 * Unless required by applicable law or agreed to in writing,
16 * software distributed under the License is distributed on an
17 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18 * KIND, either express or implied.  See the License for the
19 * specific language governing permissions and limitations
20 * under the License.
21 *
22 ***********************************************************-->
23
24<helpdocument version="1.0">
25<meta>
26<topic id="textsbasicshared03020103xml" indexer="include" status="PUBLISH">
27<title id="tit" xml-lang="en-US">Open Statement [Runtime]</title>
28<filename>/text/sbasic/shared/03020103.xhp</filename>
29</topic>
30</meta>
31<body>
32<section id="open">
33<bookmark xml-lang="en-US" branch="index" id="bm_id3150791">
34<bookmark_value>Open statement</bookmark_value>
35</bookmark>
36<paragraph role="heading" id="hd_id3150791" xml-lang="en-US" level="1" l10n="U" oldref="1"><link href="text/sbasic/shared/03020103.xhp" name="Open Statement [Runtime]">Open Statement [Runtime]</link></paragraph>
37<paragraph role="paragraph" id="par_id3150769" xml-lang="en-US" l10n="U" oldref="2">Opens a data channel.</paragraph>
38</section>
39<paragraph role="heading" id="hd_id3147230" xml-lang="en-US" level="2" l10n="U" oldref="3">Syntax:</paragraph>
40<paragraph role="code" id="par_id3154124" xml-lang="en-US" l10n="CHG" oldref="4">Open FileName As String [For Mode] [Access IOMode] [Protected] As [#]FileNumber As Integer [Len = DatasetLength]<comment>UFI: #i37502#</comment></paragraph>
41<paragraph role="heading" id="hd_id3156280" xml-lang="en-US" level="2" l10n="U" oldref="5">Parameters:</paragraph>
42<paragraph role="paragraph" id="par_id3155132" xml-lang="en-US" l10n="U" oldref="6">
43<emph>FileName:</emph> Name and path of the file that you wan to open. If you try to read a file that does not exist (Access = Read), an error message appears. If you try to write to a file that does not exist (Access = Write), a new file is created.</paragraph>
44<paragraph role="paragraph" id="par_id3149262" xml-lang="en-US" l10n="U" oldref="7">
45<emph>Mode:</emph> Keyword that specifies the file mode. Valid values: Append (append to sequential file), Binary (data can be accessed by bytes using Get and Put), Input (opens data channel for reading), Output (opens data channel for writing), and Random (edits relative files).</paragraph>
46<paragraph role="paragraph" id="par_id3154014" xml-lang="en-US" l10n="CHG" oldref="8">
47<emph>IOMode:</emph> Keyword that defines the access type. Valid values: Read (read-only), Write (write-only), Read Write (both).</paragraph>
48<paragraph role="paragraph" id="par_id3150011" xml-lang="en-US" l10n="U" oldref="9">
49<emph>Protected:</emph> Keyword that defines the security status of a file after opening. Valid values: Shared (file may be opened by other applications), Lock Read (file is protected against reading), Lock Write (file is protected against writing), Lock Read Write (denies file access).</paragraph>
50<paragraph role="paragraph" id="par_id3153190" xml-lang="en-US" l10n="U" oldref="10">
51<emph>FileNumber:</emph> Any integer expression from 0 to 511 to indicate the number of a free data channel. You can then pass commands through the data channel to access the file. The file number must be determined by the FreeFile function immediately before the Open statement.</paragraph>
52<paragraph role="paragraph" id="par_id3151115" xml-lang="en-US" l10n="CHG" oldref="11">
53<emph>DatasetLength:</emph> For random access files, set the length of the records.<comment>UFI: #61736</comment></paragraph>
54<paragraph role="note" id="par_id3153418" xml-lang="en-US" l10n="U" oldref="12">You can only modify the contents of a file that was opened with the Open statement. If you try to open a file that is already open, an error message appears.</paragraph>
55<paragraph role="heading" id="hd_id3149123" xml-lang="en-US" level="2" l10n="U" oldref="13">Example:</paragraph>
56<paragraph role="code" id="par_id3150749" xml-lang="en-US" l10n="U" oldref="14">Sub ExampleWorkWithAFile</paragraph>
57<paragraph role="code" id="par_id3155064" xml-lang="en-US" l10n="U" oldref="15">Dim iNumber As Integer</paragraph>
58<paragraph role="code" id="par_id3154754" xml-lang="en-US" l10n="U" oldref="16">Dim sLine As String</paragraph>
59<paragraph role="code" id="par_id3153711" xml-lang="en-US" l10n="U" oldref="17">Dim aFile As String</paragraph>
60<paragraph role="code" id="par_id3155764" xml-lang="en-US" l10n="U" oldref="40">Dim sMsg as String</paragraph>
61<paragraph role="code" id="par_id3159264" xml-lang="en-US" l10n="U" oldref="18">aFile = "c:\data.txt"</paragraph>
62<paragraph role="code" id="par_id3153963" xml-lang="en-US" l10n="U" oldref="20">iNumber = Freefile</paragraph>
63<paragraph role="code" id="par_id3155959" xml-lang="en-US" l10n="U" oldref="21">Open aFile For Output As #iNumber</paragraph>
64<paragraph role="code" id="par_id3154705" xml-lang="en-US" l10n="U" oldref="22">Print #iNumber, "This is a line of text"</paragraph>
65<paragraph role="code" id="par_id3146916" xml-lang="en-US" l10n="U" oldref="23">Print #iNumber, "This is another line of text"</paragraph>
66<paragraph role="code" id="par_id3150942" xml-lang="en-US" l10n="U" oldref="24">Close #iNumber</paragraph>
67<paragraph role="code" id="par_id3150300" xml-lang="en-US" l10n="U" oldref="28">iNumber = Freefile</paragraph>
68<paragraph role="code" id="par_id3154022" xml-lang="en-US" l10n="U" oldref="29">Open aFile For Input As iNumber</paragraph>
69<paragraph role="code" id="par_id3150783" xml-lang="en-US" l10n="U" oldref="30">While not eof(iNumber)</paragraph>
70<paragraph role="code" id="par_id3153270" xml-lang="en-US" l10n="U" oldref="31">Line Input #iNumber, sLine</paragraph>
71<paragraph role="code" id="par_id3153784" xml-lang="en-US" l10n="U" oldref="32">If sLine &lt;&gt;"" then</paragraph>
72<paragraph role="code" id="par_id3149208" xml-lang="en-US" l10n="U" oldref="33">sMsg = sMsg &amp; sLine &amp; chr(13)</paragraph>
73<paragraph role="code" id="par_id3150304" xml-lang="en-US" l10n="U" oldref="35">end if</paragraph>
74<paragraph role="code" id="par_id3151217" xml-lang="en-US" l10n="U" oldref="36">wend</paragraph>
75<paragraph role="code" id="par_id3152582" xml-lang="en-US" l10n="U" oldref="37">Close #iNumber</paragraph>
76<paragraph role="code" id="par_id3159100" xml-lang="en-US" l10n="U" oldref="41">Msgbox sMsg</paragraph>
77<paragraph role="code" id="par_id3159091" xml-lang="en-US" l10n="U" oldref="38">End Sub</paragraph>
78</body>
79</helpdocument>
80