diff --git a/PROMS/XYPlots/XYPlots.cs b/PROMS/XYPlots/XYPlots.cs index 3d40b215..4d44efae 100644 --- a/PROMS/XYPlots/XYPlots.cs +++ b/PROMS/XYPlots/XYPlots.cs @@ -333,6 +333,37 @@ namespace XYPlots retval = Convert.ToInt32(NextPiece(), 10); return retval; } + // A 'special' isWhiteSpaceDelta, NextPieceDelta, and getdoubleDelta was added because Wolf Creek + // has a ',' between the x/y delta of one of their plots (C-1). + // this was causing the x delta to be set to 50,250. + private bool isWhiteSpaceDelta(char cptr) + { + bool rtnval = false; + if (!cptr.Equals(null)) + { + int idx = "\t\n\r\f ,".IndexOf(cptr); + rtnval = (idx > -1); + } + return rtnval; + } + private string NextPieceDelta() + { + string rtnval; + int ptr; + while (BuffPtr >= 0 && Buff[BuffPtr] != 0 && isWhiteSpaceDelta(Buff[BuffPtr])) BuffPtr++; + ptr = BuffPtr; + while (BuffPtr >= 0 && Buff[BuffPtr] != 0 && !isWhiteSpaceDelta(Buff[BuffPtr])) BuffPtr++; + if (EndOfCommand()) EndFlag = 1; + rtnval = Buff.Substring(ptr, BuffPtr - ptr); + BuffPtr++; + return rtnval; + } + private double getdoubleDelta() + { + double retval; + retval = Convert.ToDouble(NextPieceDelta()); + return retval; + } private double getdouble() { double retval; @@ -457,8 +488,8 @@ namespace XYPlots maximum[Y] = getdouble(); type[X] = getchr(); type[Y] = getchr(); - if (EndFlag == 0) delta[X] = getdouble(); - if (EndFlag == 0) delta[Y] = getdouble(); + if (EndFlag == 0) delta[X] = getdoubleDelta(); + if (EndFlag == 0) delta[Y] = getdoubleDelta(); if (EndFlag == 0) spcminor[X] = getint(); if (EndFlag == 0) spcminor[Y] = getint(); Offset[USER, X] = 0;