Throw an error if the named column requested does not actually exist.
authorrich <rich>
Fri, 24 Nov 2006 13:58:56 +0000 (13:58 +0000)
committerrich <rich>
Fri, 24 Nov 2006 13:58:56 +0000 (13:58 +0000)
Makefile.config
csvtool.ml

index a3f90cc..e892686 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.config,v 1.1 2006-11-24 09:43:15 rich Exp $
+# $Id: Makefile.config,v 1.2 2006-11-24 13:58:56 rich Exp $
 
 PACKAGE                := ocaml-csv
-VERSION                := 1.1.3
+VERSION                := 1.1.4
index edfaedd..a046956 100644 (file)
@@ -1,5 +1,5 @@
 (* Handy tool for managing CSV files.
- * $Id: csvtool.ml,v 1.6 2006-11-24 10:09:56 rich Exp $
+ * $Id: csvtool.ml,v 1.7 2006-11-24 13:58:56 rich Exp $
  *)
 
 open Printf
@@ -153,6 +153,14 @@ let cmd_namedcols ~input_sep ~output_sep ~chan names files =
        match csv with
        | [] -> failwith "no rows in this CSV file"
        | h :: t -> h, t in
+      (* Do the headers requested exist in the CSV file?  If not,
+       * throw an error.
+       *)
+      List.iter (
+        fun name ->
+         if not (List.mem name header) then
+           failwith ("namedcol: requested header not in CSV file: " ^ name)
+      ) names;
       let data = associate header data in
       let data = List.map (
        fun row -> List.map (fun name -> List.assoc name row) names