标题:问个关于C的问题
取消只看楼主
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
结帖率:97.67%
已结贴  问题点数:20 回复次数:11 
问个关于C的问题
每次用C写完程式时~程式需要去读取档案位置~和指定存档位置~
但是如果档案位置包含空白或有中文字或有特殊字元~
C每次都会异常~不知道有什么方法可以解决此问题?
原则上我都是使用VB6制作user介面~然后核心使用C去运行~
VB6中调用C是使用DOS Shell命令方式~
而DOS命令又会以空白符号来区分为各个不同的参数~
以致于到C时解出来的参数已经不是原本VB6所带入的参数~
加上单字元和双字元的问题~不知道有没有高手可以解决~
目前暂时不考虑使用CString去处理~
搜索更多相关主题的帖子: 档案 
2013-03-08 10:12
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
得分:0 
那如果是Shell(XXX\test.exe " a1 2.txt",vb???)
这样main()接口处接收到的参数不就又变回来了?

还是要变这样?
那如果是Shell(XXX\test.exe "\" a1 2.txt"\",vb???)
VB和C的语法有时会搞混...

那程式若是改成双字节,能支持中文字时,是否就表示所有字节都是一次读取2bytes...

双引号、正反斜线、问号、尖括号、星号、冒号、竖线等

目前是这样搞没错,只是公司边程人员只占一小部分,即使我知道这些限制,
但是仍有9成以上的工作人员不知道,每​​次发生问题都要跑来问,久而久之传开来,
就变成我写的代码都有问题,实在很头痛.

P.S 可恨的是大多数人贪图方便,每次都把程式放在桌面运行,
微软也够机车,桌面路径就带了两个空白,每次都要讲,
讲到我都觉得烦了,所以想从代码上​​去解决这限制.

宽字符是因为中国人都爱用中文当资料夹名称,偏偏中文又是宽字符的.
C把宽字符当单字符来读取,马上就乱码了,只是好奇Unicode和ANSII Code编写实有何差别?

不要投我
2013-03-08 15:53
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
得分:0 
这就是我的问题要怎解决?


不要投我
2013-03-12 09:20
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
得分:0 
结帖画面很烦~我先结了~

不要投我
2013-03-12 09:22
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
得分:0 
1.你用的编译器应该不是VC6

2.你说的意思我懂~可是有限制~必须是内置参数~

3.可是我的问题在于外部呼叫时~

4.参数无法带入VC内

5.同事有提供一个方法透过BAT~但是我想知道有没有更直接的方式~在VB6内直接带入?

不要投我
2013-03-13 13:52
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
得分:0 
透过BAT~OK~

but ...VB6 Shell ???

不要投我
2013-03-13 15:28
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
得分:0 
要最终的效果有双引号...
谢谢~我倒是没想过这点~我再试试看~

不要投我
2013-03-15 23:53
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
得分:0 
经T版指点已经知道怎么控制上引号~但是空白符号还是无法克服~
难道这部分要在C里解决吗?再想深一点~不就VB的阶段就要先将资料路径做一番处理~
看是否有特殊符号要进行特殊处理?有更简单的方法吗?


不要投我
2013-03-18 14:34
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
得分:0 
其实也不必自找麻烦~动态生成BAT档~再去叫起来就行了~
这样就简单多了~
只是总感觉有东西不懂~不把它弄明白~心里总有个疙瘩在~

不要投我
2013-03-18 15:11
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:473
专家分:915
注 册:2012-10-26
得分:0 

路径中本身带有空格~DOS系统又预设以空格为参数分隔符号~
这道关卡要怎突破~为啥BAT没这问题~怪事~

[ 本帖最后由 yz1025 于 2013-3-19 10:01 编辑 ]

不要投我
2013-03-19 09:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-400124-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.320503 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved