Thanks for the code snippet. I think the extra "open" you mention is that
the CreateFile did not create and open the file if it did not exist (using
4096). I keep trying different things trying to figure out how the functions
actually work. Seems to me the doc is not completely clear and explicit.
Your code is very informative.

 

Thanks

George

 

  _____  

From: [email protected] [mailto:[email protected]] On
Behalf Of michiman56
Sent: Tuesday, March 02, 2010 10:34 AM
To: [email protected]
Subject: [nsbasic-ce] Re: file system help

 






Ok, it looks like you are using the newObjects SFMain to do this.  I'm not a
fan of using magic numbers, even if they do save space in NSB/CE programs.
I always have to look them up, so I prefer to declare constants using the
names in the library's typelib where possible. 

You seem to be opening the same file twice for some reason.  Once as outFile
and again as file2.  That might be why you're seeing the results you
experience.

Here's an example that works for me:

Option Explicit
'newObjects SFMain flags/values ----------------------
'Open/create mode flags.
Const cSFRead = &H0
Const cSFWrite = &H1
Const cSFReadWrite = &H2
'Sharing.
Const cSFShareExclusive = &H10
Const cSFShareDenyWrite = &H20
Const cSFShareDenyRead = &H30
Const cSFShareDenyNone = &H40
'Creation specific (these apply to CreateXXX methods).
Const cSFFailIfThere = &H0
Const cSFCreate = &H1000 'Create/overwrite.
'WriteText options.
Const cOptChars = 0
Const cOptLine = 1
'Seek origins.
Const cStreamBegin = 0
Const cStreamCurrent = 1
Const cStreamEnd = 2

Dim SFM, stmTextFile
Const FILENAME = "\Documents and Settings\TestText.txt"

Set SFM = CreateObject("newObjects.utilctls.SFMain") 'Or use AddObject.
Set stmTextFile = _
    SFM.CreateFile(FILENAME, cSFWrite Or cSFShareExclusive Or cSFCreate)
With stmTextFile
    .WriteText "Line 1", cOptLine
    .WriteText "Line 2", cOptLine
    .WriteText "Line 3", cOptLine
    .Close
End With
MsgBox "New file 3 lines", vbOKOnly, "TextFileProg"

Set stmTextFile = SFM.OpenFile(FILENAME, cSFReadWrite Or cSFShareExclusive)
With stmTextFile
    .Seek 0, cStreamEnd
    .WriteText "Line 4", cOptLine
    .WriteText "Line 5", cOptLine
    .WriteText "Line 6", cOptLine
    .Close
End With
MsgBox "Added 3 more lines", vbOKOnly, "TextFileProg"

Set stmTextFile = _
    SFM.CreateFile(FILENAME, cSFWrite Or cSFShareExclusive Or cSFCreate)
With stmTextFile
    .WriteText "New Line A", cOptLine
    .WriteText "New Line B", cOptLine
    .Close
End With
MsgBox "New new file 2 lines" & vbNewLine & "Done!", vbOKOnly,
"TextFileProg"

Bye


--- In [email protected], "georgeewalters" <gwalt...@...> wrote:
>
> Here is the code:
> 
> outName = "\Documents and Settings\AcuTrack\StockCount.txt"
> 
> Set outFile = fs.CreateFile(outName, 4096)'--Create and open and
> Set file2 = fs.OpenFile(outName)
> For i = 1 To count
> tmp = list(i,0) & list(i,1) & list(i,2) & list(i,3)
> MsgBox tmp
> file2.WriteText tmp
> Next
> 
> file2.Close
> 
> MsgBox("File saved")
> 
> My understanding is the CreateFile with 4096 will delete the file if it
exists and create a new empty file. I then write one record to the file and
when I look at the file with fileExplorer (on PDA i'm talking) it has the
record I wrote but at end of all the other records. So the createfile did
not delete the file. Can someone explain? I must be understanding something
wrong or a mistake in the code above.
> 
> Flags are: 
> 
> 0 - Fail if file already exists (default) 
> 4096 - If file exists, delete and recreate
>








-- 
You received this message because you are subscribed to the Google Groups 
"nsb-ce" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nsb-ce?hl=en.

Reply via email to