X-Git-Url: https://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fload%2FFieldGuesser.java;h=7a670968e0e460247ee002c03ce6f48a0be53b4e;hp=032874af74da8ac9dafa5ad7e36f43dbfd71bbb2;hb=ca9bdb3916f9c39adbbf95d06ac95c21dafbb4e6;hpb=63f178fd6c6b30b99a01f2a2d700963ea2dfef8b diff --git a/tim/prune/load/FieldGuesser.java b/tim/prune/load/FieldGuesser.java index 032874a..7a67096 100644 --- a/tim/prune/load/FieldGuesser.java +++ b/tim/prune/load/FieldGuesser.java @@ -80,6 +80,12 @@ public abstract class FieldGuesser fields[f] = Field.TIMESTAMP; continue; } + // check for tracksegment + if (!checkArrayHasField(fields, Field.NEW_SEGMENT) && fieldLooksLikeSegment(value, isHeader)) + { + fields[f] = Field.NEW_SEGMENT; + continue; + } } } // Fill in the rest of the fields using just custom fields @@ -270,4 +276,26 @@ public abstract class FieldGuesser return stamp.isValid(); } } + + /** + * Check whether the given String looks like a track segment field + * @param inValue value from file + * @param inIsHeader true if this is a header line, false for data + * @return true if it could be a track segment + */ + private static boolean fieldLooksLikeSegment(String inValue, boolean inIsHeader) + { + if (inValue == null || inValue.equals("")) {return false;} + if (inIsHeader) + { + String upperValue = inValue.toUpperCase(); + // This is a header line so look for english or local text + return upperValue.equals("SEGMENT"); + } + else + { + // can't reliably identify it just using the value + return false; + } + } }