473,397 Members | 1,949 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,397 software developers and data experts.

Error removing last vbCrLf character from a text file created by FSO CreateTextFile

I'm using FileSystemObject to open and write to a tab delimited text
file.

First, I connect to a database and select some data. Then I create the
text file and insert each record in the text file. At the end of each
record I insert a vbCrLf character in the text file to create a new
line. Thus each record is in a new line.

The problem is that I get a tab delimited text file where the LAST LINE
in the text file is always a blank line. I need to remove the LAST
vbCrLf character from the text file so that there is no blank line at
the end of the text file.

I've tried checking for AtEndOfStream in a Loop to try and remove the
LAST vbCrLf character, but there's something wrong with the code...

The Do While Not objStream.AtEndOfStream loop is crashing with
"Microsoft VBScript runtime (0x800A0036) Bad file mode" errors.

What have I done wrong?

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
strDataFileName = Server.MapPath("SomeFolder\TextFile.txt")

'Delete any existing Format 01 text file (from previous batches)
If (objFSO.FileExists(strDataFileName)) Then
objFSO.DeleteFile(strDataFileName)
End If

'Create blank text file
strDataPath = Server.MapPath("SomeFolder\")
Set strCreateFile = objFSO.CreateTextFile("TextFile.txt", True)
Set strCreateFile = Nothing

Const ForWriting = 2
Set objStream = objFSO.OpenTextFile(strDataFileName, ForWriting, True)

strSelect = "SELECT X,Y,Z FROM SomeTale WHERE SomeCondition = '12345'"

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open Application("connstring")
Set rs = conn.Execute(strSelect)

'Add the data to the text file
Do While Not rs.eof
strText = rs("SURNAME") & VbTab & rs("FIRSTNAME") & VbTab &
rs("DSINITIALS") & VbTab & VbTab & VbTab & "0.00" & VbTab & rs("ID") &
VbTab & rs("BLAH") & VbTab & "X"
objStream.Write (strText & vbCrLf) 'This inserts a vbCrLf
character at the end of each record
rs.MoveNext
Loop

rs.Close : Set rs = nothing
conn.Close : Set conn = nothing

'Remove the last VbCrlf from the text file.
Do While Not objStream.AtEndOfStream
CLine = objStream.ReadLine
CLine = Replace(CLine,VbCrlf,"")
strDataFileName.Write CLine
Loop

objStream.Close : Set objStream = Nothing
Set objFSO = Nothing

Feb 15 '06 #1
4 7362
Did you try it like this:-
objStream.Write strText
rs.MoveNext
If Not rs.EOF Then objStream.write vbCrLf
Loop


Feb 15 '06 #2
Perfect!
Thanks

Feb 16 '06 #3
> Did you try it like this:-

objStream.Write strText
rs.MoveNext
If Not rs.EOF Then objStream.write vbCrLf
Loop


Thanks. It worked perfectly.

But then I tried moving the code into a Function to make it reusable:

Function PrintCategory(Category)
strText = strRecordNumber & VbTab & rs("somefield") & VbTab &
Category & VbTab & rs("anotherfield") & VbTab & "X"
objStream.Write (strText)
If Not rs.eof Then
objStream.Write vbCrLf
End If
End Function

And I call it from the main body of the page using:

Set rs = conn.Execute("SELECT X1,Y2,Z3 FROM SomeTable WHERE Something
= '12345'")
Do While Not rs.eof
If rs("X1") = "Yes" Then
PrintCategory(01)
End If

If rs("Y2") = "Yes" Then
PrintCategory(02)
End If

If rs("Z3") = "Yes" Then
PrintCategory(03)
End If

rs.MoveNext
Loop
The problem is that I now get a blank line/carriage return at the end
of the file. As in my original post, I don't want the text file to have
this blank line / carriage return after the LAST record.

Where have I gone wrong?

Feb 17 '06 #4
In my code it was important that the MoveNext method on the recordset be
called before testing EOF.

Your code is no longer doing that.
Feb 17 '06 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

6
by: Kevin Ingram | last post by:
Ok, this is probably a silly question but I just keep hitting a brick wall here. I usually develop my sites entirely in ASP and use a database for data storage, works great for me. I also...
18
by: William Payne | last post by:
Hello, I need to write a program that opens a text file and scans the entire file for a specific line and when that line is found, a particular word on that line is to be replaced. The new word is...
2
by: GMK | last post by:
Dear all in my asp.net application i have a text file that is installed with my application on the server. this text file is filled with data through a web interface in my application. i need to...
10
by: Backwards | last post by:
Hello all, I'll start by explaining what my app does so not to confuss you when i ask my question. ☺ I have a VB.Net 2.0 app that starts a process (process.start ...) and passes a prameter...
2
by: Ellen | last post by:
Hi All - I have some data that I export from Access to a pipe-delimited text file. Unfortunately, the text file always has a carriage return symbol at the end. I need to export this file...
1
by: thescotsman | last post by:
Newbie to .net the following is the first 20 lines from a text file % different categories found in input file: frontpage news tech local opinion on-air misc weather msn-new health living %...
0
by: ghostface | last post by:
**How do I parse a textfile and edit only a certain part of it. Specifically, just the last column. My textfile looks like this. #Server Group 1...
1
by: wish | last post by:
Hello, I have problem is when i append new data in text file always append at the last of the text file. Am i can append the new data in beginning of the text file? Mean when i have update data...
0
by: rahulsapra | last post by:
hello everyone m new to j2me plzz help I have a text file that contains data line by line.. format is : response:<some text><space>Pin:<some text><space>time:<hh:mm:ss> eg response:invalid...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.