找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 248|回复: 4
打印 上一主题 下一主题

求助为什么获取的FORM里的路径提取出来不是string格式?

[复制链接]

14

主题

143

帖子

-1万

积分

未知游客(0)

积分
-11958
跳转到指定楼层
1#
发表于 2015-9-16 08:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

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

x
FORM里是这么设置的
               fprintf(formFile "FIELD  file_direction \n")
            fprintf(formFile "FLOC 5 1 \n")
            fprintf(formFile "STRFILLIN 25 35 \n") 已经定义为字符啦
            fprintf(formFile "ENDFIELD  \n")
             fprintf(formFile "FIELD  mima \n")
            fprintf(formFile "FLOC 5 4 \n")
            fprintf(formFile "STRFILLIN 25 35 \n")已经定义为字符啦
            fprintf(formFile "ENDFIELD  \n")
                    fprintf(formFile "FIELD liulan \n")
                    fprintf(formFile "FLOC 33 1 \n")
                    fprintf(formFile "MENUBUTTON \"\344\257\300\300\" 6 2 \n")
                    fprintf(formFile "ENDFIELD \n")

          (case myForm->curField
               ("liulan"
                    workpath=axlDMFileBrowse(nil nil ?optFilters "Skill File(.*il)|*.il|")
                    axlFormSetField(myForm "file_direction"  workpath)
               )
               ("file_direction"
                  _file = myForm->curValue
                )
               ("jiami"                  
                    if(_file != nil
                     then                                      
                    mm = myForm->curValue                  
                    outFilePath = strcat(substring(_file 1 (strlen(sprintf(nil "%s" _file))-3)) ".ile")
                    encrypt(sprintf(nil "%s" _file) sprintf(nil "%s" outFilePath) mm)
                    axlUIConfirm(sprintf(nil "Encrypt skill success! Password is %s" mm))
                    else
                     axlUIConfirm("Error! No File Selected!")
               )
               )
现在运行的时候老是报错E- *Error* strcat: argument #1 should be either a string or a symbol (type template = "S") - nil
不知道是为什么,那个_file获取值的TYPE不是string吗?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 支持!支持! 反对!反对!

24

主题

1796

帖子

8046

积分

六级会员(60)

Rank: 6Rank: 6

积分
8046
2#
发表于 2015-9-16 09:18 | 只看该作者
你从strcat(substring(_file 1 (strlen(sprintf(nil "%s" _file))-3)) ".ile")看下substring 的返回值 和类型及就知道了啊 单句调试嘛,拿眼睛看有什么用     看下中间每个返回参数的value  type就一目了然了

点评

我知道啊,只有_file这个参数是string那么strcat(substring(_file 1 (strlen(sprintf(nil "%s" _file))-3)) ".ile")返回值肯定就是string了啊 我现在就是不知道那个提取的值是不是不是STRING所以才引起这个ERROR的  详情 回复 发表于 2015-9-16 15:09

14

主题

143

帖子

-1万

积分

未知游客(0)

积分
-11958
3#
 楼主| 发表于 2015-9-16 15:09 | 只看该作者
kevin890505 发表于 2015-9-16 09:18
你从strcat(substring(_file 1 (strlen(sprintf(nil "%s" _file))-3)) ".ile")看下substring 的返回值 和类 ...

我知道啊,只有_file这个参数是string那么strcat(substring(_file 1 (strlen(sprintf(nil "%s" _file))-3)) ".ile")返回值肯定就是string了啊
我现在就是不知道那个提取的值是不是不是STRING所以才引起这个ERROR的啊?
我的想法是打开某个路径文件,然后把这个文件的后缀名改成.ile。

点评

你可以改用此函數axlDMFileParts() 提取檔案名稱, 另外必須修改成下列 ("liulan" workpath=axlDMFileBrowse(nil nil ?optFilters "Skill File(.*il)|*.il|") axlForm  详情 回复 发表于 2015-9-16 15:43

57

主题

1857

帖子

7919

积分

六级会员(60)

Rank: 6Rank: 6

积分
7919
4#
发表于 2015-9-16 15:43 | 只看该作者
wuyuhe 发表于 2015-9-16 15:09
我知道啊,只有_file这个参数是string那么strcat(substring(_file 1 (strlen(sprintf(nil "%s" _file))-3 ...

你可以改用此函數axlDMFileParts() 提取檔案名稱,

另外必須修改成下列
("liulan"
                    workpath=axlDMFileBrowse(nil nil ?optFilters "Skill File(.*il)|*.il|")
                    axlFormSetField(myForm "file_direction"  workpath)
                    _file =  workpath
               )

点评

把那个_file=workpath放liulan里问题解决了,谢谢!  详情 回复 发表于 2015-9-16 17:11

14

主题

143

帖子

-1万

积分

未知游客(0)

积分
-11958
5#
 楼主| 发表于 2015-9-16 17:11 | 只看该作者
XYX365 发表于 2015-9-16 15:43
你可以改用此函數axlDMFileParts() 提取檔案名稱,

另外必須修改成下列

把那个_file=workpath放liulan里问题解决了,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-2-23 00:40 , Processed in 0.067429 second(s), 32 queries , Gzip On.

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

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

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