QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 5337|回复: 1
收起左侧

[求助] 请教件事,Open "新建文本文档" For Output As #1成果输出位置怎么固定?

[复制链接]
发表于 2020-1-23 23:02:26 | 显示全部楼层 |阅读模式 来自: 中国江苏镇江
安装
主题分类用于问题归类:

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
同一台电脑运行,别人写的程序也没有专门写地址语句、文件保存类型,但是别人的宏能直接生成dxf文件。我写的程序结果保存在我的文档里,而且生成的是不带后缀的文件,手动加后缀或者写成Open "新建文本文档.dxf" For Output As #1。
1 U9 Z# l0 J9 J2 B" y9 yPS:生成的文件是没有问题的。结果老是存在我的文档里这个还没解决。
发表于 2020-1-30 09:03:11 | 显示全部楼层 来自: 中国北京
本帖最后由 woaishuijia 于 2020-1-31 04:24 编辑
3 H. i  c' L* a. j  O9 `' `" C1 V- s: n7 n  X6 x: l6 `% S5 G9 W
结合你另外一个帖子“”,我好像明白你的意思了。, Q" o4 e4 M9 g6 M; g& \! |  N
那个帖子里的Print #语句后面的文件号用的是1,这是有问题的。按照VB的语法规则,这个文件号是一个1~511的正整数,应该是由电脑自动生成。你这个直接使用1的情况,除非电脑只打开了一个文档,否则文件号1被其它文档占用,就出错了。只能先手动创建文档,再执行程序,我在那个帖子里的回复就是这样子的(那个回复为了简短,没有讨论编程技巧),为了保证程序顺利运行,要求先创建文档。
/ M1 j; Z  Y9 g) F! ]$ U$ a把那个主程序和子程序的代码改一下
& J1 s% a( h/ y' b0 n4 ?9 j1 }
  1. Dim FileNumber As Integer
    ' @$ r3 m( V& [% j

  2. 1 j- m. |* N/ j# h) v
  3. Sub A(). u! U% p8 d4 t+ o* s
  4.     FileNumber = FreeFile()
    8 T4 t7 V7 C  W
  5.     Open "c:\1.dxf" For Output As #FileNumber
    * J: e5 e- `: g  w
  6.     Print #FileNumber, 0
    ) E9 ~  l& o* o6 J1 n
  7.     Print #FileNumber, "SECTION") D8 B/ Z& L, H% z6 T/ Q
  8.     Print #FileNumber, 2# J+ B/ U/ s8 P! s
  9.     Print #FileNumber, "ENTITIES"
    * T9 ]( g) k1 U8 q( J- {8 z
  10.     Print #FileNumber, 0
    6 _( n& p( u8 b/ k0 j+ Q( U
  11.     DxfLine 0, 0, 100, 100, 1, "Continuous"
    # X8 u% X8 p( d; z
  12.     Print #FileNumber, "ENDSEC"
      o" b8 G; P  a4 ]8 V
  13.     Print #FileNumber, 0
    : [, ?) ?0 X5 ?% F7 S- n% k
  14.     Print #FileNumber, "EOF"
    ' O( a" b0 ]+ I: j
  15.     Close #FileNumber
    5 n- M, _9 q/ d. x- Y; y: g
  16. End Sub4 D0 U; E' S* z/ U

  17. 0 w) t' P3 P- J; K
  18. Sub DxfLine(xs#, ys#, xe#, ye#, cl%, Optional Typ$)
    4 m0 ?- A0 Z* c
  19.     Print #FileNumber, "LINE"0 v: ^1 `; z% K* }: N& I
  20.     Print #FileNumber, 8
    / r/ ~7 [& ^5 K- Y* o; T3 s
  21.     Print #FileNumber, "0"
    * Z, v& e4 K$ ]8 \
  22.     If Typ <> "" Then
    2 z- \' `! K( ?" z5 [4 r' r
  23.        Print #FileNumber, 68 v$ O+ t% c" W* A
  24.        Print #FileNumber, Typ
      ~: p' \8 p. |
  25.     End If
    1 U0 `6 l3 j& W- u% X% ^
  26.     Print #FileNumber, 62
    0 [" k7 T1 u6 b3 E. B. L
  27.     Print #FileNumber, cl
    $ _3 X: ?6 _5 R1 S  K' o2 X# K7 i
  28.     Print #FileNumber, 10/ X3 n3 U8 p9 B4 g
  29.     Print #FileNumber, xs
    2 o0 H) `$ }% ]
  30.     Print #FileNumber, 20
    ; v; i& w4 |% i- j8 S( H
  31.     Print #FileNumber, ys7 q; @$ M( I3 {( O9 ?! N
  32.     Print #FileNumber, 304 d; k7 j8 A1 `
  33.     Print #FileNumber, 0#
    ' r& C& q0 z" [0 T3 {  U9 U
  34.     Print #FileNumber, 11( H+ z! L% V# ?* h: i
  35.     Print #FileNumber, xe
    8 f  O( e3 Z. R1 V$ B7 B
  36.     Print #FileNumber, 218 d* X8 m* t! U- H9 i+ \
  37.     Print #FileNumber, ye2 ]5 z+ a; K( I3 E3 X  j
  38.     Print #FileNumber, 31
    , e0 J0 b8 ~) I6 l% k7 k) o2 G6 f
  39.     Print #FileNumber, 0#: K* M% Y4 H2 E+ N$ T
  40.     Print #FileNumber, 05 W+ d6 M. x) Z$ @+ i
  41. End Sub
    # O* P) `1 t& A0 [
复制代码
代码中第一行是在通用声明区声明一个名为 FileNumber 的整型全局变量,用于保存文件号
; [0 l5 q# X9 c) F; b第四行用 FreeFile 函数获得可用的文件号,后面的代码都使用这个文件号,包括子程序中的Print #语句,这也是使用全局变量的原因2 ]- |! c2 N5 ?: w. Y4 Z- q
第十八行,子程序的参数中的前四个都使用了显式类型声明字符“#”,表明这是Double 数据类型;第六个参数使用了Optional 关键字,表明这后面的参数是可选的:在调用子程序时,如果线形是“BYLAYER”,则不必带这个参数。如果不用这个关键字,在调用子程序时,就必须有这个参数,尽管它可能是空字符串。
" t# g- U6 `4 ?" V: ]9 W第二十、二十三、二十六、二十八、三十、三十二、三十四、三十六、三十八和四十行,都去掉了双引号和空格,这里没必要使用字符串类型,用整型就可以
$ I4 |  S4 o+ {1 i6 O# f第二十二、二十四行去掉了变量后面的显式类型声明字符“$”,没必要(已经在在第十八行的参数列表中声明了)。同理,第二十七行去掉了双引号及其内部空格及逗号,去掉了变量后面的显式类型声明字符“%”,没必要( k0 p7 S# j/ v& c, I
第三十三、三十九行把"0.00"改成了0#
) S  c) N9 s" O" Z( \( q, z! z去掉了原子程序中的
  1. Label:
    / }/ _9 x/ q2 L+ E* t
  2.      Exit Sub
复制代码

评分

参与人数 1三维币 +20 收起 理由
kuangben8 + 20 感谢您解答了求助的问题。

查看全部评分

发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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