code: def parse_data_line(self, sline):
          
          # if there are less values founded than headers, it's an error
          if len(sline) != len(self._columns):
              self.err("One data line has the wrong number of items")
              return -1
  
          rawdict = {}
          for idx, result in enumerate(sline):
              rawdict[self._columns[idx]] = result
          # Getting resid
          resid = rawdict['Sample name']
          del rawdict['Sample name']
          # Getting date
          rawdict['DateTime'] = self.csvDate2BikaDate(rawdict['Date'], rawdict['Time'])
          del rawdict['Date']
          del rawdict['Time']
          # Getting remarks
          rawdict['Remarks'] = rawdict['Remark']
          del rawdict['Remark']
          # Getting errors
          rawdict['Error'] = rawdict['Error/Warning']
          if rawdict['Error/Warning']:
              self.warn('Analysis warn', numline=self._numline)
          del rawdict['Error/Warning']
  
          rawdict['DefaultResult'] = 'Concentration'
          self._addRawResult(resid,
                            {rawdict['Parameter'].replace(' ', ''): rawdict},
                             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