VB怎样指定工作路径?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB怎样指定工作路径?相关的知识,希望对你有一定的参考价值。

Private Sub Command1_Click()
Dim i
i = Shell("E:\Diablo II 1.10\Diablo II.exe -direct -ns -res800 -notitle", 1)
End Sub

生成一个Run.exe

把Run.exe放到E:\Diablo II 1.10文件夹下,运行就没问题,如果把Run.exe放到其他文件夹,-direct -ns -res800 -notitle就无效。
要怎样指定工作路径,把Run.exe放到其他文件夹,-direct -ns -res800 -notitle也能正常生效?

参考技术A Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Sub Command1_Click()
On Error GoTo er
Dim a&
a = ShellExecute(0, "open","E:\Diablo II 1.10\Diablo II.exe -direct -ns -res800 -notitle", 0, 0, 1)
Exit Sub
er:
MsgBox Err.Description, vbCritical, "Err:" & Err.Number
End Sub
'用API试试吧
参考技术B Private Sub Command1_Click()
Dim ii = Shell(App.path & IIf(Right(App.path,1)="\","","\") & "Diablo II.exe -direct -ns -res800 -notitle", 1)
End Sub 用 App.path 替代路径中的绝对路径部分,App.path 返回的是当前应用程序路径。
参考技术C i = Shell(app.path & iif(right(app.path,1)="\","","\") & "Diablo II.exe -direct -ns -res800 -notitle", 1)

VB达人请进,关于VB引入TXT文件的问题

小弟想在VB中引入一个TXT文件,并用VB对TXT文件中的数据进行处理,应该怎样编码?
急用,谢谢~

1.打开文件语句:Open
语法格式如下:
Open <文件名> For <打开方式> As # <文件号> [ Len = 缓冲区大小 ]
其中:
●Open、For、As、Len等是VB关键字。
●文件名:指定打开的文件名(文件名用字符串表示),包括盘符、路径、文件主名及扩展名。例如:”E:\MF\Test.txt”。
●打开方式方式:指定文件的打开方式,打开文件后,只能按指定的方式进行一种操作。打开一个顺序文件有三种方式可选:
◆Input:打开文件后,从文件中读取数据
◆Output:打开文件后,向文件中写入数据,即重写一个顺序文件
◆Append:打开文件后,向文件末尾添加数据
若指定Input方式,则当指定文件不存在时产生一个错误;若指定Output或Append方式,则当文件不存在时建立该文件,文件已存在时写入的数据,前者覆盖,后者追加。所以Open具有建立和打开文件的双重功能。
对同一文件用一种方式打开后,在关闭之前,不能再以另一种方式打开。
●文件号:VB应用程序每打开一个文件,必须指定一个文件号,且不能与其它打开的文件占用的文件号重复。文件号的范围是1 - 511之间的整数。打开文件后,指定的文件号就与该文件相关联,程序通过文件号来对文件进行读、写操作,直到关闭文件。关闭文件后,该文件号被释放,可供打开其他文件时使用。
如果在程序中已打开多个文件(此时占用的文件号未必连续),则再打开文件时,为了避免文件号重复,可使用FreeFile函数,该函数返回当前程序未被占用的最小的文件号,可通过把函数值赋给一个变量来取得这个文件号。例如,执行下面的代码,
FileNumber = FreeFile
Open "E:\VB\Exercise.TXT" For Output As # FileNumber
则在E盘VB文件夹下建立Exercise.TXT数据文件,文件号为FileNumber,如果这个文件已经存在,则原有文件被覆盖;如果执行下面的代码,
FileNumber = FreeFile
Open "E:\VB\Exercise.TXT" For Append As # FileNumber
也在E盘VB文件夹下建立Exercise.TXT数据文件,文件号为FileNumber,但当该文件已经存在时,新写入的数据追加到原有数据的后面。
●缓冲区大小:当在文件与程序之间拷贝数据时,选项len参数指定缓冲区的字符数,其范围为1 - 32767,缺省值为512字节。例如,执行下面的代码,
Open "E:\VB\Exercise.TXT" For Input As # 1 len = 1024
则打开E盘VB文件夹下的数据文件Exercise.TXT,为读取数据作准备,与之关联的文件号为1,读写缓冲区为1024字节。
在程序中,获取文件名可通过【打开】文件或文件【另存为】对话框实现。例如,下面的代码从【打开】文件对话框中打开一个文件,以便从该文件中读取数据:
CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files (*.txt)|*.txt| Batch Files (*.bat)|*.bat"
CommonDialog1.FilterIndex = 2
CommonDialog1.ShowOpen
Filename = CommonDialog1.Filename
F = FreeFile
Open Filename For Input As F
… … …
而下面的代码则从文件【另存为】对话框中输入文件名,以便建立从文件名框中输入或选定的文件:
CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files (*.txt)|*.txt| Batch Files (*.bat)|*.bat"
CommonDialog1.FilterIndex = 2
CommonDialog1.ShowSave
Filename = CommonDialog1.Filename
F = FreeFile
Open Filename For Otput As F
… … …
建立【打开】文件或文件【另存为】对话框用公共对话(CommonDialog)控件,见相关章节。
注意:用公共对话控件可创建【打开】文件和文件【另存为】对话框,但它只能为建立和访问的文件输入文件名提供一个可视的界面,对话框本身不能完成打开文件和保存文件的功能,须编写代码完成。

2、 关闭文件语句:Close
语法格式为:
Close [ #文件号] [, #文件号] … …
该语句的功能是关闭指定的文件,释放缓冲区;若不指定文件号,则关闭所有打开的文件。
程序运行结束时,会自动关闭所有打开的文件,但对打开的文件完成操作后及时关闭该文件是个好习惯,不仅节约内存,也避免意外情况丢失数据。程序运行时将写入文件的数据均放在文件读写缓冲区,待整批写入文件。
6.2.2 顺序文件的写操作
要将程序中的数据写到一个顺序文件,先打开文件以进行顺序输出或添加(注意此时的选用打开方式,选择Output则覆盖原来文件,选择Append则在原来文件后添加数据),可用下面的命令语句写入数据。
1、 Print # 语句:用于为顺序文件写入数据
语法格式为:
Print # 文件号 [, 输出项表]
其中输出项表是要输出的表达式或表达式列表,输出格式同Print方法。
例如,下面的代码在E盘VB文件夹下建立Exercise.TXT数据文件,并往文件中输入字符,最后关闭文件:
Open "E:\VB\Exercise.TXT" For Output As #1 ‘打开文件以便输出
Print #1,”顺序文件写入数据测试” ‘向文件中写入字符串”This is a test”
Print #1, ‘输出一个空行
Print #1,”Zone 1”;Tab;”Zone 2” ‘在两个打印区输出
Print #1,Spc(5);”5 leading spaces” ‘先输出5个空格,再输出字符串
Print #1,Tab(10);”Hello” ‘在第10列上输出字符串
Close #1 ‘关闭文件
下面的代码把文本框Text1中的内容写到一个顺序文件:Exercise.TXT,存放于D:\:
Open "D:\Exercise.TXT" For Output As #2
Print #2, Exercise.Text
Close #2
2、 Write # 语句:将记录写入文件
语法格式为:
Write # 文件号[,表达式列表]
该语句适用于向划分了字段的记录格式的文件写入数据。“表达式表”中的每个表达式写入一个字段,一个Write # 语句一次写入一个记录。表达式表中包含多个表达式时以逗号分隔。缺省表达式时写入一个空行。
用Write # 语句写入的数据各个字段间自动加逗号分隔符,字符型数据自动加双引号定界符,记录尾自动加回车换行符。
例如,用Write # 建立由表6-2给出的居民区人员登记表:
表6-2 居民区人员登记表(jmdjb.dat)
身份证号 姓名 性别 年龄 出生年月
101 小米 女 24 11/1/1980
102 张明哲 女 6 3/4/1998
……… ……… ……… ……… ………
999 张前 男 1 10/6/2003

代码如下:
Dim sfzh(3) As String, xm(3) As String, xb(3) As String, nl(3) As Integer, csny(3) As Date
sfzh(1) = "101": xm(1) = "小米": xb(1) = "女": nl(1) = 24: csny(1) = #11/1/1980#
sfzh(2) = "102": xm(2) = "张明哲": xb(2) = "女": nl(2) = 6: csny(2) = #3/4/1998#
sfzh(3) = "999": xm(3) = "张前": xb(3) = "男": nl(3) = 1: csny(3) = #10/6/2003#
Open " jmdjb.dat " For Output As #1 ' 建立文件
Write #1, "身份证号", "姓名", "性别", "年龄", "出生年月" ' 写入表头
For i = 1 To 3 '利用循环语句写入多条记录
Write #1, sfzh(i), xm(i), xb(i), nl(i), csny(i) ' 写入第i个记录
Next
Close #1
参考技术A 需要用到VB的FSO文件系统。新建一个FSO对像
Private Sub CmdRead_Click()
Dim fsoTest As New FileSystemObject, file1 As File, ts As TextStream, s As String
Set file1 = fsoTest.GetFile(“C:\testfile.txt")
Set ts = file1.OpenAsTextStream(ForReading)
'读取一行
s = ts.ReadLine
MsgBox s
ts.Close
End Sub
Private Sub CmdWrite_Click()
Dim txtfile As File, ts As TextStream
Set txtfile = fsoTest.GetFile(“c:\testfile.txt")
Set ts = txtfile.OpenAsTextStream(ForWriting)
'使用Write方法写入一行。
ts.Write (“This is only a Test")
' 写入一行带有换行符的文本。
ts.WriteLine (“Testing 1, 2, 3.")
' 向文件中写入三个换行符。
ts.WriteBlankLines (3)
ts.Close
End Sub
参考技术B 如果要运行。可以使用 顺序文件的读取方式,
一行一行的读取 对字符进行操作。

你的文本内容很简单,2组数字中间有空格隔开,可以使用 split函数分割为2个字符,转换为整型,就可以进行运算拉。
参考技术C filename1 = "e:\test.txt"
Open filename1 For Input As #1
Input #1, X1, X2, X3, X4 'x1,x2,x3,x4是用tab隔开的数
Close #1

以上是关于VB怎样指定工作路径?的主要内容,如果未能解决你的问题,请参考以下文章

vb 怎样打开文件并把文件内容显示在文本框

动态生成链接菜单 vb.net

怎样用r语言 分时间段 取数据

matlab怎么保存工作文件

vb6.0中如何设置:如下的路径选择?怎么让一个按钮被点击时直接打开路径中的.exe文件?谢谢了

如何用vb.net实现:判断指定路径下是不是存在指定文件