Beispiel #1
0
        void DoParse()
        {
            string tString = curString.ToString();

            if (curPos == RMGenFile.FileNameInfo.Type)
            {
                Part = Part.ParseLowerCaseString(tString);
            }
            else if (curPos == RMGenFile.FileNameInfo.BaseOrder)
            {
                int tInt;
                if (int.TryParse(tString, out tInt))
                {
                    BaseOrder = tInt;
                }
                curPos = RMGenFile.FileNameInfo.Position;
            }
            else if (curPos == RMGenFile.FileNameInfo.Position)
            {
                int tInt;
                if (int.TryParse(tString, out tInt))
                {
                    Position = tInt;
                }
                curPos = RMGenFile.FileNameInfo.Waiting;
            }
            else if (curPos == RMGenFile.FileNameInfo.Order)
            {
                int tInt;
                if (int.TryParse(tString, out tInt))
                {
                    Order = tInt;
                }
                else
                {
                    IsAcFile = true;
                }
                curPos = RMGenFile.FileNameInfo.Waiting;
            }
            else if (curPos == RMGenFile.FileNameInfo.Colour)
            {
                int tInt;
                if (int.TryParse(tString, out tInt))
                {
                    Colour = tInt;
                }
                curPos = RMGenFile.FileNameInfo.Waiting;
            }
            curString = new StringBuilder();
        }
Beispiel #2
0
 public TempGenFileNameParsed(string fileName, int startAt)
 {
     curPos = RMGenFile.FileNameInfo.Type;
     char[] characters = fileName.ToCharArray();
     curString = new StringBuilder();
     for (int i = startAt; i < characters.Length; ++i)
     {
         char charCache = characters[i];
         if (charCache == RMPConstants.GenFileNamePrefixANDSuffix.SEPARATOR)
         {
             DoParse();
             if (curPos == RMGenFile.FileNameInfo.Type)
             {
                 curPos = RMGenFile.FileNameInfo.Position;
             }
             continue;
         }
         else if (charCache == '.')
         {
             DoParse();
             break;
         }
         else if (curPos == RMGenFile.FileNameInfo.Type && char.IsNumber(charCache))
         {
             DoParse();
             curPos = RMGenFile.FileNameInfo.BaseOrder;
         }
         else if (curPos == RMGenFile.FileNameInfo.Position && charCache == RMPConstants.GenFileNamePrefixANDSuffix.POSITION)
         {
             continue;
         }
         else if (curPos == RMGenFile.FileNameInfo.Waiting)
         {
             if (charCache == RMPConstants.GenFileNamePrefixANDSuffix.COLOUR)
             {
                 curPos = RMGenFile.FileNameInfo.Colour;
                 continue;
             }
             else if (charCache == RMPConstants.GenFileNamePrefixANDSuffix.ORDER)
             {
                 curPos = RMGenFile.FileNameInfo.Order;
                 continue;
             }
         }
         curString.Append(charCache);
     }
 }
Beispiel #3
0
 static void VerifyFile(TempGenFileNameParsed whichFile, string path, RMGenFile.FileNameInfo requires = RMGenFile.FileNameInfo.Type | RMGenFile.FileNameInfo.Position)
 {
     if (requires.HasFlag(RMGenFile.FileNameInfo.Type) && whichFile.Part == RMGenPart.GenPartType.None)
     {
         throw new ImplicitInvalidGeneratorPartException(ExceptionMessages.RMPackage.GEN_FILE_NO_TYPE, ImplicitInvalidGeneratorPartException.WhichInvalid.Type, path);
     }
     else if (requires.HasFlag(RMGenFile.FileNameInfo.BaseOrder) && whichFile.BaseOrder == 0)
     {
         throw new ImplicitInvalidGeneratorPartException(ExceptionMessages.RMPackage.GEN_FILE_NO_HIGH_ORDER, ImplicitInvalidGeneratorPartException.WhichInvalid.BaseOrder, path);
     }
     else if (requires.HasFlag(RMGenFile.FileNameInfo.Colour) && whichFile.Colour == 0)
     {
         throw new ImplicitInvalidGeneratorPartException(ExceptionMessages.RMPackage.GEN_FILE_NO_COLOUR, ImplicitInvalidGeneratorPartException.WhichInvalid.Colour, path);
     }
     else if (requires.HasFlag(RMGenFile.FileNameInfo.Order) && whichFile.Order == 0)
     {
         throw new ImplicitInvalidGeneratorPartException(ExceptionMessages.RMPackage.GEN_FILE_NO_LOW_ORDER, ImplicitInvalidGeneratorPartException.WhichInvalid.Order, path);
     }
     else if (requires.HasFlag(RMGenFile.FileNameInfo.Position) && whichFile.Position < 0)
     {
         throw new ImplicitInvalidGeneratorPartException(ExceptionMessages.RMPackage.GEN_FILE_NO_POS, ImplicitInvalidGeneratorPartException.WhichInvalid.Position, path);
     }
 }