调试“CAD电子文件收集系统”中的bug(关于应用程序域和时间格式)

     最近刚完成“CAD电子文件收集系统”,在调试期间遇到了一个问题,搞的我焦头烂额,最后终于搞定拉,但是问题确是值得回味,感觉编程不是这么简单,需要学的知识还很多,下面就把遇到的两个bug写出来,供初学者参考:   
    在此系统中有两个应用程序域:程序版本检查域和cad电子文件收集域   
    1,首先启动程序版本检查域,先检测服务器端是否有新版本的“cad电子文件收集”程序,如果有则下载新版本的“cad电子文件收集”程序到本地,启动新版本的“cad电子文件收集”程序,否则启动旧版本的“cad电子文件收集”程序,看下面的程序:
try
                
{
                  AppStartProcess.myProcess = new Process();
                   myProcess.StartInfo.FileName = asc.ExePath;//启动相应版本的程序 
                    myProcess.StartInfo.UseShellExecute=true;
                     myProcess.StartInfo.WorkingDirectory=Path.GetDirectoryName(asc.ExePath);
                    
                    myProcess.Start();
                    myProcess.WaitForExit();
                    
                    
                }
                
catch(Exception ee)
                
{
                    MessageBox.Show(ee.Message);
                }
 在“CAD电子文件收集域”有这么一段代码:
    if(File.Exists("config.txt"))
            {
                
                StreamReader sr=new StreamReader("config.txt");
                string sep=sr.ReadLine().Trim();
            
                if(sep==null)
                {
                    gcdm=null;
                    jcdm=null;
                    sr.Close();
                    throw new Exception("配置文件错误!");
                }
                else
                {
                    sr.Close();
                    string[] arrstr=th.Split(sep.ToCharArray());
                    try
                    {
                        if(arrstr[0].Trim()=="15")
                        {
                            gcdm=arrstr[1].Trim();
                            jcdm=arrstr[1].Trim()+"-"+arrstr[2].Trim();
                        }
                        else
                        {
                            gcdm=arrstr[0].Trim();
                            jcdm=arrstr[0].Trim()+"-"+arrstr[1].Trim();
                    
                        }
                    }
                    catch
                    {
                        throw new Exception("图号出现错误!");
                    }                
                    
                
                }
                
            }

上面标识红体的程序:判断“cad电子文件收集”程序的初始文件夹中是否有"config.txt"文件,如果不设置                     myProcess.StartInfo.WorkingDirectory=Path.GetDirectoryName(asc.ExePath);

则File.Exists("config.txt")将在
“程序版本检查域”的初始文件夹中搜索“config.txt”,这显然会产生逻辑错误,因为我们希望在“CAD电子文件收集域”的初始文件夹中搜索“config.txt”。
    2,关于时间的问题:我在测试的时候,没有遇到任何问题,我有一个同事,每天把机器搞得挺有个性,他在测试的时候总是报错,我最后终于查到,在取客户机的时间时,总是有问题的,在别人机器上取得时间总是正常的,在他的机器取得时间为“2006-5-10 18:00:00  我将上下而求索 路漫漫其修远兮”,我对取出的时间百思不得其解,最后发现他机器任务栏里的时间后面有这么一句话,最后才知道他用“优化大师”设置的,我差点当场晕倒,最后我试着控制格式----失败,我只有这样实现:DateTime.Now.Year.ToString()+"-"+DateTime.Now.Month.ToString()+"-"+DateTime.Now.Day.ToString()+" "+DateTime.Now.Hour.ToString()+":"+DateTime.Now.Minute.ToString()+":"+DateTime.Now.Second.ToString();。如果哪位同仁有好的方法,敬请赐教。

posted on 2006-05-11 10:32  网络小贩  阅读(409)  评论(0编辑  收藏  举报

导航