QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
goto3d 说: 版主微信号:caivin811031;还未入三维微信群的小伙伴,速度加
2022-07-04
全站
goto3d 说: 此次SW竞赛获奖名单公布如下,抱歉晚了,版主最近太忙:一等奖:塔山817;二等奖:a9041、飞鱼;三等奖:wx_dfA5IKla、xwj960414、bzlgl、hklecon;请以上各位和版主联系,领取奖金!!!
2022-03-11
查看: 4678|回复: 1
收起左侧

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

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

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

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

x
同一台电脑运行,别人写的程序也没有专门写地址语句、文件保存类型,但是别人的宏能直接生成dxf文件。我写的程序结果保存在我的文档里,而且生成的是不带后缀的文件,手动加后缀或者写成Open "新建文本文档.dxf" For Output As #1。1 q0 E) h# z. `5 |$ i% R
PS:生成的文件是没有问题的。结果老是存在我的文档里这个还没解决。
发表于 2020-1-30 09:03:11 | 显示全部楼层
本帖最后由 woaishuijia 于 2020-1-31 04:24 编辑 ! v8 x( Y1 _! Z% y" {1 T/ {

# ^/ F/ b& v  M3 q; Z" N( M结合你另外一个帖子“”,我好像明白你的意思了。
9 {+ m+ {, x/ X  I' R7 R+ Y  ]那个帖子里的Print #语句后面的文件号用的是1,这是有问题的。按照VB的语法规则,这个文件号是一个1~511的正整数,应该是由电脑自动生成。你这个直接使用1的情况,除非电脑只打开了一个文档,否则文件号1被其它文档占用,就出错了。只能先手动创建文档,再执行程序,我在那个帖子里的回复就是这样子的(那个回复为了简短,没有讨论编程技巧),为了保证程序顺利运行,要求先创建文档。
+ r- f" e$ F" `( v0 T- R2 G把那个主程序和子程序的代码改一下
% Q: x$ c8 t8 W1 W- U1 f
  1. Dim FileNumber As Integer
    / t' U  ?2 D4 G
  2. : K/ l8 j" u+ \: R
  3. Sub A()
    . D- z) ~+ P$ i: R. J
  4.     FileNumber = FreeFile()
    1 {' P( F$ o  b" k+ S9 h3 L
  5.     Open "c:\1.dxf" For Output As #FileNumber0 |' }" u2 M: G6 c; V+ C
  6.     Print #FileNumber, 0
    5 O5 I3 ~# _$ }0 K+ q1 v' |! ^. r' J: Z
  7.     Print #FileNumber, "SECTION"
    2 Z+ g9 ^4 P+ i) j5 C& i! p
  8.     Print #FileNumber, 2
    ) C& e1 ^8 W' Y/ _, P/ o) J2 H& Q; v
  9.     Print #FileNumber, "ENTITIES"1 Q6 t; ]" j# A( L: z/ V% J9 T
  10.     Print #FileNumber, 0
    : `  B& ~6 v3 C# d$ H! q% ^  v
  11.     DxfLine 0, 0, 100, 100, 1, "Continuous"2 ~( i, R- d8 R2 B; k
  12.     Print #FileNumber, "ENDSEC"- q0 N" [& ], e2 z. y. s& Y* \
  13.     Print #FileNumber, 0& i2 I$ y1 V7 x0 A$ t
  14.     Print #FileNumber, "EOF"
    ; e- O- o$ r% X' b) C
  15.     Close #FileNumber2 g; \  e+ N: S% i! s, O) X
  16. End Sub
    7 k5 p9 Z2 ^; z

  17. + p2 O& K2 S+ [1 a
  18. Sub DxfLine(xs#, ys#, xe#, ye#, cl%, Optional Typ$)
    4 w& e! q9 H4 M6 a7 p
  19.     Print #FileNumber, "LINE"
    2 V! L* v5 X9 ]" H+ K
  20.     Print #FileNumber, 8) S% k9 I  m: a6 S0 G
  21.     Print #FileNumber, "0"( b1 s; P; _9 ^5 k; o- r% F4 w5 v
  22.     If Typ <> "" Then  k6 s9 u  n7 C' A9 r
  23.        Print #FileNumber, 6; O5 s/ v/ T. F( ^
  24.        Print #FileNumber, Typ
    6 r0 }: M# e3 b# T$ }5 \4 [
  25.     End If* a& f) {' `3 ^! J: b6 b8 V
  26.     Print #FileNumber, 62
    % J5 W+ F% O+ B! G! q, [  b
  27.     Print #FileNumber, cl4 h7 G) S0 W8 n( p
  28.     Print #FileNumber, 109 _+ L; I/ y, T9 q
  29.     Print #FileNumber, xs
    - @3 K6 J" f2 e/ |& i  G& U
  30.     Print #FileNumber, 20
    . }7 W3 D" e% f
  31.     Print #FileNumber, ys% a1 k* z# h# W( j& }& {
  32.     Print #FileNumber, 30
    1 w$ [" y. [8 c" ~7 h3 i7 d
  33.     Print #FileNumber, 0#" J/ I& O8 Q' Y& m
  34.     Print #FileNumber, 11
    ! b7 o* _! _( A$ m1 R* r% d- C
  35.     Print #FileNumber, xe
    / s4 Z2 }/ |8 a" ]8 y! S4 A$ ~
  36.     Print #FileNumber, 21
      |3 |/ Q) d5 x* V9 \' A% t
  37.     Print #FileNumber, ye
    6 r: c% a% R+ }9 D
  38.     Print #FileNumber, 31
    2 D1 g: n9 R, X
  39.     Print #FileNumber, 0#2 a# {, P& L0 d& F; O, I# j" ^$ `
  40.     Print #FileNumber, 0
    ( I9 u" N2 E3 J4 x* t! t
  41. End Sub  v* p+ d+ }" {  O  x! z/ ?
复制代码
代码中第一行是在通用声明区声明一个名为 FileNumber 的整型全局变量,用于保存文件号
- v( J5 L6 t0 |* h1 m. ~& W5 q第四行用 FreeFile 函数获得可用的文件号,后面的代码都使用这个文件号,包括子程序中的Print #语句,这也是使用全局变量的原因
+ x, y8 c/ ~7 ?# j/ r第十八行,子程序的参数中的前四个都使用了显式类型声明字符“#”,表明这是Double 数据类型;第六个参数使用了Optional 关键字,表明这后面的参数是可选的:在调用子程序时,如果线形是“BYLAYER”,则不必带这个参数。如果不用这个关键字,在调用子程序时,就必须有这个参数,尽管它可能是空字符串。
. z1 N  t0 |/ n" {第二十、二十三、二十六、二十八、三十、三十二、三十四、三十六、三十八和四十行,都去掉了双引号和空格,这里没必要使用字符串类型,用整型就可以
) x+ y! S: Z* A& j/ j9 L) z第二十二、二十四行去掉了变量后面的显式类型声明字符“$”,没必要(已经在在第十八行的参数列表中声明了)。同理,第二十七行去掉了双引号及其内部空格及逗号,去掉了变量后面的显式类型声明字符“%”,没必要( Y9 r* g* g. I
第三十三、三十九行把"0.00"改成了0#
% [) `. {/ Q" M; `' q5 J3 W- Q去掉了原子程序中的
  1. Label:
    / ]( s; c  a1 m* |7 b  I
  2.      Exit Sub
复制代码

评分

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

查看全部评分

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

本版积分规则

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

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

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