意为提取第23行的字符。
代码如下:Private Sub Command1_Click()
ComDiaReader.ShowOpen
filePath = ComDiaReader.FileName
Open filePath For Input As #1
Do While Not EOF(1)
Line Input #1, dataStr
i = i + 1
Select Case i
Case 23
Text1.Text = dataStr
End Select
Loop
Close #1
End Sub
其实这段代码,我不是十分理解的。
dataStr不是把所有的行都赋值给dataStr的?
那后面的循环好像无意义。
而且循环只执行了一次,不知道为什么。
文件片段(开头)如下:
#cP1992 2 16 0 0 0.00000000 96 d IGS05 FIT SIO
## 632 0.00000000 900.00000000 48668 0.0000000000000
+ 16 G02G03G06G11G12G13G14G15G16G17G18G19G20G21G23G24 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
%c G cc GPS ccc cccc cccc cccc cccc ccccc ccccc ccccc ccccc
%c cc cc ccc ccc cccc cccc cccc cccc ccccc ccccc ccccc ccccc
%f 1.2500000 1.025000000 0.00000000000 0.000000000000000
%f 0.0000000 0.000000000 0.00000000000 0.000000000000000
%i 0 0 0 0 0 0 0 0 0
%i 0 0 0 0 0 0 0 0 0
/*
/*
/*
/* PCV:IGS05 OL/ALL:FES2004 Y NONE YN ORB:CoN CLK:CoN
* 1992 2 16 0 0 0.00000000
PG02 -23597.590869 -12667.682039 1554.063157 999999.999999
PG03 1460.140660 22088.715168 14061.744256 999999.999999
PG06 -23940.436948 1723.694818 11368.771562 999999.999999
PG11 11063.677380 -21676.635131 11463.607676 999999.999999
PG12 -10072.047715 14169.403659 -19734.439331 999999.999999
PG13 -12481.585169 2624.089443 -23212.852880 999999.999999
代码如下:Private Sub Command1_Click()
ComDiaReader.ShowOpen
filePath = ComDiaReader.FileName
Open filePath For Input As #1
Do While Not EOF(1)
Line Input #1, dataStr
i = i + 1
Select Case i
Case 23
Text1.Text = dataStr
End Select
Loop
Close #1
End Sub
其实这段代码,我不是十分理解的。
dataStr不是把所有的行都赋值给dataStr的?
那后面的循环好像无意义。
而且循环只执行了一次,不知道为什么。
文件片段(开头)如下:
#cP1992 2 16 0 0 0.00000000 96 d IGS05 FIT SIO
## 632 0.00000000 900.00000000 48668 0.0000000000000
+ 16 G02G03G06G11G12G13G14G15G16G17G18G19G20G21G23G24 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
%c G cc GPS ccc cccc cccc cccc cccc ccccc ccccc ccccc ccccc
%c cc cc ccc ccc cccc cccc cccc cccc ccccc ccccc ccccc ccccc
%f 1.2500000 1.025000000 0.00000000000 0.000000000000000
%f 0.0000000 0.000000000 0.00000000000 0.000000000000000
%i 0 0 0 0 0 0 0 0 0
%i 0 0 0 0 0 0 0 0 0
/*
/*
/*
/* PCV:IGS05 OL/ALL:FES2004 Y NONE YN ORB:CoN CLK:CoN
* 1992 2 16 0 0 0.00000000
PG02 -23597.590869 -12667.682039 1554.063157 999999.999999
PG03 1460.140660 22088.715168 14061.744256 999999.999999
PG06 -23940.436948 1723.694818 11368.771562 999999.999999
PG11 11063.677380 -21676.635131 11463.607676 999999.999999
PG12 -10072.047715 14169.403659 -19734.439331 999999.999999
PG13 -12481.585169 2624.089443 -23212.852880 999999.999999
解决方案 »
- 想在文本框里 按下键盘 a 时 会自动完成复制 相当按下ctrl+c
- 求一算法(可能涉及组合与排列),就这么多分了,求救啊
- 系统是WIN2003SERVER的VB6精简斑的 生成的可执行的文件EXE怎么不能别的机子上跑啊!!!哭求!!!!!!!!!!!!
- 你们的“数据库”和“类设计”有些什么思路和想法。请求建议
- 关于MSFlexGrid控件的使用--选定多行如何获取其中数据
- 有没有收取邮件并可以将附件另存的控件?
- 关于热键屏蔽的问题
- 如何利用VB编程更改ACCESS数据库文件(*.mdb)中一个表某个字段的属性(如字段的长度等)而保持数据库中的数据不受影响
- 请问我有3000多分《它能有什么用处呢》?
- 在局域网内,我想访问另一台电脑(win98对等网)上的数据库,最好最简明的方法是什么?
- 关于ole控件初始化问题
- 0x0043f08f 错误
参考vb帮助。
Dim FileNumber As Integer
Dim sFile() As String, S As String
Dim FileByte() As Byte
FileNumber = FreeFile
' 设置“CancelError”为 True
ComDiaReader.CancelError = True
On Error GoTo ErrHandler
' 设置标志
ComDiaReader.Flags = cdlOFNHideReadOnly
' 设置过滤器
ComDiaReader.Filter = "All Files (*.*)|*.*|Text Files" & "(*.txt)|*.txt|"
' 指定缺省的过滤器
ComDiaReader.FilterIndex = 2
' 显示“打开”对话框
ComDiaReader.ShowOpen
' 显示选定文件的名字
Open ComDiaReader.FileName For Binary As #FileNumber
ReDim FileByte(LOF(FileNumber) - 1)
Get #FileNumber, , FileByte
S = StrConv(FileByte, vbUnicode)
sFile = Split(S, vbCrLf)
Text1.Text = sFile(22)
Close #FileNumber
Erase sFile
Exit Sub
ErrHandler:
' 用户按了“取消”按钮
Exit Sub
End Sub
Open "c:\222.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, dataStr
i = i + 1
Select Case i
Case 23
Text1.Text = dataStr
End Select
Loop
Close #1
End Sub试试这个,把文件名换了……
Open "c:\222.txt" For Input As #1
i=1
Do While Not EOF(1)
Line Input #1, dataStr '读一行,下次读的时候,上次读到的被抛弃
if i=23 then
exit do
end if
i = i + 1
dataStr ="",必须,否则,读到的可能不是23行的数据,如果行数小于23则会将最后一行数据留在里面
Loop
Close #1
End Sub
Select Case i
Case 23
Text1.Text = dataStr
exit do
End Select
相似的例子:
'打开文件
With CommonDialog1
.Flags = .Flags Or cdlOFNHelpButton
.Flags = .Flags Or cdlOFNExplorer
.Flags = .Flags Or cdlOFNFileMustExist
.DialogTitle = "请选择一个文件:"
.Flags = .Flags Or cdlOFNNoChangeDir
'.Filter = "所有文件(*.*)|*.*"
.Filter = "航迹点文件(.TRK)|*.TRK"
.ShowOpen
If Len(.FileName) = 0 Then
Exit Sub
End If
End With
name2 = CommonDialog1.FileName
End Sub
Private Sub Command2_Click()
On Error GoTo errmade
Dim i, t, n As Long
Dim a, b, c, d, e, aa As String
Dim a1, b1, c1, d1, e1 As Double
If Len(CommonDialog1.FileName) = 0 Then
MsgBox "请打开所需的源文件!"
Exit Sub
End If
Rem one stand GPS and one move GPS
Open name1 For Input As #1
Open name2 For Input As #2
Open "out2.txt" For Output As #3
Open "out1.txt" For Output As #4
For i = 1 To 2
Do While Not EOF(i)
Line Input #i, aa
If Mid(aa, 4, 1) = "N" Then
a = Mid(aa, 5, 10)
b = Mid(aa, 17, 11)
c = Mid(aa, 39, 2)
d = Mid(aa, 42, 2)
e = Mid(aa, 45, 2)
a1 = Val(a): b1 = Val(b): c1 = Val(c): d1 = Val(d): e1 = Val(e):
If c1 > 20 Then c1 = c1 - 24
t = 3600 * c1 + 60 * d1 + e1
Write #(i + 2), a1, b1, t
End If
Loop
Next i
Close