1. vb中读取文件
嗯,这个问题很常见。抓取网页内容
VB来做,可以。现在都不怎么有人用VB了,这里以VB6.0为例子
告诉你思路吧:
你打开的网页就是你下载的一篇文档。VB可以用一个浏览器控件,来获取它的内容
控件名叫 WebBrowser,拖一个这个控件到窗体
获得网页的内容
2. vb中读取文件是一堆乱码
谢邀,
能否说一下自己的操作系统环境。如果是windows的话。一般是编码问题引起的,VSCode默认编码就是UTF-8,如果还有中文乱码,改成GB2312就可以了。
具体操作步骤为:打开VSCode,文件-首选项—设置,在搜索栏目里搜索encoding,然后在Files;Encoding:选择下拉列表里的gb2312即可.
3. vb读取文件的多个数据
建议按Byte字节数组组织指令发送.
LZ的发送指令应该按9个指令轮询(没看到LZ的通信协议),接收可以放在OnComm事件中实现.
修改代码如下:
OptionExplicit
DimtempAsInteger'仪表号循环变量
Dimdata1TAsSingle,data2TAsSingle,data3TAsSingle
Dimdata1FAsSingle,data2FAsSingle,data3FAsSingle
Dimdata1QAsSingle,data2QAsSingle,data3QAsSingle
DimbytSend(1To4)AsByte
'串口初始化
PrivateSubForm_Load()
MSComm1.CommPort=1'设置通信端口号为COM1
MSComm1.InputMode=1'以二进制格式读取数据
MSComm1.RThreshold=1'设置并返回的要接收的字符数
MSComm1.SThreshold=1'设置并返回传输缓冲区中允许的最小字符数
MSComm1.Settings="4800,n,8,2"'设置串口参数
MSComm1.PortOpen=True'打开串口
Timer1.Interval=200
EndSub
'改变仪表序号
PrivateSubTimer1_Timer()
temp=temp+1
Callorder_num
Iftemp>9Thentemp=0
EndSub
'周期发出请求指令,自动连续采集
'循环向仪表发送读数据命令串
'不同的仪表号发送不同的读指令
Suborder_num()
Iftemp=1Then
bytSend(1)=&H81
bytSend(2)=&H81
bytSend(3)=&H52
bytSend(4)=&H1
MSComm1.Output=bytSend'Chr(&H8181)+Chr(&H52)+Chr(&H1)
ElseIftemp=2Then
bytSend(4)=&H2
MSComm1.Output=bytSend'Chr(&H8181)+Chr(&H52)+Chr(&H2)
ElseIftemp=3Then
bytSend(4)=&H3
MSComm1.Output=bytSend'Chr(&H8181)+Chr(&H52)+Chr(&H3)
ElseIftemp=4Then
bytSend(2)=&H82
bytSend(4)=&H1
MSComm1.Output=bytSend'Chr(&H8182)+Chr(&H52)+Chr(&H1)
ElseIftemp=5Then
bytSend(4)=&H2
MSComm1.Output=bytSend'Chr(&H8182)+Chr(&H52)+Chr(&H2)
ElseIftemp=6Then
bytSend(4)=&H3
MSComm1.Output=bytSend'Chr(&H8182)+Chr(&H52)+Chr(&H3)
ElseIftemp=7Then
bytSend(2)=&H83
bytSend(4)=&H1
MSComm1.Output=bytSend'Chr(&H8183)+Chr(&H52)+Chr(&H1)
ElseIftemp=8Then
bytSend(4)=&H2
MSComm1.Output=bytSend'Chr(&H8183)+Chr(&H52)+Chr(&H2)
ElseIftemp=9Then
bytSend(4)=&H3
MSComm1.Output=bytSend'Chr(&H8183)+Chr(&H52)+Chr(&H3)
Else
ExitSub
EndIf
EndSub
4. vb读取文件内容
代码如下: arr=Split(Text1.Text,vbCrLf)'将text1中的文本按照换行符分开,并放入数组arr中 Label1.Caption=arr(0)'label1标题内容赋值为数组第一个元素,即text中第一行文本 Label2.Caption=arr(1)'label1标题内容赋值为数组第二个元素,即text中第二行文本Label3.Caption=arr(2)'label1标题内容赋值为数组第三个元素,即text中第三行文本 此例中的相关延伸知识: Split函数返回一个包含分割符的基础上进行分隔特定数量的数组。 vbCrLf在VB中代表换行符
5. vb读取文件夹下的文件名
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 LongPrivate Const SW_SHOWNORMAL = 1打开:ShellExecute 0, "open", "c:\1.txt", "", vbNullString, SW_SHOWNORMAL"c:\1.txt", ""分别为文件路径和执行参数(一般是exe)
6. vb中读取文件绝对地址和相对地址
vb中有web browser控件,但网址输入采用的是普通文本框,可以通过trxt属性获取里边的内容
7. vb读取文件夹路径
用 CommonDialog 控件的 ShowOpen 和 ShowSave 方法可显示“打开”和“另存为”对话框:
Private Sub Command1_Click()' 设置“CancelError”为 TrueCommonDialog1.CancelError = TrueOn Error GoTo ErrHandler' 设置标志CommonDialog1.Flags = cdlOFNHideReadOnly' 设置过滤器CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & _"(*.txt)|*.txt|Batch Files (*.bat)|*.bat"' 指定缺省的过滤器CommonDialog1.FilterIndex = 2' 显示“打开”对话框CommonDialog1.ShowOpen' 显示选定文件的名字MsgBox CommonDialog1.FileName '显示路径Exit SubErrHandler:' 用户按了“取消”按钮Exit SubEnd Sub
8. vb中读取文件并放入数组
option base 1 ‘通用变量dim a() '定义数组n=inputbox("") for i=1 to n a(i)=int(rnd) '产生一个随机数 nextredim preserve a(n+m) 'm为你要添加的数的个数然后再由循环将新产生的数组列出来就行啦!同上,就不写啦!呵呵……
9. vb读取文件路径显示图片
这可用下列语句进行判断
Dir([pathname],[Attributes as VbFileAttribute=vbNormal]) As String
解释: pathname:文件的绝对路径;
Attributes:文件的属性。
“[]”内为可选项。dir(file)=""表示文件不存在,dir(file)<>""表示文件存在。
例如判断c:wpswinwps.exe是否存在,如存在,就调用它,可用下列语句:
if dir("c:wpswinwps.exe")<>"" then
shell "c:wpswinwps.exe"
end if
10. vb读取文件夹下的文件名并放在文本框
'显示所选择的文本文件的内容,流操作,读文件 Private Sub showtxt() Dim ae As New ASCIIEncoding() Dim str As String Dim str1 As String Dim bytes(1000) As Byte Dim node As TreeNode node = Me.TreeView1.SelectedNode str = getpath(node) fs = New FileStream(str, FileMode.Open) fs.BeginRead(bytes, 0, 1000, AddressOf endread, New Object()) str1 = ae.GetString(bytes) Me.TextBox2.Text = str1 If Err.Number <> 0 Then MsgBox(打开文件失败!) Else MsgBox(打开文件成功!) End If End Sub Private Sub endread(ByVal l As IAsyncResult) fs.EndRead(l) fs.Close() End Sub