In many cases tables are stored in some sort of unstructured plain
text format, with cells separated by spaces or some other delimiters.
The AsciiTableBuilder
class attempts to read these and interpret what's there
in sensible ways, but since there are so
many possibilities of different delimiters and formats for exactly
how values are specified, it won't always succeed.
Here are the rules for how the ASCII-format table handler reads tables:
null (unquoted) represents
the null valueBoolean,
Short
Integer,
Long,
Float,
Double,
String
If the list of rules above looks frightening, don't worry, in many cases it ought to make sense of a table without you having to read the small print. Here is an example of a suitable ASCII-format table:
#
# Here is a list of some animals.
#
# RECNO SPECIES NAME LEGS HEIGHT/m
1 pig "Pigling Bland" 4 0.8
2 cow Daisy 4 2
3 goldfish Dobbin "" 0.05
4 ant "" 6 0.001
5 ant "" 6 0.001
6 ant '' 6 0.001
7 "queen ant" 'Ma\'am' 6 2e-3
8 human "Mark" 2 1.8
In this case it will identify the following columns:
Name Type
---- ----
RECNO Integer
SPECIES String
NAME String
LEGS Integer
HEIGHT/m Float
It will also use the text "Here is a list of some animals"
as the Description parameter of the table.
Without any of the comment lines, it would still interpret the table,
but the columns would be given the names col1..col5.
If you understand the format of your files but they don't exactly
match the criteria above, the best thing is probably to write a
simple free-standing program or script which will convert them
into the format described here.
You may find Perl, awk or sed suitable languages for this sort of thing.
Alternatively, you could write a new input handler as explained in
Section 3.1 - you may find it easiest to subclass
the uk.ac.starlink.table.formats.StreamStarTable class
in this case.