Attribute values for each instance of the data section are always delimited by commas (ARFF developer version):
Each instance is represented on a single line, with carriage returns denoting the end of the instance. A percent sign (%) introduces a comment, which continues to the end of the line.
Attribute values for each instance are delimited by commas. A comma may be followed by zero or more spaces. Attribute values must appear in the order in which they were declared in the header section (i.e., the data corresponding to the nth @attribute declaration is always the nth field of the attribute).
A missing value is represented by a single question mark
In a similar situation I found weka-convert (a Python command line utility) very useful.