﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-wangkang2009</title><link>http://www.cppblog.com/wangkang2009/</link><description /><language>zh-cn</language><lastBuildDate>Sat, 04 Apr 2026 17:17:47 GMT</lastBuildDate><pubDate>Sat, 04 Apr 2026 17:17:47 GMT</pubDate><ttl>60</ttl><item><title>为WingIde添加扩展命令</title><link>http://www.cppblog.com/wangkang2009/archive/2019/11/10/216973.html</link><dc:creator>wangkang</dc:creator><author>wangkang</author><pubDate>Sun, 10 Nov 2019 07:39:00 GMT</pubDate><guid>http://www.cppblog.com/wangkang2009/archive/2019/11/10/216973.html</guid><wfw:comment>http://www.cppblog.com/wangkang2009/comments/216973.html</wfw:comment><comments>http://www.cppblog.com/wangkang2009/archive/2019/11/10/216973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangkang2009/comments/commentRss/216973.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangkang2009/services/trackbacks/216973.html</trackback:ping><description><![CDATA[<div></div><div>创建wingide的扩展脚本</div><div></div><div>1. 在脚本目录中创建脚本</div><div>c:\Users\${username}\AppData\Roaming\Wing Pro 7</div><div>~/.wingpro7</div><div></div><div>wing6</div><div>/Applications/WingIDE.app/Contents/Resources/scripts</div><div></div><div>2. 执行脚本</div><div>Edit-&gt;Command By Name (ctrl+/)</div><div>在最下面出现一个Edit框， 输入scripts目录里的py文件里函数的名称， 系统会给出自动完成提示</div><div></div><div>3. 在scripts目录里存入自己的文件</div><div>一个例子, 获取编辑框， 在当前光标插入日期<br /></div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">import</span>&nbsp;wingapi<br /><span style="color: #0000FF; ">import</span>&nbsp;time<br /><span style="color: #0000FF; ">def</span>&nbsp;insert_date():<br />&nbsp;&nbsp;&nbsp;&nbsp;editor&nbsp;=&nbsp;wingapi.gApplication.GetActiveEditor()<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;txt&nbsp;=&nbsp;time.strftime(<span style="color: #800000; ">'</span><span style="color: #800000; ">%Y-%m-%d</span><span style="color: #800000; ">'</span>)<br />&nbsp;&nbsp;&nbsp;&nbsp;fields&nbsp;=&nbsp;[(0,1)]<br />&nbsp;&nbsp;&nbsp;&nbsp;editor.PasteSnippet(txt,&nbsp;fields)</div></div><div></div><div>4. 绑定快捷键, 快捷键设置里的自定义快捷键, insert-date</div><div></div><div></div><img src ="http://www.cppblog.com/wangkang2009/aggbug/216973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangkang2009/" target="_blank">wangkang</a> 2019-11-10 15:39 <a href="http://www.cppblog.com/wangkang2009/archive/2019/11/10/216973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gyp模板</title><link>http://www.cppblog.com/wangkang2009/archive/2018/12/12/216120.html</link><dc:creator>wangkang</dc:creator><author>wangkang</author><pubDate>Wed, 12 Dec 2018 07:48:00 GMT</pubDate><guid>http://www.cppblog.com/wangkang2009/archive/2018/12/12/216120.html</guid><wfw:comment>http://www.cppblog.com/wangkang2009/comments/216120.html</wfw:comment><comments>http://www.cppblog.com/wangkang2009/archive/2018/12/12/216120.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangkang2009/comments/commentRss/216120.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangkang2009/services/trackbacks/216120.html</trackback:ping><description><![CDATA[<a href="/Files/wangkang2009/gyp-master.rar">/Files/wangkang2009/gyp-master.rar<br /><br /></a>该下载文件里包含一个gyp的VC模板， gyp_template.gyp<br />包含一些常用的编译器参数， 同时修改了gyp的源码使vc2015支持xp v140_xp<img src ="http://www.cppblog.com/wangkang2009/aggbug/216120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangkang2009/" target="_blank">wangkang</a> 2018-12-12 15:48 <a href="http://www.cppblog.com/wangkang2009/archive/2018/12/12/216120.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>git bash提交github</title><link>http://www.cppblog.com/wangkang2009/archive/2017/02/05/214652.html</link><dc:creator>wangkang</dc:creator><author>wangkang</author><pubDate>Sun, 05 Feb 2017 08:51:00 GMT</pubDate><guid>http://www.cppblog.com/wangkang2009/archive/2017/02/05/214652.html</guid><wfw:comment>http://www.cppblog.com/wangkang2009/comments/214652.html</wfw:comment><comments>http://www.cppblog.com/wangkang2009/archive/2017/02/05/214652.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangkang2009/comments/commentRss/214652.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangkang2009/services/trackbacks/214652.html</trackback:ping><description><![CDATA[<div><div>git bash提交github</div><div></div><div>跟着网上的教程进行了一次github的提交， 发现中间还是碰到了一些问题， 因此再记录一次</div><div>环境只针对windows</div><div></div><div>1. 安装好git后不能直接使用git， 而是要使用git bash</div><div></div><div>2. 注册好github并创建一个新的仓库</div><div></div><div>3. 运行gitbash.bat, 产生一个类似cmd的窗口, 以下命令行全部在gitbash中执行</div><div></div><div>4. 产生ssh使用的公钥</div><div>ssh-keygen.bat -t rsa -C "youemail"</div><div>默认产生在C:\Users\Administrator\.ssh</div><div>打开id_rsa.pub拷贝里面的内容到github里的ssh key里</div><div>ssh -T git@github.com</div><div>验证密钥是否生效</div><div>配置git</div><div>git config --global user.name "youname"</div><div>git config --global user.email "youemail"</div><div></div><div>5. 用资源管理器创建一个空目录作为代码目录, 例如c:\test</div><div></div><div>6. 下载代码</div><div>cd c:/test</div><div>git init</div><div>git remote add origin git@github.com:youname/yourep.git</div><div>下载仓库</div><div>git pull origin master</div><div></div><div>7. 在windows环境中把需要提交的代码拷贝至test</div><div></div><div>8. 添加代码，提交代码</div><div>git add .</div><div>添加代码或提交代码时会跑出一个vim界面， 用:q退出</div><div>git commit -m "first commit"</div><div>这里必须要写注释， 不写提示 aborting commit due to empty commit message</div><div>git push -u origin master</div><div>这里开始出现上传的百分比， 100%后代码提交成功</div><div></div><div>9. github页面刷新， 可以看见提交已经生效</div></div><img src ="http://www.cppblog.com/wangkang2009/aggbug/214652.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangkang2009/" target="_blank">wangkang</a> 2017-02-05 16:51 <a href="http://www.cppblog.com/wangkang2009/archive/2017/02/05/214652.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于pandas的股票前复权计算</title><link>http://www.cppblog.com/wangkang2009/archive/2015/04/25/210437.html</link><dc:creator>wangkang</dc:creator><author>wangkang</author><pubDate>Sat, 25 Apr 2015 01:28:00 GMT</pubDate><guid>http://www.cppblog.com/wangkang2009/archive/2015/04/25/210437.html</guid><wfw:comment>http://www.cppblog.com/wangkang2009/comments/210437.html</wfw:comment><comments>http://www.cppblog.com/wangkang2009/archive/2015/04/25/210437.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangkang2009/comments/commentRss/210437.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangkang2009/services/trackbacks/210437.html</trackback:ping><description><![CDATA[简单说下步骤吧<br />1. 需要收集分红送股的数据， 姑且称之为分红表，给一个例子<br /><div>600617的分红表, 股数，现金，除权日</div><div>&nbsp; &nbsp;0 &nbsp; &nbsp; 1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2</div><div>0 &nbsp;7 &nbsp; &nbsp; 0 &nbsp;2015-04-20</div><div>0 &nbsp;0 &nbsp;0.26 &nbsp;2001-07-19</div><div>0 &nbsp;0 &nbsp; 0.2 &nbsp;2000-08-24</div><div>0 &nbsp;0 &nbsp; 0.4 &nbsp;1998-07-29</div><div>0 &nbsp;0 &nbsp;0.38 &nbsp;1996-06-25</div><div>0 &nbsp;2 &nbsp; 1.5 &nbsp;1995-05-31</div><div>0 &nbsp;0 &nbsp; &nbsp; 3 &nbsp;1994-06-06<br />2. 当然需要有日k线数据， 转换为pd.DataFrame格式， 最高价最低价等对应的col名称为ohlcv<br />3. 根据除权数据， 按倒序来复权， 就是先复权日期早的<br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">def</span>&nbsp;calc_fuquan_use_fenhong(df,&nbsp;df_fenhong):<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #800000; ">"""</span><span style="color: #800000; ">获取复权后的历史数据,&nbsp;用分红表来计算复权&nbsp;,&nbsp;前复权<br />&nbsp;&nbsp;&nbsp;&nbsp;df:&nbsp;日k线<br />&nbsp;&nbsp;&nbsp;&nbsp;df_fenhong:&nbsp;分红表<br />&nbsp;&nbsp;&nbsp;&nbsp;return:&nbsp;df</span><span style="color: #800000; ">"""</span><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">#</span><span style="color: #008000; ">日期早的在前面</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;df_fenhong&nbsp;=&nbsp;df_fenhong.sort_index(by=2)<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;i&nbsp;<span style="color: #0000FF; ">in</span>&nbsp;range(len(df_fenhong)):<br />&nbsp;&nbsp;&nbsp;&nbsp;gu,&nbsp;money,&nbsp;date&nbsp;=&nbsp;df_fenhong.irow(i)<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;len(df.ix[:date])&nbsp;&lt;&nbsp;2:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">continue</span><br />&nbsp;&nbsp;&nbsp;&nbsp;date&nbsp;=&nbsp;agl.df_get_pre_date(df,&nbsp;date)<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;money&nbsp;&gt;&nbsp;0:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;money&nbsp;=&nbsp;money&nbsp;*&nbsp;0.1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;df[<span style="color: #800000; ">'</span><span style="color: #800000; ">o</span><span style="color: #800000; ">'</span>].ix[:date]&nbsp;-=&nbsp;money<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;df[<span style="color: #800000; ">'</span><span style="color: #800000; ">h</span><span style="color: #800000; ">'</span>].ix[:date]&nbsp;-=&nbsp;money<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;df[<span style="color: #800000; ">'</span><span style="color: #800000; ">c</span><span style="color: #800000; ">'</span>].ix[:date]&nbsp;-=&nbsp;money<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;df[<span style="color: #800000; ">'</span><span style="color: #800000; ">l</span><span style="color: #800000; ">'</span>].ix[:date]&nbsp;-=&nbsp;money<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;gu&nbsp;&gt;&nbsp;0:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">#</span><span style="color: #008000; ">&nbsp;x&nbsp;=&nbsp;cur&nbsp;/&nbsp;(1+y/10)</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gu&nbsp;=&nbsp;1+gu/10<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;df[<span style="color: #800000; ">'</span><span style="color: #800000; ">o</span><span style="color: #800000; ">'</span>].ix[:date]&nbsp;/=&nbsp;gu<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;df[<span style="color: #800000; ">'</span><span style="color: #800000; ">h</span><span style="color: #800000; ">'</span>].ix[:date]&nbsp;/=&nbsp;gu<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;df[<span style="color: #800000; ">'</span><span style="color: #800000; ">c</span><span style="color: #800000; ">'</span>].ix[:date]&nbsp;/=&nbsp;gu<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;df[<span style="color: #800000; ">'</span><span style="color: #800000; ">l</span><span style="color: #800000; ">'</span>].ix[:date]&nbsp;/=&nbsp;gu<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;df &nbsp; &nbsp; &nbsp; &nbsp;</div>4. 结果<br /><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; o &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;h &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;l &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;c &nbsp; &nbsp; &nbsp; &nbsp; v</div><div>2010-06-01 &nbsp; 6.158824 &nbsp; 6.458824 &nbsp; 6.158824 &nbsp; 6.158824 &nbsp; 1922980</div><div>2010-06-02 &nbsp; 5.941176 &nbsp; 6.294118 &nbsp; 5.941176 &nbsp; 6.235294 &nbsp; &nbsp;837740</div><div>经过测试， 前复权结果与同花顺，通达信的计算相同</div></div><img src ="http://www.cppblog.com/wangkang2009/aggbug/210437.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangkang2009/" target="_blank">wangkang</a> 2015-04-25 09:28 <a href="http://www.cppblog.com/wangkang2009/archive/2015/04/25/210437.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用python把图形转换为文本输出</title><link>http://www.cppblog.com/wangkang2009/archive/2014/03/20/206239.html</link><dc:creator>wangkang</dc:creator><author>wangkang</author><pubDate>Thu, 20 Mar 2014 01:36:00 GMT</pubDate><guid>http://www.cppblog.com/wangkang2009/archive/2014/03/20/206239.html</guid><wfw:comment>http://www.cppblog.com/wangkang2009/comments/206239.html</wfw:comment><comments>http://www.cppblog.com/wangkang2009/archive/2014/03/20/206239.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/wangkang2009/comments/commentRss/206239.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangkang2009/services/trackbacks/206239.html</trackback:ping><description><![CDATA[关键字： png bmp txt pil&nbsp;<br /><br />下面的代码可以把图像转换成文本， 是从网上的一段程序改的， 本来是想在控制台使用的， 但输出的文本过大， 缩放过小又会造成像素丢失的情况。<br />先贴出来. 这个版本适用于文件输出， 可以保持更好的显示效果<br /><span style="font-size: 13px; color: #0000ff;">from</span><span style="background-color: #eeeeee; font-size: 13px;">&nbsp;PIL&nbsp;</span><span style="font-size: 13px; color: #0000ff;">import</span><span style="background-color: #eeeeee; font-size: 13px;">&nbsp;Image</span><br /><div style="padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; width: 999.59375px; word-break: break-all;"><span style="color: #0000ff;">import</span>&nbsp;os<br /><div style="padding: 4px 5px 4px 4px; border: 1px solid #cccccc; width: 979.59375px; word-break: break-all;"><span style="color: #0000ff;">def</span>&nbsp;PngToTxt(f):<br />&nbsp;&nbsp;&nbsp;&nbsp;Palette={<span style="color: #800000;">'</span><span style="color: #800000;">000</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">#</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">榛�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">010</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">@</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">鏆楃豢</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">020</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">/</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">缁�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">001</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">$</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">娣辫摑</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">011</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">&lt;</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">闈�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">021</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">"</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">浜�豢鑹�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">002</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">=</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">钃�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">012</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">\\</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">闂�摑鑹�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">022</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">_</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">娴呯豢</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">100</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">&gt;</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">鏆楃孩</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">110</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">*</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">鏆楅粍</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">120</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">~</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">榛勭豢鑹�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">101</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">%</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">鏆楃传</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">111</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">+</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">鐏�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">121</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">^</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">娴呯豢鑹�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">102</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">|</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">绱�綏鍏�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">112</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">!</span><span style="color: #800000;">'</span><br />&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">122</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">-</span><span style="color: #800000;">'</span><br />&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">200</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">&amp;</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">绾�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">210</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">;</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">姗欒壊</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">220</span><span style="color: #800000;">'</span>:<span style="color: #800000;">"</span><span style="color: #800000;">'</span><span style="color: #800000;">"</span><span style="color: #008000;">#</span><span style="color: #008000;">榛�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">201</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">)</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">娣辩矇鑹�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">211</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">.</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">绮夌孩鑹�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">221</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">`</span><span style="color: #800000;">'</span><br />&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">202</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">]</span><span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">绱�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">212</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span><span style="color: #800000;">,</span><span style="color: #800000;">'</span><br />&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000;">'</span><span style="color: #800000;">222</span><span style="color: #800000;">'</span>:<span style="color: #800000;">'</span>&nbsp;<span style="color: #800000;">'</span><span style="color: #008000;">#</span><span style="color: #008000;">鐧�</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;img&nbsp;=&nbsp;Image.open(f)<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff;">if</span>&nbsp;0:&nbsp;img&nbsp;=&nbsp;Image.Image<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">#</span><span style="color: #008000;">缩小,&nbsp;结果比较模糊,&nbsp;还是用原比例较好</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">#</span><span style="color: #008000;">img&nbsp;=&nbsp;img.resize((80,60))</span><span style="color: #008000;"><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;w,h&nbsp;=&nbsp;img.size[:2]<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff;">print</span>&nbsp;w,h<br />&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;[]<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff;">for</span>&nbsp;i&nbsp;<span style="color: #0000ff;">in</span>&nbsp;range(h):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result1&nbsp;=&nbsp;[]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff;">for</span>&nbsp;j&nbsp;<span style="color: #0000ff;">in</span>&nbsp;range(w):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pixel&nbsp;=&nbsp;img.getpixel((j,i))[:3]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result1.append(Palette[<span style="color: #800000;">''</span>.join([str(int(x//85.3))&nbsp;<span style="color: #0000ff;">for</span>&nbsp;x&nbsp;<span style="color: #0000ff;">in</span>&nbsp;pixel])])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.append(result1)<br />&nbsp;&nbsp;&nbsp;&nbsp;r=<span style="color: #800000;">"</span><span style="color: #800000;">\n</span><span style="color: #800000;">"</span>.join([<span style="color: #800000;">""</span>.join(x)&nbsp;<span style="color: #0000ff;">for</span>&nbsp;x&nbsp;<span style="color: #0000ff;">in</span>&nbsp;result])<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff;">print</span>&nbsp;r<br />&nbsp;&nbsp;&nbsp;&nbsp;object_file=os.path.splitext(f)[0]+<span style="color: #800000;">"</span><span style="color: #800000;">.txt</span><span style="color: #800000;">"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;open(object_file,<span style="color: #800000;">'</span><span style="color: #800000;">w</span><span style="color: #800000;">'</span>).write(r) &nbsp; &nbsp;<br /><br /><br /></div></div><br />经过一些改进， 下面的代码可以适用于控制台输出<br /><br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">def</span>&nbsp;PngToTxt(f):<br />&nbsp;&nbsp;&nbsp;&nbsp;Palette={<span style="color: #800000; ">'</span><span style="color: #800000; ">000</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">#</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">榛�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">010</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">@</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">鏆楃豢</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">020</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">/</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">缁�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">001</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">$</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">娣辫摑</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">011</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">&lt;</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">闈�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">021</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">"</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">浜�豢鑹�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">002</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">=</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">钃�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">012</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">\\</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">闂�摑鑹�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">022</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">_</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">娴呯豢</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">100</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">&gt;</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">鏆楃孩</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">110</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">*</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">鏆楅粍</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">120</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">~</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">榛勭豢鑹�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">101</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">%</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">鏆楃传</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">111</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">+</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">鐏�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">121</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">^</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">娴呯豢鑹�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">102</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">|</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">绱�綏鍏�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">112</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">!</span><span style="color: #800000; ">'</span><br />&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">122</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">-</span><span style="color: #800000; ">'</span><br />&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">200</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">&amp;</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">绾�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">210</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">;</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">姗欒壊</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">220</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">"</span><span style="color: #800000; ">'</span><span style="color: #800000; ">"</span><span style="color: #008000; ">#</span><span style="color: #008000; ">榛�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">201</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">)</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">娣辩矇鑹�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">211</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">.</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">绮夌孩鑹�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">221</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">`</span><span style="color: #800000; ">'</span><br />&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">202</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">]</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">绱�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">212</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">,</span><span style="color: #800000; ">'</span><br />&nbsp;&nbsp;&nbsp;&nbsp;,<span style="color: #800000; ">'</span><span style="color: #800000; ">222</span><span style="color: #800000; ">'</span>:<span style="color: #800000; ">'</span><span style="color: #800000; ">&nbsp;</span><span style="color: #800000; ">'</span><span style="color: #008000; ">#</span><span style="color: #008000; ">鐧�</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;img&nbsp;=&nbsp;Image.open(f)<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;0:&nbsp;img&nbsp;=&nbsp;Image.Image<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">#</span><span style="color: #008000; ">缩小,&nbsp;结果比较模糊,&nbsp;还是用原比例较好</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;img&nbsp;=&nbsp;img.resize((60,20))<br />&nbsp;&nbsp;&nbsp;&nbsp;w,h&nbsp;=&nbsp;img.size[:2]<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">#</span><span style="color: #008000; ">print&nbsp;w,h</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;[]<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;i&nbsp;<span style="color: #0000FF; ">in</span>&nbsp;range(h):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result1&nbsp;=&nbsp;[]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is_empty_line&nbsp;=&nbsp;True<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;j&nbsp;<span style="color: #0000FF; ">in</span>&nbsp;range(w):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pixel&nbsp;=&nbsp;img.getpixel((j,i))[:3]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">#</span><span style="color: #008000; ">result1.append(Palette[''.join([str(int(x//85.3))&nbsp;for&nbsp;x&nbsp;in&nbsp;pixel])])</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;pixel==(255,255,255):<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;=&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">222</span><span style="color: #800000; ">'</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">else</span>:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;=&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">110</span><span style="color: #800000; ">'</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is_empty_line&nbsp;=&nbsp;False<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result1.append(Palette[s])<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">#</span><span style="color: #008000; ">去除空行</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;is_empty_line&nbsp;==&nbsp;False:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.append(result1)<br />&nbsp;&nbsp;&nbsp;&nbsp;r=<span style="color: #800000; ">"</span><span style="color: #800000; ">\n</span><span style="color: #800000; ">"</span>.join([<span style="color: #800000; ">""</span>.join(x)&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;x&nbsp;<span style="color: #0000FF; ">in</span>&nbsp;result])<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;r<br />&nbsp;&nbsp;&nbsp;&nbsp;object_file=os.path.splitext(f)[0]+<span style="color: #800000; ">"</span><span style="color: #800000; ">.txt</span><span style="color: #800000; ">"</span><br />&nbsp;&nbsp;&nbsp;&nbsp;open(object_file,<span style="color: #800000; ">'</span><span style="color: #800000; ">w</span><span style="color: #800000; ">'</span>).write(r)</div><br />图例：<br /><img src="http://www.cppblog.com/images/cppblog_com/wangkang2009/python_png2txt_1.png" width="541" height="424" alt="" /><br /><img src="http://www.cppblog.com/images/cppblog_com/wangkang2009/python_png2txt_2.png" width="445" height="280" alt="" /><br /><img src ="http://www.cppblog.com/wangkang2009/aggbug/206239.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangkang2009/" target="_blank">wangkang</a> 2014-03-20 09:36 <a href="http://www.cppblog.com/wangkang2009/archive/2014/03/20/206239.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用python发布报告</title><link>http://www.cppblog.com/wangkang2009/archive/2014/03/07/206097.html</link><dc:creator>wangkang</dc:creator><author>wangkang</author><pubDate>Fri, 07 Mar 2014 11:32:00 GMT</pubDate><guid>http://www.cppblog.com/wangkang2009/archive/2014/03/07/206097.html</guid><wfw:comment>http://www.cppblog.com/wangkang2009/comments/206097.html</wfw:comment><comments>http://www.cppblog.com/wangkang2009/archive/2014/03/07/206097.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangkang2009/comments/commentRss/206097.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangkang2009/services/trackbacks/206097.html</trackback:ping><description><![CDATA[关键词： 用python仿造matlab发布报告， html<br /><br />经常用matlab的人有时候会用到publish发布报告的功能， 也就是生成一个html的浏览页， 而python中貌似就没有这种功能。现在本人做了一个简单的类似功能，大概的样式如下:<br /><br /><img src="http://www.cppblog.com/images/cppblog_com/wangkang2009/python_publish.png" width="1145" height="791" alt="" /><br /><br /><br /><br />虽然比较简陋，但至少可以在浏览器中看了。<br /><br />大概的原理是用发布类替换pl， 因此如果您的pl使用了较多的函数， 那么需要相应的在Publish中加入类似的代码。<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">def</span>&nbsp;figure(self,&nbsp;id=1):<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pl.figure(id)<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">def</span>&nbsp;plot(self,&nbsp;*args,&nbsp;**kwargs):<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pl.plot(*args,&nbsp;**kwargs)<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">def</span>&nbsp;subplot(self,&nbsp;*args,&nbsp;**kwargs):<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pl.subplot(*args,&nbsp;**kwargs)<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">def</span>&nbsp;title(self,&nbsp;s,&nbsp;*args,&nbsp;**kwargs):<br /><span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pl.title(s,&nbsp;*args,&nbsp;**kwargs)</div>对于要发布的代码， 只需要在前面加上Publish类就可以了<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;<span style="color: #0000FF; ">from</span>&nbsp;pypublish.publish&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;*<br /><div><div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">#</span><span style="color: #008000; ">不发布把该行注销</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">2</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;pl&nbsp;=&nbsp;Publish()<br /><span style="color: #008080; ">3</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">print</span>&nbsp;<span style="color: #800000; ">'</span><span style="color: #800000; ">test&nbsp;python&nbsp;html&nbsp;publish.</span><span style="color: #800000; ">'</span><br /><span style="color: #008080; ">4</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>&nbsp;i&nbsp;<span style="color: #0000FF; ">in</span>&nbsp;range(2):<br /><span style="color: #008080; ">5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pl.figure(i)<br /><span style="color: #008080; ">6</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pl.plot(np.arange(0,10*(i+1)))<br /><span style="color: #008080; ">7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pl.show()</div></div></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="font-size: 14px;">当然以上假设您用的都是import pylab as pl</span></div>如果不是这种情况该方式就不适用了。<br /><a href="/Files/wangkang2009/pypublish.rar">/Files/wangkang2009/pypublish.rar</a><br /><img src ="http://www.cppblog.com/wangkang2009/aggbug/206097.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangkang2009/" target="_blank">wangkang</a> 2014-03-07 19:32 <a href="http://www.cppblog.com/wangkang2009/archive/2014/03/07/206097.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>python调用C dll api</title><link>http://www.cppblog.com/wangkang2009/archive/2013/08/27/202798.html</link><dc:creator>wangkang</dc:creator><author>wangkang</author><pubDate>Tue, 27 Aug 2013 03:34:00 GMT</pubDate><guid>http://www.cppblog.com/wangkang2009/archive/2013/08/27/202798.html</guid><wfw:comment>http://www.cppblog.com/wangkang2009/comments/202798.html</wfw:comment><comments>http://www.cppblog.com/wangkang2009/archive/2013/08/27/202798.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangkang2009/comments/commentRss/202798.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangkang2009/services/trackbacks/202798.html</trackback:ping><description><![CDATA[<p>python调用c dll api</p>
<p><br />关键字： python dll调用 np类型转换 double</p>
<p><br />关于python调用dll的文章有很多， 本篇主要描述对double数组传参的实现， 本人还没有发现类似的文章， 因此书写本文档加以说明。</p>
<p>本文实现主要参考《用python进行科学计算》一书， 因此对环境有要求， 环境需要安装python(x,y)， 该软件可以很好的支持numpy库，<br />否则用sf上下载的numpy安装包直接在python里安装貌似装了不生效， 也就是import numpy失败</p>
<p>下面简单讲下实现过程</p>
<p>1. 制作dll， 假设dll中有如下的导出函数， dll名为smooth<br />// @param:&nbsp;n&nbsp;&nbsp;&nbsp;数组长度<br />// @param:&nbsp;x&nbsp;&nbsp;&nbsp;[input/output] 一维数组<br />// @param:&nbsp;y&nbsp;&nbsp;&nbsp;[input/output]<br />// @param:&nbsp;weights&nbsp;&nbsp;&nbsp;[input]&nbsp;&nbsp;可为0<br />// @param:&nbsp;s&nbsp;&nbsp;&nbsp;[input/output]&nbsp;单值，返回新的x，y长度<br />int smooth(int n, double* x, double* y, double* weights, double* s);</p>
<p><br />2. 加载dll<br />import numpy as np<br />from ctypes import *</p>
<p>dll = np.ctypeslib.load_library('smooth', '.')</p>
<p><br />3. 执行函数<br />c里的double是64位的， 因此简单的传参会是32位的， 比如用下面的实现就会有这样的问题<br />smooth = dll.smooth<br />#[Warning:下面是一个错误的演示]<br />#描述参数类型<br />smooth.argtypes = [c_int, POINTER(c_double), POINTER(c_double), POINTER(c_double), POINTER(c_double)]<br />#返回值类型<br />smooth.restype = c_int<br />x = [3.2, 3.9, 5.4, 5.9]<br />x = np.array(x)<br />y = np.array(x)<br />w = np.array(0)<br />s = np.array(10)<br />smooth(len(x), x.ctypes.data_as(POINTER(c_double)), y.ctypes.data_as(POINTER(c_double)), w.ctypes.data_as(POINTER(c_double)), s.ctypes.data_as(POINTER(c_double)) )</p>
<p>调用后python没有报错， 但不能得到正确的结果， 进入vc附加python进程， 在函数头加上断点， 查看参数内存， 可看出其是以int*方式传入的<br />要让python以真正的64位double*传入可使用下面的实现<br />#正确的调用<br />smooth.argtypes = [<br />&nbsp;&nbsp;&nbsp; c_int,<br />&nbsp;&nbsp;&nbsp; np.ctypeslib.ndpointer(dtype=np.float64, ndim=1, flags="C_CONTIGUOUS"),&nbsp;#一维数组，且内存连续的 <br />&nbsp;&nbsp;&nbsp; np.ctypeslib.ndpointer(dtype=np.float64, ndim=1, flags="C_CONTIGUOUS"),<br />&nbsp;&nbsp;&nbsp; np.ctypeslib.ndpointer(dtype=np.float64),<br />&nbsp;&nbsp;&nbsp; np.ctypeslib.ndpointer(dtype=np.float64)<br />]<br />smooth.restype = c_int<br />m = [3.2, 3.9, 5.4, 5.9]<br />x = np.arange(4, dtype=np.float64)<br />y = np.arange(4, dtype=np.float64)<br />w = np.cast["float64"](0)<br />s = np.cast["float64"](10)<br />for i in range(0, len(m)):<br />&nbsp;x[i] = m[i]<br />&nbsp;y[i] = m[i]<br />smooth(len(x), x, y, w, s)</p>
<p>题外话: python的参数基本可以看为指针， 类似引用等操作都可以轻松完成</p>
<p>本人对numpy不是很熟， 可能对于np的参数初始化有更好的方式， 此处就算抛砖引玉吧， </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><br />&nbsp;</p><img src ="http://www.cppblog.com/wangkang2009/aggbug/202798.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangkang2009/" target="_blank">wangkang</a> 2013-08-27 11:34 <a href="http://www.cppblog.com/wangkang2009/archive/2013/08/27/202798.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用vc2010扩展程序改变编辑窗口的背景色</title><link>http://www.cppblog.com/wangkang2009/archive/2013/04/17/199509.html</link><dc:creator>wangkang</dc:creator><author>wangkang</author><pubDate>Wed, 17 Apr 2013 06:55:00 GMT</pubDate><guid>http://www.cppblog.com/wangkang2009/archive/2013/04/17/199509.html</guid><wfw:comment>http://www.cppblog.com/wangkang2009/comments/199509.html</wfw:comment><comments>http://www.cppblog.com/wangkang2009/archive/2013/04/17/199509.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangkang2009/comments/commentRss/199509.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangkang2009/services/trackbacks/199509.html</trackback:ping><description><![CDATA[编辑框的背景色一般是白色的， 时间长了看起来比较费劲， 用vc自带的也可以改背景色， 这里提供一个更快捷的方案.<br />注意，for vc2010<br /><br />1. 用vc2010建一个扩展项目<br /><img src="http://www.cppblog.com/images/cppblog_com/wangkang2009/1.png" width="959" height="658" alt="" /><br /><br />2. 创建该项目，按照下面图示走完向导。<br /><img src="http://www.cppblog.com/images/cppblog_com/wangkang2009/2.png" width="508" height="356" alt="" /><br /><br /><img src="http://www.cppblog.com/images/cppblog_com/wangkang2009/3.png" width="508" height="356" alt="" /><br /><br /><img src="http://www.cppblog.com/images/cppblog_com/wangkang2009/4.png" width="508" height="356" alt="" /><br /><br />3. 完成后项目建立, 依次修改<br /><div>STDMETHODIMP CConnect::OnStartupComplete (SAFEARRAY ** /*自定义*/ ) &nbsp; // 项目加载后触发</div><div>和<br /><div>STDMETHODIMP CConnect::Exec(BSTR bstrCmdName, vsCommandExecOption ExecuteOption, VARIANT * /*pvarVariantIn*/, VARIANT * /*pvarVariantOut*/, VARIANT_BOOL *pvbHandled) // 选择命令后触发<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;项目启动后触发</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #008000; "></span>STDMETHODIMP&nbsp;CConnect::OnStartupComplete&nbsp;(SAFEARRAY&nbsp;**&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">自定义</span><span style="color: #008000; ">*/</span>&nbsp;)<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;{<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">RunBackGroundChange();</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;CAddMyComment&nbsp;ac(m_pDTE);<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COLORREF&nbsp;clrBlack&nbsp;=&nbsp;0x00c2c2c2;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;银色</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;ac.SetColor(clrBlack);<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ac.SetColor(clrBlack);<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;<br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;S_OK;<br /><span style="color: #008080; ">11</span>&nbsp;}</div></div></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->STDMETHODIMP&nbsp;CConnect::Exec(BSTR&nbsp;bstrCmdName,&nbsp;vsCommandExecOption&nbsp;ExecuteOption,&nbsp;VARIANT&nbsp;*&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">pvarVariantIn</span><span style="color: #008000; ">*/</span>,&nbsp;VARIANT&nbsp;*&nbsp;<span style="color: #008000; ">/*</span><span style="color: #008000; ">pvarVariantOut</span><span style="color: #008000; ">*/</span>,&nbsp;VARIANT_BOOL&nbsp;*pvbHandled)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;*pvbHandled&nbsp;=&nbsp;VARIANT_FALSE;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(ExecuteOption&nbsp;==&nbsp;vsCommandExecOptionDoDefault)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(!_wcsicmp(bstrCmdName,&nbsp;L"backgroundchange.Connect.backgroundchange"))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RunBackGroundChange();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*pvbHandled&nbsp;=&nbsp;VARIANT_TRUE;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;S_OK;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;S_OK;<br />}</div><br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; "><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;改变编辑器背景颜色</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #008000; "></span><span style="color: #0000FF; ">void</span>&nbsp;CAddMyComment::ChangeFont(<span style="color: #0000FF; ">void</span>)<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;{<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CComPtr&lt;EnvDTE::Properties&gt;&nbsp;spProperties;<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Modify&nbsp;font&nbsp;size</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;m_spDTE-&gt;get_Properties(CComBSTR("FontsAndColors"),&nbsp;CComBSTR("TextEditor"),&nbsp;&amp;spProperties);<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CComPtr&lt;EnvDTE::Property&gt;&nbsp;spProperty;<br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spProperties-&gt;Item(CComVariant(L"FontSize"),&nbsp;&amp;spProperty);&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;FontSize</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;ATLASSERT(spProperty);<br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spProperty-&gt;put_Value(CComVariant(11));<br /><span style="color: #008080; ">13</span>&nbsp;<br /><span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CComPtr&lt;EnvDTE::Property&gt;&nbsp;spProperty1;<br /><span style="color: #008080; ">15</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spProperties-&gt;Item(CComVariant(CComBSTR(L"FontsAndColorsItems")),&nbsp;&amp;spProperty1);&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;FontsAndColorsItems</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;ATLASSERT(spProperty1);<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CComPtr&lt;IDispatch&gt;&nbsp;spDispatch;<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spProperty1-&gt;get_Object(&amp;spDispatch);<br /><span style="color: #008080; ">19</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CComPtr&lt;EnvDTE::FontsAndColorsItems&gt;&nbsp;spFontsAndColorsItems;<br /><span style="color: #008080; ">20</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spFontsAndColorsItems&nbsp;=&nbsp;spDispatch;<br /><span style="color: #008080; ">21</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ATLASSERT(spFontsAndColorsItems);<br /><span style="color: #008080; ">22</span>&nbsp;<span style="color: #0000FF; ">#if</span>&nbsp;0<br /><span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;显示颜色命名</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">24</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">long</span>&nbsp;count&nbsp;;<br /><span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spFontsAndColorsItems-&gt;get_Count(&amp;count);<br /><span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">long</span>&nbsp;i=0;&nbsp;i&lt;count;&nbsp;++i)&nbsp;{<br /><span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CComPtr&lt;EnvDTE::ColorableItems&gt;&nbsp;spColor;<br /><span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spFontsAndColorsItems-&gt;Item(CComVariant(i),&nbsp;&amp;spColor);<br /><span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(spColor)&nbsp;{<br /><span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CComBSTR&nbsp;bstrName;<br /><span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spColor-&gt;get_Name(&amp;bstrName);<br /><span style="color: #008080; ">32</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ATLTRACE(L"[%d]%s\n",i,&nbsp;bstrName);<br /><span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">35</span>&nbsp;<span style="color: #0000FF; ">#endif</span><br /><span style="color: #008080; ">36</span>&nbsp;<br /><span style="color: #008080; ">37</span>&nbsp;<span style="color: #0000FF; ">#if</span>&nbsp;1<br /><span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;Modify&nbsp;Plain&nbsp;Text&nbsp;Background</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">39</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;CComPtr&lt;EnvDTE::ColorableItems&gt;&nbsp;spColorableItems_PlainText;<br /><span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spFontsAndColorsItems-&gt;Item(CComVariant(1),&nbsp;&amp;spColorableItems_PlainText);<br /><span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CComPtr&lt;EnvDTE::ColorableItems&gt;&nbsp;spColorableItems_LineNumber;<br /><span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spFontsAndColorsItems-&gt;Item(CComVariant(5),&nbsp;&amp;spColorableItems_LineNumber);<br /><span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">CComPtr&lt;EnvDTE::ColorableItems&gt;&nbsp;spColorableItems_Identifier;<br /></span><span style="color: #008080; ">44</span>&nbsp;<span style="color: #008000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">spFontsAndColorsItems-&gt;Item(CComVariant(L"Identifier"),&nbsp;&amp;spColorableItems_Identifier);</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">45</span>&nbsp;<span style="color: #008000; "></span><br /><span style="color: #008080; ">46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COLORREF&nbsp;clrWhite&nbsp;=&nbsp;#ffffff;<br /><span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COLORREF&nbsp;clrBlack&nbsp;=&nbsp;#000000;<br /><span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clrBlack&nbsp;=&nbsp;0x00c2c2c2;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;银色</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">49</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;COLORREF&nbsp;clrWhite2&nbsp;=&nbsp;12632256;<br /><span style="color: #008080; ">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clrWhite2&nbsp;=&nbsp;&nbsp;clrWhite;<br /><span style="color: #008080; ">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OLE_COLOR&nbsp;color;<br /><span style="color: #008080; ">52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spColorableItems_PlainText-&gt;get_Background(&amp;color);<br /><span style="color: #008080; ">53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(color&nbsp;==&nbsp;clrBlack)&nbsp;{<br /><span style="color: #008080; ">54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spColorableItems_PlainText-&gt;put_Background(clrWhite);<br /><span style="color: #008080; ">55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spColorableItems_LineNumber-&gt;put_Background(clrWhite);<br /><span style="color: #008080; ">56</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">spColorableItems_PlainText-&gt;put_Foreground(clrBlack);</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">57</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;}<span style="color: #0000FF; ">else</span>&nbsp;{<br /><span style="color: #008080; ">58</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spColorableItems_PlainText-&gt;put_Background(clrBlack);<br /><span style="color: #008080; ">59</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spColorableItems_LineNumber-&gt;put_Background(clrBlack);<br /><span style="color: #008080; ">60</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">spColorableItems_PlainText-&gt;put_Foreground(clrWhite2);</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">61</span>&nbsp;<span style="color: #008000; "></span>&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">62</span>&nbsp;<span style="color: #0000FF; ">#endif</span><br /><span style="color: #008080; ">63</span>&nbsp;}<br /><span style="color: #008080; ">64</span>&nbsp;</div><br />4. 执行命令， 进入项目后， 在菜单工具下会创建一个菜单项<br /><img src="http://www.cppblog.com/images/cppblog_com/wangkang2009/6.png" width="372" height="523" alt="" /><br /><br />点选后， 会在白色背景和银色间切换， 初始会进入银色背景。<br /><img src="http://www.cppblog.com/images/cppblog_com/wangkang2009/7.png" width="669" height="383" alt="" /><img src="http://www.cppblog.com/images/cppblog_com/wangkang2009/8.png" width="673" height="308" alt="" /><br /><br />5. 可直接使用msi安装包安装该插件, 同时该附件包含源代码<br /><a href="/Files/wangkang2009/backgroundchange.rar">/Files/wangkang2009/backgroundchange.rar</a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><img src ="http://www.cppblog.com/wangkang2009/aggbug/199509.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangkang2009/" target="_blank">wangkang</a> 2013-04-17 14:55 <a href="http://www.cppblog.com/wangkang2009/archive/2013/04/17/199509.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>lib 符号文件与源码不匹配的问题</title><link>http://www.cppblog.com/wangkang2009/archive/2012/12/07/196076.html</link><dc:creator>wangkang</dc:creator><author>wangkang</author><pubDate>Fri, 07 Dec 2012 05:34:00 GMT</pubDate><guid>http://www.cppblog.com/wangkang2009/archive/2012/12/07/196076.html</guid><description><![CDATA[&nbsp;&nbsp;&nbsp;今天又犯了一个低级错误， 情况是这样的， 编译好的代码下断点后总是与源代码不匹配， 弄了半天才想起来主项目没有编译。<br /><br />&nbsp;&nbsp; 对于这样的问题应该注意需要编译主项目， 最好的办法是设上依赖项。 <img src ="http://www.cppblog.com/wangkang2009/aggbug/196076.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangkang2009/" target="_blank">wangkang</a> 2012-12-07 13:34 <a href="http://www.cppblog.com/wangkang2009/archive/2012/12/07/196076.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>windows 下VC6制作php扩展dll</title><link>http://www.cppblog.com/wangkang2009/archive/2012/08/15/187263.html</link><dc:creator>wangkang</dc:creator><author>wangkang</author><pubDate>Wed, 15 Aug 2012 03:00:00 GMT</pubDate><guid>http://www.cppblog.com/wangkang2009/archive/2012/08/15/187263.html</guid><wfw:comment>http://www.cppblog.com/wangkang2009/comments/187263.html</wfw:comment><comments>http://www.cppblog.com/wangkang2009/archive/2012/08/15/187263.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wangkang2009/comments/commentRss/187263.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wangkang2009/services/trackbacks/187263.html</trackback:ping><description><![CDATA[<p>windows 下VC6制作php扩展dll</p>
<p>网上有很多该问题的文章， 之所以再写一遍， 是因为我根据他们的文章没有跑通， 综合了多人的文章加上一些自己的理解<br />最终解决了这个问题。</p>
<p>1. 下载带source的php(v5.2)包及同版本编译好的包(php最好使用同版本的), 这是vc6编译的, 在php.net可下载</p>
<p>2. 解压source包后找到ext\skeleton, 复制出一份新的， 目录改名为hello</p>
<p>3. 打开目录里面的.dsp, .c, .h, 把里面extname全部替换为hello</p>
<p>4. 把php5ts.lib拷贝至开发目录， 修改lib里的依赖php5ts_debug.lib 至php5ts.lib, 修改dll输出到php的ext目录</p>
<p>5. f7编译， 不出意外应编译通过。 注意， 一定要使用release编译， 用debug加载时不认， 我就因为这个问题卡住了很久。</p>
<p>6. php.ini里加入extension=php_hello.dll, 没设置扩展目录的话加上extension_dir = "d:/Progra~1/Apache/PHP/ext/",<br />重启apache</p>
<p>7. 不出意外， 在phpinfo()中可以看见hello模块了。</p>
<p>8. 写一个php， 内容如下<br />&lt;?<br />echo confirm_hello_compiled("kdskf");<br />?&gt;<br />页面执行后可看见string输出。</p>
<p><br />参考<br /><a href="http://blog.csdn.net/cyberhero/article/details/5966920">http://blog.csdn.net/cyberhero/article/details/5966920</a></p>
<p><a href="http://blog.csdn.net/php_boy/article/details/6456603">http://blog.csdn.net/php_boy/article/details/6456603</a></p><img src ="http://www.cppblog.com/wangkang2009/aggbug/187263.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wangkang2009/" target="_blank">wangkang</a> 2012-08-15 11:00 <a href="http://www.cppblog.com/wangkang2009/archive/2012/08/15/187263.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>