Click to See Complete Forum and Search --> : Delete line feeds in text files


Kathy DuBach
April 26th, 2001, 04:33 AM
Hello,

I've searched, and I've searched. Does anyone know an easy way to delete line feeds and/or carriage returns in a text file before Line Output to another text file (which I do before importing via code into Excel or Access?)

The program I am currently working looks like this. I've been trying to delete as much extraneous stuff from a print-to-file to
the other text file as possible, but I still
have blank lines.

Sub A10_PullFromControlOfHoursReport()
'
' A01_PullFromControlOfHoursReport Macro
' Macro recorded 4/25/01 by Kathy DuBach
'
Dim strInput As String
Open "C:\MyDocs\Payroll\Pay_DCPS\OrgCd_LineNos\Printfil.001" For Input As 1
Open "C:\MyDocs\Payroll\Pay_DCPS\OrgCd_LineNos\OrgCd_LineNos.txt" For Output As 2
Do Until EOF(1)
Line Input #1, strInput
If Mid(strInput, 4, 5) <> "START" And _
Mid(strInput, 9, 1) <> " " And _
Mid(strInput, 1, 1) <> "" And _
Mid(strInput, 9, 5) <> "TOTAL" Then
Print #2, strInput
End If
Loop
Close
End Sub





Kathy DuBach at dubachk@hotmail.com

TH1
April 26th, 2001, 05:06 AM
you can use the replace function
mystring=replace(mystring,vbCR,"")
and the same for line feeds
mystring=replace(mystring,vbLF,"")

John G Duffy
April 26th, 2001, 11:04 AM
If you put a semi-Colon following your print statement, VB will not append a CRLF to the end of the line being printed. Below sample illustrates this. You will of course need to change the location of the output file

option Explicit

private Sub Command1_Click()
Dim X
Open "C:\VB Stuff\Things to look at\Junk.txt" for Output as #1
for X = 0 to 10
print #1, " Item " & X; ' Trailing semiColon
next X
Close
Unload me
End Sub




John G

Kathy DuBach
May 1st, 2001, 04:07 AM
Thanks so much. The ";" at the end of Print #2, strInput; worked for the carriage returns and line feeds. Then I discovered I also had form feeds (CHR(12) to get rid of. Fortunately, I didn't want any data in those fields.

Sub A10_PullFromControlOfHoursReport()
'
' A01_PullFromControlOfHoursReport Macro
' Macro recorded 4/25/01 by Kathy DuBach
'
Dim strInput As String
Open "C:\MyDocs\Payroll\Pay_DCPS\OrgCd_LineNos\Printfil.001" For Input As 1
Open "C:\MyDocs\Payroll\Pay_DCPS\OrgCd_LineNos\OrgCd_LineNos.txt" For Output As 2
Do Until EOF(1)
Line Input #1, strInput
If Mid(strInput, 1, 1) <> Chr(12) And _
Mid(strInput, 1, 1) <> "" And _
Mid(strInput, 1, 1) <> ["*"] And _
Mid(strInput, 1, 6) <> "REPORT" And _
Mid(strInput, 4, 5) <> "START" And _
Mid(strInput, 9, 1) <> " " And _
Mid(strInput, 9, 5) <> "TOTAL" And _
Mid(strInput, 61, 4) <> "R7.0" Then
strInput = RTrim(strInput)
Print #2, strInput;
End If
Loop
Close
End Sub


Kathy DuBach at dubachk@hotmail.com

Kathy DuBach
May 1st, 2001, 04:11 AM
I tried Replace several different ways. I'm using Excel VBA. Is it possible? How would the
line fit within my abbreviated program below?Sub A10_PullFromControlOfHoursReport()
'
' A01_PullFromControlOfHoursReport Macro
' Macro recorded 4/25/01 by Kathy DuBach
'
Dim strInput As String
Open "C:\MyDocs\Payroll\Pay_DCPS\OrgCd_LineNos\Printfil.001" For Input As 1
Open "C:\MyDocs\Payroll\Pay_DCPS\OrgCd_LineNos\OrgCd_LineNos.txt" For Output As 2
Do Until EOF(1)
Line Input #1, strInput
If Mid(strInput, 1, 1) <> Chr(12) And _
Mid(strInput, 61, 4) <> "R7.0" Then
strInput = RTrim(strInput)
Print #2, strInput
End If
Loop
Close
End Sub



Kathy DuBach at dubachk@hotmail.com

John G Duffy
May 1st, 2001, 07:47 AM
Glad I could help. I don't know where the FromFeed is coming from, VB doesn't do that one but they can be gotten rid of by using the Replace function like so

private Sub Command1_Click()
Dim strStr as string
strStr = "Hello" & Chr(12) & " There"
print strStr
strStr = Replace(strStr, Chr(12), " ", 1)
print strStr
End Sub




John G

John G Duffy
May 1st, 2001, 07:51 AM
See my latest append for a sample of Replace function and put the Replace immediately after your Line Input like so

strInput = Replace(strInput,chr(12)," ",1)




John G