找回密码
 注册
关于网站域名变更的通知
查看: 3909|回复: 21
打印 上一主题 下一主题

发一个skill源码上来,好像有人想法跟我一样

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-8-22 15:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 gpxknk 于 2012-8-27 19:01 编辑
  1. axlCmdRegister("wxsf" 'wxSaveFileBT)
  2. axlShell("alias sf wxsf")
  3. ;axlShell("alias k wxsf")
  4. ;axlShell("alias kk skill 'load(\"wxSaveFileBT.il\")'")

  5. /*
  6. ├─
  7. │ ├─        程序名称:
  8. │ ├─        程序功能:保存文件,并注上(覆盖)当前时间
  9. │ ├─        创建时间:2012年08月22日
  10. │ ├─        修改时间:
  11. │ ├─        作    者:gpxknk
  12. │ └─        备    注:本来想保持原先格式才用了s1-s5,但后来觉得统一好点,即XXX-1630.brd
  13. ├─

  14. */
  15. procedure( wxSaveFileBT()
  16. prog( (tm sTime sDName sDNameNew s1 s2 s3 s4 s5)
  17.         tm= timeToTm(stringToTime(getCurrentTime()))
  18.         ;tm->tm_year        ;tm->tm_mon
  19.         sTime= sprintf(nil,"%2d%2d",tm->tm_hour,tm->tm_min)
  20.         rexCompile(" ")
  21.         sTime= rexReplace(sTime,"0",0)
  22.         sDName= axlCurrentDesign()        ;axlGetDrawingName
  23.         if(strlen(sDName)< 5 then
  24.                 sDNameNew= strcat(sDName,"-",sTime)
  25.         else
  26.                 rexCompile( "^\\(.+\\)\\([-_]+\\)\\([0-2][0-9]\\)\\([\\._-]*\\)\\([0-5][0-9]\\)$" ) ;-18.30.brd        _18.30.brd        _1830.brd
  27.                 if(rexExecute(sDName) then
  28.                         s1= rexSubstitute( "\\1" )
  29.                         s2= rexSubstitute( "\\2" )
  30.                         s3= rexSubstitute( "\\3" )
  31.                         s4= rexSubstitute( "\\4" )
  32.                         s5= rexSubstitute( "\\5" )
  33.                         sDNameNew= strcat(s1,"-",sTime)
  34.                 else
  35.                         sDNameNew= strcat(sDName,"-",sTime)
  36.                 );if
  37.         );if
  38.         axlSaveDesign(?design sDNameNew)
  39.         printf("Save:[%s]-->[%s]\n",sDName,sDNameNew)
  40. );prog
  41. );procedure
复制代码
以下为24日修改后的,增加了日期
  1. axlCmdRegister("wxsf" 'wxSaveFileBT)
  2. axlShell("alias sd wxsf date")
  3. axlShell("alias sf wxsf time")
  4. ;axlShell("alias k wxsf")
  5. ;axlShell("alias kk skill 'load(\"wxSaveFileBT.il\")'")

  6. /*
  7. ├─
  8. │ ├─        程序名称:
  9. │ ├─        程序功能:保存文件,并注上(覆盖)当前时间(日期)
  10. │ ├─        创建时间:2012年08月22日
  11. │ ├─        修改时间:
  12. │ ├─        作    者:gpxknk
  13. │ └─        备    注:
  14. ├─

  15. 2012年08月22日 统一格式,即XXX-1630.brd
  16. 2012年08月24日 添加日期,同时保持两种格式

  17. 命令行指令:
  18.         sd : 保存为 XXX_MMdd_hhmm.brd
  19.         sf : 保存为 XXX_hhmm.brd,也可能是 XXX_MMdd_hhmm.brd(只修改时间)
  20. 对于sD1 sD2 sT1 sT2:
  21.         sD1;日期前缀 eg: _X0824_1200.brd
  22.         sD2;日期后缀 eg: _0824X_1200.brd
  23.         sT1;时间前缀 eg: _0824_X1200.brd
  24.         sT2;时间后缀 eg: _0824_1200X.brd
  25.         1.以上也是无奈之举,不同的公司规则不一样,但连接符还是统一用"_",而"-"说实在的不规范
  26.         2.而日期(时间)中间不要插符号,如时间:_16.30.brd,"."用在基本文件名上说实在的也不规范
  27.         3.不要出现'空格','.','\',':','?'等等等等字符

  28. */

  29. procedure( wxSaveFileBT(@optional (mode "date") )
  30. prog( (tm sDate sTime sDName sDNameNew sPre sPost pt sD1 sD2 sT1 sT2)
  31.         sD1= ""
  32.         sD2= ""
  33.         sT1= ""
  34.         sT2= ""
  35.         sDName= axlCurrentDesign()        ;axlGetDrawingName
  36.         tm= timeToTm(stringToTime(getCurrentTime()))
  37.         sTime= sprintf(nil,"_%s%2d%2d%s",sT1,tm->tm_hour,tm->tm_min,sT2)
  38.         sDate= sprintf(nil,"_%s%2d%2d%s%s",sD1,tm->tm_mon + 1,tm->tm_mday,sD2,sTime)        ;;tm->tm_year
  39.         rexCompile(" ")
  40.         sTime= rexReplace(sTime,"0",0)
  41.         sDate= rexReplace(sDate,"0",0)
  42.         case(mode
  43.                 ("time" pt= strcat("^\\(.+\\)[-_]+",sT1,"[0-2][0-9]\\.*[0-5][0-9]",sT2,"$"),sPost=sTime)
  44.                 ("date" pt= strcat("^\\(.+\\)[-_]+",sD1,"[0-1][0-9][0-3][0-9]",sD2,"[-_]+",sT1,"[0-2][0-9]\\.*[0-5][0-9]",sT2,"$"),sPost=sDate)
  45.                 (t printf("ERROR:wxSaveFileBT: 'wxsf' argument error,\n"),return(nil))
  46.         );case
  47.         rexCompile(pt)
  48.         if(rexExecute(sDName) then
  49.                 sPre= rexSubstitute( "\\1" )
  50.                 sDNameNew= strcat(sPre,sPost)
  51.         else
  52.                 sDNameNew= strcat(sDName,sPost)
  53.         );if
  54.         axlSaveDesign(?design sDNameNew)
  55.         printf("Save: [ %s ] --> [ %s ]\n",sDName,sDNameNew)
  56. );prog
  57. );procedure
复制代码

评分

参与人数 1贡献 +5 收起 理由
langexie + 5

查看全部评分

  • TA的每日心情
    开心
    2022-5-13 15:06
  • 签到天数: 113 天

    [LV.6]常住居民II

    推荐
    发表于 2020-6-12 09:30 | 只看该作者
    請問各位大神 如果存檔日期時間要放在檔案名前方 小弟該如何修改此份skill

    该用户从未签到

    21#
    发表于 2012-8-24 12:13 | 只看该作者
    gpxknk 发表于 2012-8-24 10:56
    你的要求很高哟,不过这不是无人值守系统装机啊,
    我觉得能不能自动覆盖不重要吧,这不是定时保存呀
    今天加 ...

    嗯,加个日期就行了。

    该用户从未签到

    20#
     楼主| 发表于 2012-8-24 10:56 | 只看该作者
    mako88 发表于 2012-8-23 13:23
    只能保存当前的时间,年份和月份不能改;还有,就是在一分钟内保存,不能自动覆盖。

    你的要求很高哟,不过这不是无人值守系统装机啊,
    我觉得能不能自动覆盖不重要吧,这不是定时保存呀
    今天加上了日期,,不过对于你说的年份?是你打错了吗?板子名字有会加上年份的吗?一年365天,这周期长了点吧.

    该用户从未签到

    19#
    发表于 2012-8-23 16:46 | 只看该作者
    这个很有用.

    该用户从未签到

    18#
    发表于 2012-8-23 15:26 | 只看该作者
    这个貌似很有用的!

    该用户从未签到

    17#
    发表于 2012-8-23 13:55 | 只看该作者
    gpxknk 发表于 2012-8-23 13:53
    呵,
    每个人的要求都可能会不一样,我发的是源码呀,你们可以按自己的要求去改的呀,
    上面源码中的功能我 ...

    请问 年月 是怎么加的。

    该用户从未签到

    16#
     楼主| 发表于 2012-8-23 13:53 | 只看该作者
    本帖最后由 gpxknk 于 2012-8-23 13:55 编辑
    mako88 发表于 2012-8-23 13:23
    只能保存当前的时间,年份和月份不能改;还有,就是在一分钟内保存,不能自动覆盖。


    呵,
    每个人的要求都可能会不一样,我发的是源码呀,你们可以按自己的要求去改的呀,
    上面源码中的功能我应该说得很清楚了,只动时间,没有加年月,
    框架都出来了,改改很容易的哈.....
    至于你说的一分钟内你要覆盖.-----这样吧,你直接Ctrl+S,加回车,{:soso_e151:}
    或者你判断一下是否已经存在同名文件,然后..........

    该用户从未签到

    15#
    发表于 2012-8-23 13:23 | 只看该作者
    gpxknk 发表于 2012-8-23 10:20
    这一行应该是这样的

    只能保存当前的时间,年份和月份不能改;还有,就是在一分钟内保存,不能自动覆盖。

    该用户从未签到

    14#
     楼主| 发表于 2012-8-23 10:20 | 只看该作者
    mako88 发表于 2012-8-23 09:22
    请问:怎么用啊?我怎么总是出现
    Command > wxsf
    E- *Error* toplevel: undefined variable - wxSaveFile ...
    1. rexCompile( "^\\(.+\\)\\([-_]+\\)\\([0-2][0-9]\\)\\([\\._-]*\\)\\([0-5][0-9]\\)$" ) ;-18.30.brd        _18.30.brd        _1830.brd
    复制代码
    这一行应该是这样的

    该用户从未签到

    13#
    发表于 2012-8-23 09:22 | 只看该作者
    请问:怎么用啊?我怎么总是出现
    Command > wxsf
    E- *Error* toplevel: undefined variable - wxSaveFileBT
    是什么原因啊?

    该用户从未签到

    12#
    发表于 2012-8-23 08:51 | 只看该作者
    jekyllcao 发表于 2012-8-22 23:11
    自动保存只是把将文件以原来的文件名再存一遍,文件名没有改变,只是新保存的文件取代旧的文件。我们写的 ...

    噢~  look look{:soso_e113:}

    该用户从未签到

    11#
    发表于 2012-8-22 23:11 | 只看该作者
    mako88 发表于 2012-8-22 20:32
    和自动保存 有什么区别吗?

    自动保存只是把将文件以原来的文件名再存一遍,文件名没有改变,只是新保存的文件取代旧的文件。我们写的程式是在保存文件时时时跟系统的时间同步,每次保存的文件名都不一样。

    该用户从未签到

    10#
    发表于 2012-8-22 23:05 | 只看该作者
    gpxknk 发表于 2012-8-22 21:42
    如果你要用这种方式,那么你就直接替换吧,很直接的方法,1-12月,执行12次替换,不过怕不同的系统设置不一样这 ...

    你说的非常有道理,你不介意的话我拿你的代码为基础修改成我想要的样式,谢谢指教~~~

    该用户从未签到

    9#
     楼主| 发表于 2012-8-22 21:52 | 只看该作者
    请deargds 出来再修改一下,这个网页的文本转代码显示的程序怎么把$变成了
    [        DISCUZ_CODE_0        ]quot;
    我怕我去改会丢失你改的格式.{:soso_e100:}
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-22 11:22 , Processed in 0.187500 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表