
|
|
|
|
|
闪艺文书世家·挚诚版 下载(内含注册机)! |
|
|
REALbasic:Window、Mac和Linux开发工具 |
|
|
公司网站美国镜像 |
|
|
REALbasic 最新中文联机语言参考 |
|
|
藍色小鋪 CSDN English MSN |
备忘录4
作者:kmzs 日期:2009-05-24
正在读的图书资料:
技术类:
《正则表达式必知必会》
《Cocoa入门——使用Objective-C》
《Real OOP with REALbasic》Guyren G Howe著
ADC文档《Multiple User Environments (Mac OS X)》(2009年5月19日完成)
ADC文档《Mac OS X Notification Overview (Mac OS X)》
《汇编语言(第2版) 》
《Designing Interface》(Jenifer Tidwell著,O'Reilly出版)
非技术类:
《风俗论(上册)》 [法]伏尔泰 商务印书馆
《阿拉伯通史(下册)》( [美籍黎巴嫩裔] Philip K.Hitti ,新世界出版社)(2009年5月19日完成)
技术类杂志:《程序员》2009年5月号(2009年5月18日完成)
原计划完成情况:
《奥斯曼帝国》完成
《阿拉伯通史(上册)》完成
《德川家康(第十一部)》完成
《VBA从入门到精通(第二版)》完成
《程序员》2009年3月、4月号 完成
--------------
* WORK *
忙于下列项目
Optimism Desktop v3.0 (生活与健康)
Optimism Flex v1.0 (生活与健康)
VBMA v1.0 (实用工具)
Alien Utility v1.5 (实用工具)
MadeForWorship v1.0 (多媒体——宗教仪式???)
用IDE Script对REAL Studio进行自动化控制一例(答法国客户问)
作者:kmzs 日期:2009-04-19
最近一段时间没少跟应用程序自动化控制打交到,比如在Windows上是许多Windows软件都自带的VBA(MS Office,CorelDraw和AutoCAD等都支持),在Mac上则是能自动化控制所有Cocoa程序的AppleScript。因此对REAL Studio的IDEScript也有些兴趣,便稍微研究了一下。
REAL Studio要有自己的自动化功能就需要有能跨平台的自动化控制引擎。只能在Mac上用的AppleScript显然是不行的,而且REAL Studio的Mac版暂时还是基于Carbon框架程序而不是Cocoa程序,需要被AppleScript支持就要写个庞大的AppleScript扩展,还不一定能做到完美。VBA本来的确有Mac上的实现,但是由于没法将Mac版VBA代码编译为Intel指令,MS从Office 2008 for Mac开始已经移除了VBA功能,转而支持AppleScript(在大量需要跨平台VBA实现的客户的强列要求下,MS的苹果软件事业部似乎已经动手重新增加VBA对Mac版Office的支持了)。因此REAL Studio基于自己的RBScript引擎设计并开发了专门的IDEScript自动化控制功能。
IDEScript主要用于编写软件构建脚本,使用户能实现对程序编译、打包,甚至发布的自动化处理。当然也可以做很多别的事情,比如提供这个法国客户所需要的功能。这个客户的需求很清晰,他需要一个自动化脚本,把某个工程中某几个工程项的附注(估计这个用户习惯用附注部分来编写项目文档)导出为文本文件。
因为他经常修改附注内容,每次手动导出附注比较麻烦,过程大抵是这样的:先进入要导出其附注部分的工程项,接着进入附注中,在代码编辑器里全选,复制,然后打开一个文本编辑器,将复制的内容贴进去,选择文件位置并进行保存,最后关闭文本编辑器。虽然不复杂,每天都要重复两三次也不是件有趣的事情。
REALbasic的IDE是没有将工程项中的例程或附注导出为文本的功能的,因此IDEScript的命令集中并没有直接可以调用的命令。我稍微研究了一下,发现要解决这个法国用户的需求并不困难,如果只要支持一个平台的话,只需2行代码(我为了保险起见写了行错误判断)。具体的想法是,先用Location命令跳转到指定的附注项,在用Text命令获取当前代码编辑器中的文本,最后用DoShellCommand调用Unix或Dos的流定向命令来将文本写出到文件中。由于法文客服只需要一个Mac版本做参考,我给就只给出了一个Mac的版本,在Linux上要稍微修改下Unix命令的部分,在Windows上也差不多,Dos的echo命令看来是从Unix上学去的(注意Dos的流输出定位指令是“>>”)。当然使用REALbasic/RBScript语言的预编译指令#if...#elseif...#endif就能编写出支持3个平台的代码了。我的脚本如下:
Location="Window1.Note1"
Dim Result As String=DoShellCommand("echo '"+Text+"' > '/Users/zhujianan/Documents/Note1.txt'",5000)
If Result<>"" Then Print "Failed to save note: "+Result
第一行代码用于跳转到工程项Window1的名为Note1的代码项/附注项中,第二行代码执行Unix命令echo并用流定向指令符“>”将Text命令返回的文本写入到指定的文件中,第三行命令检查是否正常执行(在Mac中此Unix命令正常执行后不打印任何内容,否则在终端上打印输出错误信息),如果有错误信息就显示给用户(可能的错误比如有目录不存在,文件不可写之类)。
然后在REAL Studio的脚本编辑器中保存这个脚本,以后就可以直接从文件菜单中选择这个脚本并执行了。
YY宣言[纯属玩笑]
作者:kmzs 日期:2009-03-09
出生日期:1984.6.6
出生地:黑龙江齐齐哈尔,曾居嫩江南畔十载,离江边不过半里之遥
户籍:上海静安,迁居苏州河左岸十数年,距河岸二三百步
实际籍贯:浙江宁波,一说慈溪,一说余姚,户口簿上竟随母系载齐齐哈尔
身高:站在冰封的海平面上时,头顶上瑟瑟发抖的苍蝇恰好处于海平1800毫米处
体重:毛重6万公克,略显骨感
相貌:初中时代曾被少量情窦初开的少女捧为帅哥,纠缠不已,目前已年老色衰,尚可供卡西莫多欣羡
职业:给员工打工的微型软件公司私营企业主,常以文人情怀来写代码,虽无法挥洒自如,却可自娱自乐兼养家糊口
爱好:读书,文史社科为主,总体上爱好不太确定,可以随需发展
其它:无犯罪前科,无前女友,更无前妻,亦无私生子
(本简介为不完全版,完全版涉及个人隐私不便公开。)
二、本人誓言
本人已发下毒誓,其大意为:不主动追求女生,如破此戒,定糟天罚,处罚方式为每日抄写“吾爱南无阿弥陀佛”九千九百九十九遍,直至往生西方极乐世界见到阿弥陀大佛为止。故此,请各位尊贵的小姐们自行抓捕,但谢绝使用暴力制伏。
(毒誓为不完全版,完全版涉及个人隐私不便公开。)
三、本人口味
性别:女,我知道没有发展出同性或双性倾向是我的错,因此烦请男士和双性人勿要打扰
出生日期:1984.6.6凌晨3时之前
身高:在本人2/3及以上又不比本人还高的,1米2以下的恕不接待,恋童是犯罪
体重:在本人体重的1/2到4/3之间,为防止遭受家庭暴力,吨位超过0.08的恕不接待
相貌:和本人站在一起,不像在给世界名著《陪衬人》拍电影版即可
职业:除拳击教练或选手、西医及“特殊职业”从业者外
其它:不限
(本人特此保留口味部分的最终解释权,若经修改,恕不另行通知。)
Macross系列的传统
作者:kmzs 日期:2009-01-13
以歌声为武器,以会变形的小飞机、大飞船为装备,以外星怪人、怪物为主要对象,一面开现场演唱会,一面发展三角关系,一面作战的一组故事。
十大不可或缺的传统人设及剧情
1、喜欢天空的男主人公
(超时空要塞Macross,Macross Frontier,Macross Plus等)
2、喜欢唱歌的女主人公
(超时空要塞Macross,Macross 7及其OVA, Macross Frontier,Macross Plus等)
3、男主人公突遇急情不得不驾驶来路不明的战机,且首次驾驶时救了女主人公一命
(超时空要塞Macross,Macross Frontier)
4、男主人公与女主人公被困密室,一边YY,一边等待救援
(超时空要塞Macross,Macross 7, Macross Frontier)
5、Miss Macross评选
(超时空要塞Macross,Macross 7, Macross Frontier)
6、主人公开音乐会
(超时空要塞Macross,Macross 7, Macross Frontier)
7、一打仗就唱歌
(几乎全部)
8、女主人公在娘娘中餐馆帮忙或打工
(超时空要塞Macross,Macross Frontier)
娘娘主题歌歌词由中文、英文、Zentraedi文和日文(共计地球语三种,外星语一种)拼成,最完整的全文如下:好吃来来~美姑娘!娘娘~娘娘~你好娘! Gorgeous~Delicious~Deculture啊~~~おいしいニャー!
9、至少一名男主人公在骷髅中队担任飞行员
(超时空要塞Macross,Macross Frontier,Macross Zero)
10、由复杂的三角关系来推动剧情
1)超时空要塞Macross:林明美+一条辉vs.明美表哥(一女+二男)是为三角一组;一条辉+早濑未沙vs.明美(一男+二女)则为三角二组;最终结果(漫画or小说版):一条辉、早濑2012年在首次大规模移民船图上成婚,明美亦上此船(准备第三者插足?),明美表哥行踪不明。
2)Macross 7:米雷尼·吉那斯+热气·巴撒拉vs.贾姆林(一女+二男)三角组合,结果:至少到205X年为止结果不明。
3)Macross Frontier:早乙女アルト+雪莉露·诺姆vs兰华·李(一男+二女)三角组合,结果:尚在发展中,2060年之前看来不会有结果。
4)Macross Plus:谬芳容+勇·戴森vs.卡尔德·果阿·波曼(一女+二男)三角组合,结果:不明。
5)Macross Zero:工藤信+莎拉·诺姆vs.玛奥·诺姆(一男+二女)三角组合,结果:无果。
Yack Deculture!
Is a specific app running?
作者:kmzs 日期:2009-01-10
How to know whether an app is running in REALbasic? The common idea is looping through all processes and testing with the name of the app which you want to know if it's opened. 原载本人英文Blog。
Windows
On Windows, we can do it via declares, the Win32 APIs we need to use are EnumProcesses, EnumProcessModules, GetModuleFileNameEx, etc. I wrote a function a few days ago. You can find the source code of it in Window1 of the RB project attached. I didn't implemented it in a very smart way. It gets the names of all processes, then tests to see if a specific app name can be found. It because I wanted to demonstrate how to list the paths of all processes. You may make some changes on it to exit the For loop when the app is found.
Mac OS X
On Mac, calling AppleScript functions seems the best way. You can loop through all process objects provided by the System Events application in a tell block. However, since AppleScript supports using keyword each or plural of class name to access all objects in the direct parameter of tell statement (in this case, it's the System Events application), so that the script can be simply written like this:
Tags: REALbasic Declares AppleScript
Some compression arithmetics implemented in RB.
作者:kmzs 日期:2009-01-08
I implemented some common compression arithmetics (LZ77, RLE and Huffman) in RB above a half year ago. I've referred to several open-source C/C++ projects/libraries. None of them has any limit of using, modification and issuance, so they can be used in any project for free.
Download them here.
原载本人英文Blog。
Tags: REALbasic









