# HG changeset patch # User Tom Gottfried # Date 1383221463 -3600 # Node ID 2a2e89c015887679cbace0a94c709dcf7bc4deaa # Parent 1c365fa9d5a1a58d145ebf5d12e445584193a4db WST-Parser: Improve handling of line-endings. diff -r 1c365fa9d5a1 -r 2a2e89c01588 backend/src/main/java/org/dive4elements/river/importer/parsers/WstParser.java --- a/backend/src/main/java/org/dive4elements/river/importer/parsers/WstParser.java Thu Oct 31 11:56:45 2013 +0100 +++ b/backend/src/main/java/org/dive4elements/river/importer/parsers/WstParser.java Thu Oct 31 13:11:03 2013 +0100 @@ -381,16 +381,17 @@ i, i+colNaWidths[j]).trim(); } } - else { + else { // fetch column names from non-comment header line + // (above first Qs) // first column begins at position 8 in line for (int i = 8, col = 0; i < input.length(); i += 9) { - if ((i + 9) > input.length()) { - i = input.length() - 10; + // one column header is 9 chars wide + // but the last one may be shorter + if (col < lsBezeichner.length) { + lsBezeichner[col++] = + input.substring(i, + Math.min(i + 9, input.length())).trim(); } - // one column header is 9 chars wide - lsBezeichner[col++] = - input.substring(i, i + 9).trim(); - if (col == lsBezeichner.length) { break; } @@ -530,12 +531,8 @@ int pos = 9; for (int i = 0; i < tokenCount; ++i) { - if (line.length() >= pos + 8) { - strings.add(line.substring(pos, pos + 8)); - } - else { - strings.add(""); - } + strings.add(line.substring(pos, + Math.min(pos + 8, line.length()))); pos += 9; }