示例#1
0
        public CANDatabase ParseFile(FileModel file, ParsingArguments arguments)
        {
            string      line;
            CANDatabase dbcObject = new CANDatabase();

            dbcObject.Name     = file.Name;
            dbcObject.Messages = new List <Message>();

            using FileStream fileStream = File.OpenRead(file.Location);
            using var streamReader      = new StreamReader(fileStream);

            while ((line = streamReader.ReadLine()) != null)
            {
                if (LinePrefix.CheckLine(line, "BU_"))
                {
                    dbcObject.NetworkNodes = NetworkNodeParser.ParseLine(line);
                }
                else if (LinePrefix.CheckLine(line, "BO_"))
                {
                    Message message = MessageParser.ParseLine(line, arguments.Messages);

                    dbcObject.Messages.Add(message);
                }
                else if (LinePrefix.CheckLine(line, " SG_"))
                {
                    Signal signal = SignalParser.ParseLine(line, arguments.Signals);

                    int indexOfLast = dbcObject.Messages.Count - 1;
                    dbcObject.Messages[indexOfLast].Signals.Add(signal);
                }
            }
            return(dbcObject);
        }
示例#2
0
        /// <summary>
        /// Adds the new prefix.
        /// <example>
        /// <code>
        /// Add(@"IF (NOT EXISTS(SELECT OrganizationId FROM Organizations WHERE OrganizationId=777))");
        /// using (NewPrefix("\t", "BEGIN", "END"))
        /// {
        ///     Add("INSERT INTO Organizations (OrganizationId, OrganizationName) VALUES (777,'{0}')", "Some Organization");
        /// }
        /// </code>
        /// </example>
        /// </summary>
        /// <param name="prefix">The prefix.</param>
        /// <param name="groupPrefix">The group prefix.</param>
        /// <param name="groupPostfix">The group postfix.</param>
        /// <returns></returns>
        protected IDisposable NewPrefix(string prefix, string groupPrefix, string groupPostfix)
        {
            Add(groupPrefix);

            Prefix = new LinePrefix(this, prefix, groupPostfix);
            return(Prefix);
        }
示例#3
0
        public static string GetLinePrefixText(LinePrefix prefix)
        {
            switch (prefix)
            {
            case LinePrefix.Comment:
                return(CommentLinePrefix);

            case LinePrefix.MetaData:
                return(MetaDataLinePrefix);

            case LinePrefix.PeptideData:
                return(PeptideDataLinePrefix);

            case LinePrefix.PeptideTable:
                return(PeptideTableLinePrefix);

            case LinePrefix.ProteinData:
                return(ProteinDataLinePrefix);

            case LinePrefix.ProteinTable:
                return(ProteinTableLinePrefix);

            case LinePrefix.PsmData:
                return(PsmDataLinePrefix);

            case LinePrefix.PsmTable:
                return(PsmTableLinePrefix);

            case LinePrefix.SmallMoleculeData:
                return(SmallMoleculeDataLinePrefix);

            case LinePrefix.SmallMoleculeTable:
                return(SmallMoleculeTableLinePrefix);
            }
            throw new Exception("Shouldn't be able to get here");
        }
示例#4
0
 public static string GetLinePrefixText(LinePrefix prefix)
 {
     switch (prefix)
     {
         case LinePrefix.Comment:
             return CommentLinePrefix;
         case LinePrefix.MetaData:
             return MetaDataLinePrefix;
         case LinePrefix.PeptideData:
             return PeptideDataLinePrefix;
         case LinePrefix.PeptideTable:
             return PeptideTableLinePrefix;
         case LinePrefix.ProteinData:
             return ProteinDataLinePrefix;
         case LinePrefix.ProteinTable:
             return ProteinTableLinePrefix;
         case LinePrefix.PsmData:
             return PsmDataLinePrefix;
         case LinePrefix.PsmTable:
             return PsmTableLinePrefix;
         case LinePrefix.SmallMoleculeData:
             return SmallMoleculeDataLinePrefix;
         case LinePrefix.SmallMoleculeTable:
             return SmallMoleculeTableLinePrefix;
     }
     throw new Exception("Shouldn't be able to get here");
 }