listview里面的数据是仪器通过接收到回车显示出来的~~
If Right$(data, 1) = Chr(10) Then '用串口调试知道数据最后一位其实是回车键
If Mid$(data, 9, 1) = Chr(13) Then '这两行相当接收到回车键
Dim nodeX As ListItem
Set nodeX = ListView1.ListItems.Add()
nodeX.Text = ListView1.ListItems.Count '序号
nodeX.SubItems(1) = Text1.Text '测量值
nodeX.SubItems(2) = FormatNumber(Val(Text1.Text), , vbTrue) '误差值,还没有处理好
End If
End Iflistview 中显示的是量具上显示的数据
问题:我想把listview中的数据保存成为TXT文件,这是我在网上找到的代码,根据自己需求修改了.
Private Sub Command5_Click() '保存文件按钮
With CommonDialog1
.FileName = " "
.DialogTitle = "另存为"
.Filter = "TXT格式文件(*.txt)|*.txt"
.DefaultExt = "txt"
.Flags = cdlOFNHideReadOnly Or cdlOFNOverwritePrompt
End With
CommonDialog1.ShowSave
'如 果 没 有 文 件
If Len(CommonDialog1.FileName) = 0 Then
Exit Sub
End If
'文 本 格 式 文 件
Open CommonDialog1.FileName For Output As #1
Dim nodeX As ListItem
Set nodeX = ListView1.ListItems.Add()
nodeX.Text = ListView1.ListItems.Count '序号
nodeX.SubItems(1) = Text1.Text '测量值
nodeX.SubItems(2) = FormatNumber(Val(Text1.Text), , vbTrue) '误差值,还没有处理好
For i = 1 To ListView1.ListItems.Count
Print #1, "序号" & vbTab & "测量值" & vbTab & "误差值"
Print #1, ListView1.ListItems(i) & vbTab & nodeX.SubItems(1) & vbTab & nodeX.SubItems(2)
Next
Close #1
Exit Sub
Err_Handle:
Exit Sub
End Sub保存到txt的文件是这样的
序号 测量值 误差值
1 001. 1.00
序号 测量值 误差值
2 001. 1.00
序号 测量值 误差值
3 001. 1.001.跟listview显示的数据不一致,我想大概是因为我的代码是接收到回车键之后才显示数据到listview里面,
而Print #1, ListView1.ListItems(i) & vbTab & nodeX.SubItems(1) & vbTab & nodeX.SubItems(2)也接收到回车键代码,
所以保存到txt里面的数据是实际量具上面的数据(我仔细看了确实是这样),那么应该怎么处理?
2.有个问题如过我不保存的话,会弹出 " 实时错误53 文件未找到" 上面的代码不是处理了吗?(红色字体)
3.另外我想的是"序号 测量值 误差值 "只是显示在第一行,后面的是数据,又应该怎么处理?
4.还有就是如果加个打开文件按钮呢?
问题有点多,小弟虚心请教各位高手了!!!!!!!!!!
If Right$(data, 1) = Chr(10) Then '用串口调试知道数据最后一位其实是回车键
If Mid$(data, 9, 1) = Chr(13) Then '这两行相当接收到回车键
Dim nodeX As ListItem
Set nodeX = ListView1.ListItems.Add()
nodeX.Text = ListView1.ListItems.Count '序号
nodeX.SubItems(1) = Text1.Text '测量值
nodeX.SubItems(2) = FormatNumber(Val(Text1.Text), , vbTrue) '误差值,还没有处理好
End If
End Iflistview 中显示的是量具上显示的数据
问题:我想把listview中的数据保存成为TXT文件,这是我在网上找到的代码,根据自己需求修改了.
Private Sub Command5_Click() '保存文件按钮
With CommonDialog1
.FileName = " "
.DialogTitle = "另存为"
.Filter = "TXT格式文件(*.txt)|*.txt"
.DefaultExt = "txt"
.Flags = cdlOFNHideReadOnly Or cdlOFNOverwritePrompt
End With
CommonDialog1.ShowSave
'如 果 没 有 文 件
If Len(CommonDialog1.FileName) = 0 Then
Exit Sub
End If
'文 本 格 式 文 件
Open CommonDialog1.FileName For Output As #1
Dim nodeX As ListItem
Set nodeX = ListView1.ListItems.Add()
nodeX.Text = ListView1.ListItems.Count '序号
nodeX.SubItems(1) = Text1.Text '测量值
nodeX.SubItems(2) = FormatNumber(Val(Text1.Text), , vbTrue) '误差值,还没有处理好
For i = 1 To ListView1.ListItems.Count
Print #1, "序号" & vbTab & "测量值" & vbTab & "误差值"
Print #1, ListView1.ListItems(i) & vbTab & nodeX.SubItems(1) & vbTab & nodeX.SubItems(2)
Next
Close #1
Exit Sub
Err_Handle:
Exit Sub
End Sub保存到txt的文件是这样的
序号 测量值 误差值
1 001. 1.00
序号 测量值 误差值
2 001. 1.00
序号 测量值 误差值
3 001. 1.001.跟listview显示的数据不一致,我想大概是因为我的代码是接收到回车键之后才显示数据到listview里面,
而Print #1, ListView1.ListItems(i) & vbTab & nodeX.SubItems(1) & vbTab & nodeX.SubItems(2)也接收到回车键代码,
所以保存到txt里面的数据是实际量具上面的数据(我仔细看了确实是这样),那么应该怎么处理?
2.有个问题如过我不保存的话,会弹出 " 实时错误53 文件未找到" 上面的代码不是处理了吗?(红色字体)
3.另外我想的是"序号 测量值 误差值 "只是显示在第一行,后面的是数据,又应该怎么处理?
4.还有就是如果加个打开文件按钮呢?
问题有点多,小弟虚心请教各位高手了!!!!!!!!!!
解决方案 »
- 如何使已经创建好的VPN连接进行连接(内附创建VPN连接代码)
- 请教高手:如何用hscrollbar实现图片框中时间的拖动
- 请问大家,怎样获取优盘的序列号?
- 菜鸟求助:如何实现用VB的winsock控件来实现UDP多人聊天?
- 关于commonDialog控件的小问题!!!!
- ado真的比dao更高效、稳地吗?
- 关于插入数据的问题,多谢各位高手指点一下,不胜感激!!!!!!
- 救急!送100分,谁帮我解决CrystalReports8.0的Physical database not found错误。
- ****************这句sql语句怎么写?快,先到先得!****************
- 请问如何把程序上传到CSDN?
- 新手学vb,布尔表达式问题—跪求
- ~~~~~标签随着鼠标的拖拽移动位置并限定其范围~~~~~
把回车符滤掉
replace(strTemp,chr(13),"")
用一个函数来做
Private Sub Command5_Click() '保存文件按钮 '如 果 没 有 文 件
If Len(fun_GetFile) = 0 Then
Exit Sub
End If end sub'************************************
'获取文件名函数
private function fun_GetFile() as string
With CommonDialog1
.FileName = " "
.DialogTitle = "另存为"
.Filter = "TXT格式文件(*.txt)|*.txt"
.DefaultExt = "txt"
.Flags = cdlOFNHideReadOnly Or cdlOFNOverwritePrompt
.ShowSave fun_GetFile= .FileName
End With
exit function
errDo:
fun_GetFile=""end function
用一个函数来做
Private Sub Command5_Click() '保存文件按钮 '如 果 没 有 文 件
If Len(fun_GetFile) = 0 Then
Exit Sub
End If end sub '************************************
'获取文件名函数
private function fun_GetFile() as string
on error goto errDo
With CommonDialog1
.FileName = " "
.DialogTitle = "另存为"
.Filter = "TXT格式文件(*.txt)|*.txt"
.DefaultExt = "txt"
.Flags = cdlOFNHideReadOnly Or cdlOFNOverwritePrompt .ShowSave fun_GetFile= .FileName
End With
exit function
errDo:
fun_GetFile="" end function
拿到循环外 Print #1, "序号" & vbTab & "测量值" & vbTab & "误差值" For i = 1 To ListView1.ListItems.Count
Print #1, ListView1.ListItems(i) & vbTab & nodeX.SubItems(1) & vbTab & nodeX.SubItems(2)
Next
Private Sub Command5_Click() '保存文件按钮
dim strFileName as string
strFileName=fun_GetFile
'如 果 没 有 文 件
If Len(strFileName) = 0 Then
Exit Sub
End If
'文 本 格 式 文 件
Open strFileName For Output As #1
Dim nodeX As ListItem
Set nodeX = ListView1.ListItems.Add()
nodeX.Text = ListView1.ListItems.Count '序号
nodeX.SubItems(1) = Text1.Text '测量值
nodeX.SubItems(2) = FormatNumber(Val(Text1.Text), , vbTrue) '误差值,还没有处理好
For i = 1 To ListView1.ListItems.Count
Print #1, "序号" & vbTab & "测量值" & vbTab & "误差值"
Print #1, ListView1.ListItems(i) & vbTab & nodeX.SubItems(1) & vbTab & nodeX.SubItems(2)
Next
Close #1
Exit Sub
Err_Handle:
Exit Sub
End Sub
'************************************
'获取文件名函数
private function fun_GetFile() as string
With CommonDialog1
.FileName = " "
.DialogTitle = "另存为"
.Filter = "TXT格式文件(*.txt)|*.txt"
.DefaultExt = "txt"
.Flags = cdlOFNHideReadOnly Or cdlOFNOverwritePrompt .ShowSave fun_GetFile= .FileName
End With
exit function
errDo:
fun_GetFile="" end function
hFile = FreeFile()
Open CommonDialog1.FileName For Output As #hFile
For i = 1 To ListView1.ListItems.Count
Print #hFile, "序号" & vbTab & "测量值" & vbTab & "误差值"
With ListView1.ListItems(i)
Print #hFile, .Text & vbTab & .SubItems(1) & vbTab & .SubItems(2)
End With
Next
Close #hFile
Print #1, "序号" & vbTab & "测量值" & vbTab & "误差值" 这行
分割的时候就会出错~~~如果不要的话就可以~但是它弹出的界面还是保存的~~~~~但是可以打开~
现在的问题是第一个问题还没有解决~~就是保存下来的数据是仪器上面的数据 不是我listview上面显示的数据~
你的表述不清仪器上面的数据 和 listview上面显示的数据 一致吗?
(If Right$(data, 1) = Chr(10) Then '用串口调试知道数据最后一位其实是回车键
If Mid$(data, 9, 1) = Chr(13) Then '这两行相当接收到回车键
Dim nodeX As ListItem
Set nodeX = ListView1.ListItems.Add()
nodeX.Text = ListView1.ListItems.Count '序号
nodeX.SubItems(1) = Text1.Text '测量值
nodeX.SubItems(2) = FormatNumber(Val(Text1.Text), , vbTrue) '误差值,还没有处理好
End If
End If )
序号 测量值 误差值
1 001. 1.00
2 001. 1.00
3 001. 1.00
跟实际显示在listview的不一样,我的猜想就是我所说的第一点吧~~~还是哪里的问题?????
1 002 2.00
2 003 3.00
3 003.5 3.50
但是显示出来的就全部是一样的了
保存到txt的文件是这样的
序号 测量值 误差值
1 001. 1.00
2 001. 1.00
3 001. 1.00
'文 本 格 式 文 件
Open CommonDialog1.FileName For Output As #1
Dim nodeX As ListItem
Set nodeX = ListView1.ListItems.Add()
nodeX.Text = ListView1.ListItems.Count '序号
nodeX.SubItems(1) = Text1.Text '测量值
nodeX.SubItems(2) = FormatNumber(Val(Text1.Text), , vbTrue) '误差值,还没有处理好
For i = 1 To ListView1.ListItems.Count
Print #1, "序号" & vbTab & "测量值" & vbTab & "误差值"
Print #1, ListView1.ListItems(i) & vbTab & nodeX.SubItems(1) & vbTab & nodeX.SubItems(2)
Next text1 什么东东
Print #1, ListView1.ListItems(i).SubItems(0) & vbTab & ListView1.ListItems(i).SubItems(1) & vbTab & ListView1.ListItems(i).SubItems(2)这句
也就是说列身体listview接收到一个回车键了吧 我猜想是不是这样的意思
listview里能正确显示,但写入txt时错误***********************************
我说的对吗?
Print #1, ListView1.ListItems(i)& vbTab & ListView1.ListItems(i).SubItems(1) & vbTab & ListView1.ListItems(i).SubItems(2)这句 前面的正常 后面就多了一个仪器上面的记录
Print #1, ListView1.ListItems(i)& vbTab & ListView1.ListItems(i).SubItems(1) & vbTab & ListView1.ListItems(i).SubItems(2)这句 前面的正常 后面就多了一个仪器上面的记录
Set nodeX = ListView1.ListItems.Add()
nodeX.Text = ListView1.ListItems.Count '序号
nodeX.SubItems(1) = Text1.Text '测量值
nodeX.SubItems(2) = FormatNumber(Val(Text1.Text), , vbTrue) '误差值