以下是引用TonyDeng在2013-7-16 23:30:17的发言:
正是因为用户需要使用长文件名,操作系统才响应要求做到能夠支持长文件名。用户要制作带空格的文件名是很自然的事,不允许带空格就等于限制,这是加强了制约而不是更宽松,与你说的正好相反。其实你最后写出的代码就是我前面给出的那种,只是没使用中间变量而已,在一个大字符串中夹杂宏的可读性不见得比直接宏一个字符串来得更简单。
写程序,除了考虑用户的感受,还要考虑阅读代码者的感受。用str="abc.xls"再"&str",比str="abc"再"&str..xls"更好,前者一看上去就知道宏的内容在哪里,而且也方便调试,MESSAGEBOX(str)检查语法是否错误,后者要调试者自己把.xls加上去,若错误发生在不能加上后缀字符串上(比如扩展名也是一个变量),则难以直接观察出来。我发觉很多人写代码爱把本来简单的一条语句整成一大串复杂的表达式,其实像SELECT FROM WHERE xxx .AND. yyy之类WHERE条件,当表达式稍微复杂一点的时候,最好把表达式提炼到外面去以方便调试,同时维护SELECT FROM语句的原始简单形式,如SELECT FROM WHERE &condition,这样就不至于被复杂的表达式迷惑致看不出语句的各个部件(甚至有人因写出太复杂的表达式而导致非法命令之类错误的,原因无非是括号不匹配之类最简单的错误),我也极度怀疑一条语句写成十行有何优越性。
你说得没错,但需要长文件名的用户绝不是我身边的这些用户。
至少我发现,对电脑知识不很熟悉的人一般不太喜欢文件名中夹杂空格和其它字符(名字长一点没关系),尤其是女生,她们会认为文件名中出现中文、英文、数字以外的字符很烦。现在的用户都是浮躁的,他们不会想去多学习点东西,所以,交到他们手上的东西越简单越好。最好是上手就会,随他们如何摆弄都不出错。