checkSepHint method

(String, String?) checkSepHint(
  1. String input
)

Check for Excel sep=X hint on first line. Returns (remaining string, detected delimiter or null).

Implementation

(String, String?) checkSepHint(String input) {
  if (input.length < 5) return (input, null);

  // Look for sep=X followed by newline
  if (input.startsWith('sep=')) {
    final newlineIdx = input.indexOf('\n');
    final crIdx = input.indexOf('\r');
    final endIdx =
        crIdx >= 0 && crIdx < (newlineIdx < 0 ? input.length : newlineIdx)
        ? crIdx
        : newlineIdx;

    if (endIdx > 4) {
      final delimiter = input.substring(4, endIdx);
      var remaining = input.substring(endIdx);
      // Skip the newline(s)
      if (remaining.startsWith('\r\n')) {
        remaining = remaining.substring(2);
      } else if (remaining.startsWith('\r') || remaining.startsWith('\n')) {
        remaining = remaining.substring(1);
      }
      return (remaining, delimiter);
    }
  }
  return (input, null);
}