Пример #1
0
        ///
        ///	 * returns the next Object (<seealso cref= the constructor), null if the string has been completely parsed or an invalid
        ///	 * format is scanned </seealso>
        ///
        private object next()
        {
            if (!MoveNext())
            {
                return(null);
            }
            string      fmtString = (string)vFmt[pos++];
            ScanfFormat fmt       = new ScanfFormat(fmtString);

            try
            {
                if ("dxoi".IndexOf((char)fmt.type) >= 0)
                {
                    return(scanInt(fmt)); //new int(scanInt(fmt));
                }
                if ("f".IndexOf((char)fmt.type) >= 0)
                {
                    return(scanDouble(fmt)); // new double(scanDouble(fmt));
                }
                return(scanString(fmt));
            }
            catch (ArgumentException)
            {
                pos = 999999;
                return(null);
            }
            catch (IOException)
            {
                pos = 999999;
                return(null);
            }
        }
Пример #2
0
 //
 //	 * (non-Javadoc)
 //	 *
 //	 * @see org.cip4.jdflib.cformat.ScanfReader#scanDouble(org.cip4.jdflib.cformat .ScanfFormat)
 //
 public override double scanDouble(ScanfFormat fmt)
 {
     if ("dxoi".IndexOf((char)fmt.type) >= 0) // also gracefully handle int as
     // double
     {
         return(scanLong(fmt));
     }
     return(base.scanDouble(fmt));
 }
Пример #3
0
 //
 //	 * (non-Javadoc)
 //	 *
 //	 * @see org.cip4.jdflib.cformat.ScanfReader#scanString(org.cip4.jdflib.cformat .ScanfFormat)
 //
 public override string scanString(ScanfFormat fmt)
 {
     if ("di".IndexOf((char)fmt.type) >= 0) // also gracefully handle int as double
     {
         return(Convert.ToString(scanLong(fmt), 10));
     }
     if ("o".IndexOf((char)fmt.type) >= 0) // also gracefully handle int as double
     {
         return(Convert.ToString(scanLong(fmt), 8));
     }
     if ("x".IndexOf((char)fmt.type) >= 0) // also gracefully handle int as double
     {
         return(Convert.ToString(scanLong(fmt), 16));
     }
     if ("f".IndexOf((char)fmt.type) >= 0) // also gracefully handle int as double
     {
         return(Convert.ToString(scanDouble(fmt)));
     }
     if ("c".IndexOf((char)fmt.type) >= 0) // also gracefully handle int as double
     {
         return(new string(scanChars(fmt)));
     }
     return(base.scanString(fmt));
 }