Skip to content

Instantly share code, notes, and snippets.

@d33tah
Last active July 4, 2017 17:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save d33tah/04bf11ff94925f0c5e18b8e2b15fd246 to your computer and use it in GitHub Desktop.
Save d33tah/04bf11ff94925f0c5e18b8e2b15fd246 to your computer and use it in GitHub Desktop.
use std::error::Error;
use std::process;
use std::fs::File;
use std::io;
use std::io::Write;
use std::io::BufWriter;
extern crate csv;
fn run() -> Result<(), Box<Error>> {
let mut open_files: Vec<BufWriter<File>> = Vec::new();
let mut max_file = 0;
let mut rdr = csv::ReaderBuilder::new().has_headers(false).from_reader(io::stdin());
for result in rdr.records() {
let record = result?;
for i in max_file..record.len() {
open_files.push(BufWriter::new(File::create(i.to_string())?));
}
max_file = record.len();
for (i, item) in record.iter().enumerate() {
open_files[i].write_fmt(format_args!("{}\n", &record[i]))?;
}
}
Ok(())
}
fn main() {
if let Err(err) = run() {
println!("{}", err);
process::exit(1);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment