@@ -451,7 +451,7 @@ void AngReader::readData(QFile& in, QByteArray& buf)
451451 {
452452 ss.string ()->clear ();
453453
454- ss << " Error parsing the data line. \n "
454+ ss << " Error parsing the data line (Numeric conversion). Error code is " << getErrorCode () << " and occurred at data column " << m_ErrorColumn << " (Zero Based) \n "
455455 << buf << " \n *** Header information ***\n Rows=" << numRows << " EvenCols=" << nEvenCols << " OddCols=" << nOddCols << " Calculated Data Points: " << totalDataPoints
456456 << " \n ***Parsing Position ***\n Current Row: " << yChange << " Current Column Index: " << col << " Current Data Point Count: " << counter << " \n " ;
457457 setErrorMessage (*(ss.string ()));
@@ -663,6 +663,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
663663 * Some TSL ang files do NOT have all 10 columns. Assume these are lacking the last
664664 * 2 columns and all the other columns are the same as above.
665665 */
666+ m_ErrorColumn = 0 ;
666667 float p1 = 0 .0f , p = 0 .0f , p2 = 0 .0f , x = -1 .0f , y = -1 .0f , iqual = -1 .0f , conf = -1 .0f , semSignal = -1 .0f , fit = -1 .0f ;
667668 int ph = 0 ;
668669 size_t offset = 0 ;
@@ -675,6 +676,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
675676 if (!ok)
676677 {
677678 setErrorCode (-2501 );
679+ m_ErrorColumn = 0 ;
678680 }
679681 m_Phi1[offset] = p1;
680682 }
@@ -684,6 +686,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
684686 if (!ok)
685687 {
686688 setErrorCode (-2502 );
689+ m_ErrorColumn = 1 ;
687690 }
688691 m_Phi[offset] = p;
689692 }
@@ -693,6 +696,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
693696 if (!ok)
694697 {
695698 setErrorCode (-2503 );
699+ m_ErrorColumn = 2 ;
696700 }
697701 m_Phi2[offset] = p2;
698702 }
@@ -702,6 +706,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
702706 if (!ok)
703707 {
704708 setErrorCode (-2504 );
709+ m_ErrorColumn = 3 ;
705710 }
706711 m_X[offset] = x;
707712 }
@@ -711,6 +716,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
711716 if (!ok)
712717 {
713718 setErrorCode (-2505 );
719+ m_ErrorColumn = 4 ;
714720 }
715721 m_Y[offset] = y;
716722 }
@@ -720,6 +726,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
720726 if (!ok)
721727 {
722728 setErrorCode (-2506 );
729+ m_ErrorColumn = 5 ;
723730 }
724731 m_Iq[offset] = iqual;
725732 }
@@ -729,6 +736,7 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
729736 if (!ok)
730737 {
731738 setErrorCode (-2507 );
739+ m_ErrorColumn = 6 ;
732740 }
733741 m_Ci[offset] = conf;
734742 }
@@ -738,18 +746,29 @@ void AngReader::parseDataLine(QByteArray& line, size_t i)
738746 if (!ok)
739747 {
740748 setErrorCode (-2508 );
749+ m_ErrorColumn = 7 ;
741750 }
742751 m_PhaseData[offset] = ph;
743752 }
744-
753+
745754 if (tokens.size () >= 9 )
746755 {
747756 semSignal = tokens[8 ].toFloat (&ok);
757+ if (!ok)
758+ {
759+ setErrorCode (-2509 );
760+ m_ErrorColumn = 8 ;
761+ }
748762 m_SEMSignal[offset] = semSignal;
749763 }
750764 if (tokens.size () >= 10 )
751765 {
752766 fit = tokens[9 ].toFloat (&ok);
767+ if (!ok)
768+ {
769+ setErrorCode (-2510 );
770+ m_ErrorColumn = 9 ;
771+ }
753772 m_Fit[offset] = fit;
754773 }
755774}
0 commit comments