路漫漫兮吾将上下而求索

寻梦·追梦;在梦想中遨游,在现实中拼搏!路漫漫其修远兮,吾将上下而求索

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  36 随笔 :: 8 文章 :: 21 评论 :: 0 引用

2009年11月23日 #

   最近帮一学生重装系统,虽然花了不少时间,但是还是有不少收获,现与大家一起分享。

       这位学生的机器型号为HP DV2 1005AU,原来预装的是VistaHomeBasic版本,320G的硬盘,分了10G作为厂商系统恢复的数据存放区,其他空间全部作为C区存在。由于Vista启动太慢(该机大概需要3分钟左右)于是想让我帮忙降级为XP。我开始以为没有什么问题,装好系统、装好驱动程序、打好补丁、装上一个杀毒软件就行了,结果远没有想象的那么简单。最大的问题是,机器来了,一看没有驱动程序盘,在HP官方网站上一查,For XP的驱动程序不全,接下来就只能充分利用网络来帮忙了(网络真是个好东西),通过艰难的查找和尝试,绝大部分的都找到了,但是显卡和声卡的驱动装得时候有问题,突然想起以前在哪里看到过“驱动精灵”这样一款软件,搜索、下载、安装,通过它找到了可用的驱动更新,问题解决了。

         建议:驱动精灵,是一款方便管理设备驱动程序的软件,可以备份、恢复驱动程序,可谓是重装系统之好工具。

         接下来便是将偌大一个C盘再划分小一些,以前这种无损分区通常是用PQMagic8.0来做,可是这次运行PQmagic8.0是总是报错:初始化错误,错误号117,在网上查找解决方法,最终还是无法识别现有分区,没有用起来;于是又找到一款名为Paragon Partition Manager10的工具,虽然能够识别现有分区了,但是对分区进行调整的时候,老是不成功;最后,一个偶然的机会看到一篇帖子中介绍Acronis.Disk.Director.Suite.v10.0.2160.by.ANimal!.rar能够觉得我遇到的问题,还特别指出一定要用这个版本破解,赶紧下载、安装、破解,一试果然可行,真是太好了!

         建议:推荐大家去用用这个工具,真的不错!特别是对vista分区进行调整的情况。

        最后,在网上下载一键还原工具,安装好,将装好的系统做了一个备份,做完收工。总得来说这次工作最后来看还是做得相当的完美。

posted @ 2009-11-23 17:52 MichaeL 阅读(109) 评论(0) 编辑

2008年7月23日 #

AutoCAD中提取明细栏和标题栏中的数据

AutoCAD中的明细栏和标题栏通常是采用定义块然后添加相应的属性值。那么如何在AutoCAD中提取到这些属性值呢?下面是实现的方法(通过AutoCAD VBA实现的)。

  1. 获取当前Dwg文档中已定义的块

-block 命令查看用户定义的块。

VBA 代码实现。

Dim objBlock As AcadBlock

For i = 0 To ThisDrawing.Blocks.Count - 1

Set objBlock = ThisDrawing.Blocks.Item(i)

If objBlock.IsXRef = False And objBlock.IsLayout = False Then’用户定义的块

MsgBox objBlock.Name + " " + objBlock.ObjectName

End If

Next

  1. 获取块对应的属性值。

AutoCAD中,块属性值一般都是放在AcDbBlockReference类的对象中,该对象的Name表示他属于的块名称,GetAttributes方法返回对象的属性,其中包含值。因此,可以在整个模型空间中查找AcDbBlockReference类型的对象,然后根据名称来分类。VBA实现代码如下:

Dim tempCount As Integer

tempCount = ThisDrawing.ModelSpace.Count’得到模型空间中的所有对象个数

For i = 0 To tempCount - 1

Set curAcadObject = ThisDrawing.ModelSpace.Item(i)

If curAcadObject.ObjectName = "AcDbBlockReference" Then

Dim ss As AcadBlockReference

Set ss = curAcadObject

If ss.HasAttributes = True Then

Dim aa() As Object ‘存放属性的数组

aa = ss.GetAttributes()

Dim cc As Integer

Dim strr As String

Dim oo As AcadAttributeReference‘属性对象

strr = ""

For cc = LBound(aa) To UBound(aa)

Set oo = aa(cc)

strr = strr + oo.TagString + ":" + oo.TextString + vbCrLf

Next

MsgBox strr, vbDefaultButton1, curAcadObject.Name

End If

End If

Next

posted @ 2008-07-23 12:35 MichaeL 阅读(349) 评论(0) 编辑

2008年7月18日 #

1、安装FCITX
sudo apt-get install im-switch fcitx
im-switch -s fcitx -z default
完成设置最好重启一下X,输入法就生效了(一般情况下是这样).
2、FCITX中文显示是方块的解决方法
我在安装中文输入法后,重新启动后输入法的候选字以及输入法上的汉字都是方块,在网上搜索后得知是配置文件中中文显示字体设置不正确导致的。
开始搜索到的修改方法都是修改为“显示字体(中)=WenQuanYi Bitmap Song”,然后Control+5。但是我的环境中不行,今天搜索到了另外一种修改方法“显示字体(中)=AR PL ShanHeiSun Uni”,马上就能够正常显示中文了。
设置方法如下:
执行 sudo gedit ~/.fcitx/config 将“显示字体(中)= ×”修改为“显示字体(中)=AR PL ShanHeiSun Uni”即可。
3、后来再去Wiki上查看是,看见其中清楚的给出了该输入法出现方块的解决方法。
    如果发现软件界面字体是方块, gedit ./fcitx/config 或gksu gedit /usr/share/fcitx/config 打开配置文件修改一下字体就OK.
    字体列表: xlsfonts或 fc-list (取=前面) 。其实第二句话很有用,他给出了字体查看的方法,这样就能够根据自己的环境选择中文字体。
posted @ 2008-07-18 17:48 MichaeL 阅读(2983) 评论(1) 编辑

     我接触到Ubuntu是在一个非常偶然的情况下发生的。我在试用GoogleReader的时候,在右侧有个Ubuntu的订阅推荐,我觉得这个词怎么这么有意思,有这么U,把n算着另一种形式的U,我就点击这个按钮进去了,里面有好多关于Ubuntu的新闻,包括最新发行8.04LTS的信息。这下让我叩响了Ubuntu的门,首先找到了Ubuntu的官方中文网站,首先映入眼帘的是三人手拉手的Logo以及棕黄色的整体页面让我感觉非常好,随后我找到了中文的Ubuntu Wiki,在这里我知道了Ubuntu的意思和发音,接着开始着手下载DeskTop版的iso来试用一下。(公司不让下载大容量的文件,只有回家去下载)。
      就这样,偶然的机会我第一次接触到Ubuntu了,并开始喜欢上它了!
posted @ 2008-07-18 17:17 MichaeL 阅读(48) 评论(0) 编辑

2008年6月27日 #

 摘要:在C#.Net 这样的支持Unicode字符集的环境下,字符串处理时,英文、数字、汉字以及标点符号都是当着一个字符来看待的,但是英文、中文显示时所占宽度不一致,这样在需要按照指定宽度输出时就会遇到截取到的字符串显示出来长短参差不齐的。在网上看了些别人写的一些文章,没有找到自己想要的方式。下面我就给出C#.Net中中英文混排的字符串,如何来进行按照指定宽度来截取。  
      今天有个程序需要在一个固定表格中输出一些文字数据,由于表格的单元格是固定的,因此用户希望能够在单元个中按照指定的宽度输出数据,超过的字符在下一行紧接着输出。我想这个在其他好多地方都会有应用的场景的。
      由于C#.Net中String.Length获得的是字符数,SubString方法指定截取的起始位置也是指的Unicode字符数,但是我们这里需要输出的宽度用英文字符个数来指定,也就是说如果是英文那么就单元格中应该有10字符,如果是中文则应该有5个汉字。考虑到中文是不能将两个字符截断,如果前面有9个英文字符,后面紧接着是个中文的话,我们就只能将中文放在下一个子串中。
一、通常使用的字符串截取方法
     常用的直接用SubString取子串方法得到的效果。

    

二、我的字符串截取方法
        /// <summary>
        
/// 获取拆分后的字符串列表。
        
/// </summary>
        
/// <param name="mOrigianlString"></param>
        
/// <param name="subStringCharNumber"></param>
        
/// <returns></returns>

        private ArrayList GetSeparateSubString(string mOrigianlString, int subStringCharNumber)
        
{
            ArrayList resultList 
= new ArrayList();
            
string tempStr = mOrigianlString;
            
int charNumber = subStringCharNumber;
            
int totalCount = 0;
            
string mSubStr = "";
            
for (int i = 0; i < tempStr.Length; i++)
            
{
                
string mChar = tempStr.Substring(i, 1);
                
int byteCount = Encoding.Default.GetByteCount(mChar);//关键点判断字符所占的字节数

                
if (byteCount == 1)
                
{
                    totalCount
++;
                    mSubStr 
+= mChar;
                    
if (totalCount == charNumber || i == tempStr.Length - 1)
                    
{
                        resultList.Add(mSubStr);
                        totalCount 
= 0;
                        mSubStr 
= "";
                    }

                }

                
else if (byteCount > 1)
                
{

                    totalCount 
+= 2;
                    
if (totalCount > charNumber )
                    
{
                        resultList.Add(mSubStr);
                        
if (i == tempStr.Length - 1)
                        
{
                            mSubStr 
= mChar;
                            resultList.Add(mSubStr);
                        }

                        
else
                        
{
                            totalCount 
= 2;
                            mSubStr 
= mChar;
                        }

                    }

                    
else if (totalCount == charNumber)
                    
{
                        mSubStr 
+= mChar;
                        resultList.Add(mSubStr);
                        totalCount 
= 0;
                        mSubStr 
= "";
                    }

                    
else if (i == tempStr.Length - 1)
                    
{
                        mSubStr 
+= mChar;
                        resultList.Add(mSubStr);
                    }

                    
else
                    
{
                        mSubStr 
+= mChar;
                    }

                }

            }

            
return resultList;
        }
下图为新方法处理的结果:

posted @ 2008-06-27 18:18 MichaeL 阅读(880) 评论(0) 编辑