ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Alternative to ...For Input As #1 (https://www.excelbanter.com/excel-programming/313403-alternative-input-1-a.html)

Red

Alternative to ...For Input As #1
 
I need to open FileA, read through it line by line, parse the data, and
output line by line to FileB. (Both text files)

I'd usually use

Open FileA For Input As #1
Open FileB For Output As #2
Do While Not EOF(1)
Input #1, F1, F2, F3
...various code...
Print #2, F4, F5, F6
Loop
Close #1
Close #2

This works fine with csv files. However, one of the files I need to parse
is + delimeted. Example:

11+6146348+DOC+997+NEW+20041011+124155+REPRINT+

Is there a simple alternative to the above that will work with +? Or will I
have to use

Line Input #1, textLine

and write code to chop up textLine each loop. The fields in FileA are
variable lengths, and the records are longer than the example shown above.
Any suggestions that will save me a lot of time?

Many TIA,

Red.

Tom Ogilvy

Alternative to ...For Input As #1
 
If you have Excel 2000 or later, you can use the split command to "chop up"
the textline

varr = Split(Textline,"+")

for i = lbound(Varr) to ubound(varr)

Next i

Also look at the join function (it is the reverse of Split). You can built
an output array and then use join to convert it to a delimited string (as
long as your string elements don't contain the delimiter ).

--
Regards,
Tom Ogilvy



"Red" wrote in message
...
I need to open FileA, read through it line by line, parse the data, and
output line by line to FileB. (Both text files)

I'd usually use

Open FileA For Input As #1
Open FileB For Output As #2
Do While Not EOF(1)
Input #1, F1, F2, F3
...various code...
Print #2, F4, F5, F6
Loop
Close #1
Close #2

This works fine with csv files. However, one of the files I need to parse
is + delimeted. Example:

11+6146348+DOC+997+NEW+20041011+124155+REPRINT+

Is there a simple alternative to the above that will work with +? Or will

I
have to use

Line Input #1, textLine

and write code to chop up textLine each loop. The fields in FileA are
variable lengths, and the records are longer than the example shown above.
Any suggestions that will save me a lot of time?

Many TIA,

Red.




Red

Alternative to ...For Input As #1
 
"Tom Ogilvy" wrote:

If you have Excel 2000 or later, you can use the split command to "chop up"
the textline


Perfect.

Also look at the join function (it is the reverse of Split).


Thanks Tom! You've saved me a lot of coding!

Red.


an output array and then use join to convert it to a delimited string (as
long as your string elements don't contain the delimiter ).

--
Regards,
Tom Ogilvy



"Red" wrote in message
...
I need to open FileA, read through it line by line, parse the data, and
output line by line to FileB. (Both text files)

I'd usually use

Open FileA For Input As #1
Open FileB For Output As #2
Do While Not EOF(1)
Input #1, F1, F2, F3
...various code...
Print #2, F4, F5, F6
Loop
Close #1
Close #2

This works fine with csv files. However, one of the files I need to parse
is + delimeted. Example:

11+6146348+DOC+997+NEW+20041011+124155+REPRINT+

Is there a simple alternative to the above that will work with +? Or will

I
have to use

Line Input #1, textLine

and write code to chop up textLine each loop. The fields in FileA are
variable lengths, and the records are longer than the example shown above.
Any suggestions that will save me a lot of time?

Many TIA,

Red.






All times are GMT +1. The time now is 02:07 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com