Ejemplo n.º 1
0
        /// <summary>
        /// 获取一个项目类
        /// </summary>
        /// <param name="projectnode">xml项目节点</param>
        ///  /// <param name="dictionary">上级目录</param>
        /// <returns></returns>
        protected ProjectClass GetProjectClass(XmlElement projectnode, string dictionary)
        {
            string       name = projectnode.GetAttribute("ProjectName");
            ProjectClass pro  = new ProjectClass(this.ProjectLanguage);

            pro.RootPath       = dictionary;
            pro.OutPath        = dictionary + "bin//Debug//";
            pro.FilesPath      = dictionary;
            pro.ConfigFilePath = dictionary + name;
            pro.ProjectName    = name;
            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(pro.ConfigFilePath);
            XmlElement rootElenemts = (XmlElement)xmlDoc.SelectSingleNode("Config");
            //pro.ProjectName = rootElenemts.GetAttribute("ProjectName");
            XmlNodeList ProjectFileNodelist = rootElenemts.SelectNodes("ProjectFile");

            foreach (XmlElement enemt in ProjectFileNodelist)
            {
                ///获取文件名
                string filename            = enemt.GetAttribute("FileName");
                PicTransfromXmlFile transf = new PicTransfromXmlFile();
                pro.AddPicTabPage(transf.XmlToPic(dictionary + filename));
            }
            ///保存关闭文件
            xmlDoc.Save(pro.ConfigFilePath);
            ///设置项目语言
            pro.Language = this.ProjectLanguage;
            return(pro);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 添加一个项目文件
 /// </summary>
 /// <param name="pro">要添加的项目类</param>
 public void AddProjectClass(ProjectClass pro)
 {
     if (!MySolution.Contains(pro))
     {
         MySolution.Add(pro);
         MyProjectFiles file = new MyProjectFiles();
         file.Name = pro.ProjectName;
         file.Path = pro.FilesPath;
         MyProjectClassFile.Add(file);
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 删除一个项目
 /// </summary>
 /// <param name="pro">要删除的项目</param>
 public void DelProjectClass(ProjectClass pro)
 {
     if (MySolution.Contains(pro))
     {
         MySolution.Remove(pro);
         foreach (MyProjectFiles file in MyProjectClassFile)
         {
             if (file.Name == pro.ProjectName)
             {
                 MyProjectClassFile.Remove(file);
             }
         }
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 编译代码
        /// </summary>
        /// <returns></returns>
        public string Editor()
        {
            string EditorMessage = "";

            ///如果是C#代码
            if (ProjectLanguage == "C#")
            {
                if (MyProjectClassFile.Count == 0)
                {
                    MessageBox.Show("还没有创建任何项目!");
                    return(EditorMessage = "error");
                }
                ///编译所有的项目
                for (int nowcount = 0; nowcount < MySolution.Count; nowcount++)
                {
                    ProjectClass         proclass   = MySolution[nowcount];
                    string[]             CodeString = new string[proclass.MyListPicPage.Count];
                    int                  i          = 0;
                    XPicCodeToCSharpCode codeEditor = new XPicCodeToCSharpCode(proclass.ProjectName);
                    foreach (PicTabPage page in proclass.MyListPicPage.Values)
                    {
                        CodeString[i] = codeEditor.XPicCodeEditor(page);
                    }
                    string ErrorString = "";
                    CodeDestoryClass.AnalyTicalCode(CodeString, out ErrorString, proclass.OutPath, proclass.GetDllFilePathString(), proclass.ProjectName);
                    EditorMessage += ErrorString + "\r\n";
                }
            }
            else if (ProjectLanguage == "C")
            {
                if (MyProjectClassFile.Count == 0)
                {
                    MessageBox.Show("还没有创建任何项目!");
                    return(EditorMessage = "error");
                }

                ProjectClass             proclass   = GetFirstProject();
                string                   CodeString = "";
                XPicCodeToCLanguagesCode codeEditor = new XPicCodeToCLanguagesCode(proclass.ProjectName);
                CodeString = codeEditor.XPicCodeEditor(proclass.GetFirstPicTabPage());
                string ErrorString = "";
                CodeDestoryClass.AnalyTicalCode(CodeString, out ErrorString, proclass.OutPath, proclass.ProjectName);
                EditorMessage += ErrorString + "\r\n";
            }
            return(EditorMessage);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 获取翻译后的代码
        /// </summary>
        /// <returns>返回翻译后的代码</returns>
        private string[] GetCode()
        {
            ///如果是C#代码
            if (ProjectLanguage == "C#")
            {
                if (MyProjectClassFile.Count == 0)
                {
                    MessageBox.Show("还没有创建任何项目!");
                    return(null);
                }
                ///编译所有的项目
                for (int nowcount = 0; nowcount < MySolution.Count; nowcount++)
                {
                    ProjectClass         proclass   = MySolution[nowcount];
                    string[]             CodeString = new string[proclass.MyListPicPage.Count];
                    int                  i          = 0;
                    XPicCodeToCSharpCode codeEditor = new XPicCodeToCSharpCode(proclass.ProjectName);
                    foreach (PicTabPage page in proclass.MyListPicPage.Values)
                    {
                        CodeString[i] = codeEditor.XPicCodeEditor(page);
                    }
                    return(CodeString);
                }
                return(null);
            }
            else if (ProjectLanguage == "C")
            {
                if (MyProjectClassFile.Count == 0)
                {
                    MessageBox.Show("还没有创建任何项目!");
                    return(null);
                }

                ProjectClass             proclass   = GetFirstProject();
                string []                CodeString = new string[1];
                XPicCodeToCLanguagesCode codeEditor = new XPicCodeToCLanguagesCode(proclass.ProjectName);
                CodeString[0] = codeEditor.XPicCodeEditor(proclass.GetFirstPicTabPage());
                return(CodeString);
            }
            else
            {
                return(null);
            }
        }