突变,交换,复制,选择。变异永远有,只有稳定解才能存在。<br> 做黎明时代的英雄
  • 自己回答:通过整合现有网络服务,实现手机短信记账

    2007-12-05

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://goldengrape.blogbus.com/logs/11563317.html

    目的:利用手机短信记账,获得每月的收支明细,生成个人的资产负债表,产生统计图。

    条件:1.利用现有的网络服务,不产生额外的服务费,我可不希望为了记账而花费更多的钱(我的手机短信包月似乎足够多) 。2.不能使用单一一个服务商提供的现成的服务(我知道有现成的)。3.必须在中国大陆能够实现。

    解答:

    1.到饭否,获得自己的RSS地址:http://api.fanfou.com/statuses/user_timeline/goldengrape.rss 

    2.到yahoo pipes建立一个过滤器,只允许从饭否来的RSS中包含@记账的条目通过,实例见http://pipes.yahoo.com/goldengrape/cost,再获得一个过滤后的RSS输出。

    3.到google docs里面建立一个电子表格:

    4.使用=ImportFeed("从yahoo pipes获得的RSS"),导入数据

    5. 直接导入的数据有4个部分,第一个是题目,第二个是URL,第三个是时间,第四个是和题目一样的内容,比如:"金色葡萄:@花费 测试 10.00",注意需要用=CONTINUE函数来续写

    6. 需要把类别(测试)和金额(10.00)区分出来放入不同的单元格以便统计处理。所以需要一系列字符串的操作:

    6.1用find函数找到第一个空格,应该是在@花费之后,=FIND(" ";B3),同理找到第二个空格,仍然用find,不过起始位置是第一个空格位置+1,

    6.2用MID函数提取类别,也就是basic里面常用的mid$,从第一个空格后面起始,长度为两个空格位置差的字符串就是了。

    6.3再用MID函数提取金额,从第二个空格后起始,长度为字符串总长度(LEN函数计算)-第二个空格的位置。只要提取的字符串只包含数字,google docs能够自动识别成数值型的变量。

    7.处理日期,从饭否传来的时间格式很别扭,“Tue, 04 Dec 2007 07:03:16 PST
    ”,看来很难转换成excel识别的日期格式,只打算记录一个月的花费,于是只记录了日期,也就是在“,”后面的两个数字。有时间的话,也可以再建立一个转换表,把Dec转换成12,再把空格转换成/,就变成04/12/2007,那样的话也许就能够被google docs识别成日期了。

    后续的统计图什么的就没什么好说的了。只是在google docs上作图很慢,还是下载到本地,用excel做好了再上传好了。

    附带一个用excel转换缩略码的方法,比如12个月: Dec->12, Nov->11等等,也可以转换jspt到金色葡萄。方法是:

    先建立一个字符串:Dec/12;Nov/11;jspt/金色葡萄;

    然后用find找到dec,接着从dec位置后面找到第一个“/”,然后从“/”后面找到第一个“;”,那么用mid提取“/”和“;”之间的字符就可以了。用这个方法,可以建立很长的缩略码字典。

    不想抢记账网站的生意。其实可以抢注一个"记账"的用户名,建立一个更通用的模型。

     

     


    收藏到:Del.icio.us




    评论

  • 先建立一个字符串:Dec/12;Nov/11;jspt/金色葡萄;

    然后用find找到dec,接着从dec位置后面找到第一个“/”,然后从“/”后面找到第一个“;”,那么用mid提取“/”和“;”之间的字符就可以了。用这个方法,可以建立很长的缩略码字典。



    如果一个缩略是 Dec,一个是Decs,咋办呢?
    稍微改一下,你应该直接搜索: ;Des/,这样比较稳妥
    金色葡萄回复shenxinaz说:
    赞!
    正在迷茫,真是个好办法。
    本来是用在管理病床的统计表里面的。懒得输入医生的姓名,于是用缩写,确实有很多包含项。这次可以解决了。
    果然还是专业程序员。
    2007-12-06 13:38:26

发表评论

您将收到博主的回复邮件
记住我