1*b1cdbd2cSJim Jagielski<?xml version="1.0" encoding="UTF-8"?>
2*b1cdbd2cSJim Jagielski
3*b1cdbd2cSJim Jagielski
4*b1cdbd2cSJim Jagielski<!--***********************************************************
5*b1cdbd2cSJim Jagielski *
6*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
7*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
8*b1cdbd2cSJim Jagielski * distributed with this work for additional information
9*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
10*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
11*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
12*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
13*b1cdbd2cSJim Jagielski *
14*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
15*b1cdbd2cSJim Jagielski *
16*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
17*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
18*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
20*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
21*b1cdbd2cSJim Jagielski * under the License.
22*b1cdbd2cSJim Jagielski *
23*b1cdbd2cSJim Jagielski ***********************************************************-->
24*b1cdbd2cSJim Jagielski
25*b1cdbd2cSJim Jagielski
26*b1cdbd2cSJim Jagielski
27*b1cdbd2cSJim Jagielski<helpdocument version="1.0">
28*b1cdbd2cSJim Jagielski<meta>
29*b1cdbd2cSJim Jagielski<topic id="textsbasicshared03020103xml" indexer="include" status="PUBLISH">
30*b1cdbd2cSJim Jagielski<title id="tit" xml-lang="en-US">Open Statement[Runtime]</title>
31*b1cdbd2cSJim Jagielski<filename>/text/sbasic/shared/03020103.xhp</filename>
32*b1cdbd2cSJim Jagielski</topic>
33*b1cdbd2cSJim Jagielski<history>
34*b1cdbd2cSJim Jagielski<created date="2003-10-31T00:00:00">Sun Microsystems, Inc.</created>
35*b1cdbd2cSJim Jagielski<lastedited date="2006-02-08T13:20:10">converted from old format - fpe</lastedited>
36*b1cdbd2cSJim Jagielski</history>
37*b1cdbd2cSJim Jagielski</meta>
38*b1cdbd2cSJim Jagielski<body>
39*b1cdbd2cSJim Jagielski<section id="open">
40*b1cdbd2cSJim Jagielski<bookmark xml-lang="en-US" branch="index" id="bm_id3150791"><bookmark_value>Open statement</bookmark_value>
41*b1cdbd2cSJim Jagielski</bookmark>
42*b1cdbd2cSJim Jagielski<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>
43*b1cdbd2cSJim Jagielski<paragraph role="paragraph" id="par_id3150769" xml-lang="en-US" l10n="U" oldref="2">Opens a data channel.</paragraph>
44*b1cdbd2cSJim Jagielski</section>
45*b1cdbd2cSJim Jagielski<paragraph role="heading" id="hd_id3147230" xml-lang="en-US" level="2" l10n="U" oldref="3">Syntax:</paragraph>
46*b1cdbd2cSJim Jagielski<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>
47*b1cdbd2cSJim Jagielski<paragraph role="heading" id="hd_id3156280" xml-lang="en-US" level="2" l10n="U" oldref="5">Parameters:</paragraph>
48*b1cdbd2cSJim Jagielski<paragraph role="paragraph" id="par_id3155132" xml-lang="en-US" l10n="U" oldref="6">
49*b1cdbd2cSJim Jagielski<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>
50*b1cdbd2cSJim Jagielski<paragraph role="paragraph" id="par_id3149262" xml-lang="en-US" l10n="U" oldref="7">
51*b1cdbd2cSJim Jagielski<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>
52*b1cdbd2cSJim Jagielski<paragraph role="paragraph" id="par_id3154014" xml-lang="en-US" l10n="CHG" oldref="8">
53*b1cdbd2cSJim Jagielski<emph>IOMode:</emph> Keyword that defines the access type. Valid values: Read (read-only), Write (write-only), Read Write (both).</paragraph>
54*b1cdbd2cSJim Jagielski<paragraph role="paragraph" id="par_id3150011" xml-lang="en-US" l10n="U" oldref="9">
55*b1cdbd2cSJim Jagielski<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>
56*b1cdbd2cSJim Jagielski<paragraph role="paragraph" id="par_id3153190" xml-lang="en-US" l10n="U" oldref="10">
57*b1cdbd2cSJim Jagielski<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>
58*b1cdbd2cSJim Jagielski<paragraph role="paragraph" id="par_id3151115" xml-lang="en-US" l10n="CHG" oldref="11">
59*b1cdbd2cSJim Jagielski<emph>DatasetLength:</emph> For random access files, set the length of the records.<comment>UFI: #61736</comment></paragraph>
60*b1cdbd2cSJim Jagielski<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>
61*b1cdbd2cSJim Jagielski<paragraph role="heading" id="hd_id3149123" xml-lang="en-US" level="2" l10n="U" oldref="13">Example:</paragraph>
62*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3150749" xml-lang="en-US" l10n="U" oldref="14">Sub ExampleWorkWithAFile</paragraph>
63*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3155064" xml-lang="en-US" l10n="U" oldref="15">Dim iNumber As Integer</paragraph>
64*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3154754" xml-lang="en-US" l10n="U" oldref="16">Dim sLine As String</paragraph>
65*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3153711" xml-lang="en-US" l10n="U" oldref="17">Dim aFile As String</paragraph>
66*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3155764" xml-lang="en-US" l10n="U" oldref="40">Dim sMsg as String</paragraph>
67*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3159264" xml-lang="en-US" l10n="U" oldref="18">aFile = "c:\data.txt"</paragraph>
68*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3153963" xml-lang="en-US" l10n="U" oldref="20">iNumber = Freefile</paragraph>
69*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3155959" xml-lang="en-US" l10n="U" oldref="21">Open aFile For Output As #iNumber</paragraph>
70*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3154705" xml-lang="en-US" l10n="U" oldref="22">Print #iNumber, "This is a line of text"</paragraph>
71*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3146916" xml-lang="en-US" l10n="U" oldref="23">Print #iNumber, "This is another line of text"</paragraph>
72*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3150942" xml-lang="en-US" l10n="U" oldref="24">Close #iNumber</paragraph>
73*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3150300" xml-lang="en-US" l10n="U" oldref="28">iNumber = Freefile</paragraph>
74*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3154022" xml-lang="en-US" l10n="U" oldref="29">Open aFile For Input As iNumber</paragraph>
75*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3150783" xml-lang="en-US" l10n="U" oldref="30">While not eof(iNumber)</paragraph>
76*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3153270" xml-lang="en-US" l10n="U" oldref="31">Line Input #iNumber, sLine</paragraph>
77*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3153784" xml-lang="en-US" l10n="U" oldref="32">If sLine &lt;&gt;"" then</paragraph>
78*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3149208" xml-lang="en-US" l10n="U" oldref="33">sMsg = sMsg &amp; sLine &amp; chr(13)</paragraph>
79*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3150304" xml-lang="en-US" l10n="U" oldref="35">end if</paragraph>
80*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3151217" xml-lang="en-US" l10n="U" oldref="36">wend</paragraph>
81*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3152582" xml-lang="en-US" l10n="U" oldref="37">Close #iNumber</paragraph>
82*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3159100" xml-lang="en-US" l10n="U" oldref="41">Msgbox sMsg</paragraph>
83*b1cdbd2cSJim Jagielski<paragraph role="code" id="par_id3159091" xml-lang="en-US" l10n="U" oldref="38">End Sub</paragraph>
84*b1cdbd2cSJim Jagielski</body>
85*b1cdbd2cSJim Jagielski</helpdocument>
86