Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > microsoft.public.scripting.vbscript > #11452

Re: vb script to read csv file and put each value (column) in separate text file

From "Dave \"Crash\" Dummy" <invalid@invalid.invalid>
Newsgroups microsoft.public.scripting.vbscript
Subject Re: vb script to read csv file and put each value (column) in separate text file
Date 2016-11-29 11:20 -0500
Organization A noiseless patient Spider
Message-ID <o1k9ph$gp$1@dont-email.me> (permalink)
References <6ad41c22-4e5c-4633-811a-c3a027deaeef@googlegroups.com>

Show all headers | View raw


Christian Ort wrote:
> Hello,
> I'm looking for a small script that is able to split a csv file into multiple text files.
> 
> e.g. I've a file "Input.csv" that contains this data:
> LA2405w,CN12345678
> L2245w,CNU9876543
> etc,etc
> 
> The output should be 4 or more files, each file containing one column of the csv.
> e.g.:
> Output1.txt
>    LA2405w
> 
> Output2.txt
>   CN12345678
> 
> Output3.txt
>   L2245w
> 
> Output4.txt
>   CNU9876543
> 
> 
> I've so far this script that is working will for the first line in the csv, but all following lines getting ignored.
> 
> 
> Option Explicit
> 'On error resume next
> Dim goFS  : Set goFS  = CreateObject( "Scripting.FileSystemObject" )
> Dim aParts : aParts = split(goFS.OpenTextFile("./Input.txt").ReadLine(), ",")
> Dim nF
> For nF = 0 To UBound(aParts)
> goFS.CreateTextFile(".\Output" & (NF + 1) &".txt").Write aParts(nF)
> Next
> 
> 
> How can I modify that script to also parse the other lines from Input.csv?
> 
> Thanks for any ideas.

Here's how I'd do it. Nothing fancy, just one step at a time.

set fso=CreateObject("Scripting.FileSystemObject")
set inFile=fso.OpenTextFile("input.txt")
csv=inFile.readAll
inFile.close
set inFile=nothing

rows=split(csv,vbCRLF)
cols=split(rows(0),",")
dim heads()
redim heads(ubound(cols))

for n=0 to ubound(cols)
	set heads(n)=fso.CreateTextFile("Output" & n & ".txt")
next

for m=0 to ubound(rows)
	if len(rows(m)) then
	for n=0 to ubound(cols)
		heads(n).writeLine split(rows(m),",")(n)
	next
	end if
next

for n=0 to ubound(cols)
	heads(n).close	
	set heads(n)=nothing
next

-- 
Crash

To understand evolution, study statistics, not biology.

Back to microsoft.public.scripting.vbscript | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

vb script to read csv file and put each value (column) in separate text file Christian Ort <christian.ort@gmail.com> - 2016-11-29 07:09 -0800
  Re: vb script to read csv file and put each value (column) in separate text file "Dave \"Crash\" Dummy" <invalid@invalid.invalid> - 2016-11-29 11:20 -0500
    Re: vb script to read csv file and put each value (column) in separate text file Christian Ort <christian.ort@gmail.com> - 2016-11-29 09:03 -0800
      Re: vb script to read csv file and put each value (column) in separate text file "Dave \"Crash\" Dummy" <invalid@invalid.invalid> - 2016-11-29 13:40 -0500
        Re: vb script to read csv file and put each value (column) in separate text file "Dave \"Crash\" Dummy" <invalid@invalid.invalid> - 2016-11-29 16:52 -0500
          Re: vb script to read csv file and put each value (column) in separate text file Christian Ort <christian.ort@gmail.com> - 2016-11-30 02:37 -0800
  Re: vb script to read csv file and put each value (column) in separatetext file "R.Wieser" <address@not.available> - 2016-11-29 18:35 +0100

csiph-web