code: def parse_data_line(self, sline):
          
          # if there are less values founded than headers, it's an error
          if len(sline[4:]) != len(self._columns):
              self.err("One data line has the wrong number of items")
              return -1
  
          resid = sline[0]
          analysis = {}
          date = sline[3]
          if sline[0] in self.extrainfolist:
              return 0
          for idx, result in enumerate(sline[4:]):
              if result != '':
                  analysis[self._columns[idx]] = {
                      'result': result,
                      'DefaultResult': 'result',
                      'DateTime': date,
                  }
          self._addRawResult(resid, analysis, False)
          return 0
docs: Parses the data line and builds the dictionary.
          :param sline: a split data line to parse
          :returns: the number of rows to jump and parse the next data line or return the code error -1