Hi Pascal!

Not sure what you mean by "optical hard drive"  (HDs use electromagnetic
heads). 

I have not had the chance to try your scripts, and I haven't relally played
with Scripting.FileSystemObject, but some quick thoughts for you--

 

File locking and permissions are controlled by the OS and the limitations of
the file system (NTFS/FAT32/ExFAT etc.).  Unless the hardware is read-only
or sequential-only (i.e. tape) I don't think it has any bearing.

 

USB flash drives are usually formatted with FAT32, hard drives and
solid-state drives aimed at Windows PCs are usually formatted with NTFS.

 

NTFS supports many more nuances of file locking than FAT.  FAT doesn't
support file permissions at all.

 

The real issue is most likely file locking issues you are running into on a
FAT32 volume.  

 

Like I said, I am not versed in use of Scripting.FileSystemObject, but your
working procedure appears to open the file once (when creating it) and your
non-working procedure appears to open the file 3 or 4 times.  Perhaps not
the best way to write the code, but the following single change, just wildly
guessing, may solve the issue:

fs.CreateTextFile ("Y:\test2.txt").Close 'Create a file ** and then close it
**

 

 

OH, one other potential issue with your code is the constants
(TriStateUseDefault, ForReading, ForWriting).  Unless you set a reference to
the scripting library (I think Microsoft Scripting Runtime), or define the
constants in your code yourself, these will be undefined.  Further, if you
do have a reference to the library, for best performance, you should use
early binding and declare your variables not as Variant (as you did by
inference in your second procedure) or Object (as you did in your first
procedure), but as the specific object type and then use the New keyword
instead of CreateObject to create objects.

 

Asa

 

From: excel-macros@googlegroups.com [mailto:excel-macros@googlegroups.com]
On Behalf Of bpascal123
Sent: Monday, April 30, 2012 11:52 AM
To: excel-macros@googlegroups.com
Subject: $$Excel-Macros$$ NAND memory flash-drive, writing from Excel to a
text file

 

Hi cyberspace,

 

I have 2 vba scripts with the same purpose, create and write to a text file.

The 1st script works fine when creating and writing the file to my optical
hard drive and doesn't work on my flash drive.

The 2nd script works fine on both optical and flash drive. 

 

I wonder if the issue is not related to vba coding and Nand flash memory
which 

requires a different read-write access to data in comparaison to classic
optical hard drives.

Can you confirm? 

 

1st script works 1/2:

 

Sub testy() 

 

Dim fs As Object, f As Object, ts As Object

Dim s As String, sTxt As String, lastr As Long

 

Set fs = CreateObject("Scripting.FileSystemObject")

fs.CreateTextFile ("Y:\test2.txt") 'Create a file

 

Set f = fs.GetFile("test2.txt")

Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)

ts.Write "Hello World"

ts.Close

Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)

s = ts.ReadLine

msgbox s

ts.Close

 

End Sub

 

2nd script, works OK :

 

Sub testz()

 

    Dim fso, txtfile

    Set fso = CreateObject("Scripting.FileSystemObject")

    Set txtfile = fso.CreateTextFile("Y:\test1.txt", True)

    txtfile.Write ("This is a test. ") ' Write a line.

    ' Write a line with a newline character.

    txtfile.WriteLine ("Testing 1, 2, 3.")

    ' Write three newline characters to the file.

    txtfile.WriteBlankLines (3)

    txtfile.Close

 

End Sub

 

Thanks,

Pascal

 

 

 

-- 
FORUM RULES (986+ members already BANNED for violation)
 
1) Use concise, accurate thread titles. Poor thread titles, like Please
Help, Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will
not get quick attention or may not be answered.
 
2) Don't post a question in the thread of another member.
 
3) Don't post questions regarding breaking or bypassing any security
measure.
 
4) Acknowledge the responses you receive, good or bad.
 
5) Cross-promotion of, or links to, forums competitive to this forum in
signatures are prohibited. 
 
NOTE : Don't ever post personal or confidential data in a workbook. Forum
owners and members are not responsible for any loss.
 
----------------------------------------------------------------------------
--------------------------
To post to this group, send email to excel-macros@googlegroups.com

-- 
FORUM RULES (986+ members already BANNED for violation)

1) Use concise, accurate thread titles. Poor thread titles, like Please Help, 
Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get 
quick attention or may not be answered.

2) Don't post a question in the thread of another member.

3) Don't post questions regarding breaking or bypassing any security measure.

4) Acknowledge the responses you receive, good or bad.

5)  Cross-promotion of, or links to, forums competitive to this forum in 
signatures are prohibited. 

NOTE  : Don't ever post personal or confidential data in a workbook. Forum 
owners and members are not responsible for any loss.

------------------------------------------------------------------------------------------------------
To post to this group, send email to excel-macros@googlegroups.com

Reply via email to