VB编程 提取文本里面的数据生成矩阵并保存

要求1:文本文档类型不是txt,是mca,但是可以用记事本打开,需要提取里面的数据生成矩阵要求2:提取文本文档时候,能够自己选择文本文档所在的位置导入,而不是直接编程的时... 要求1:文本文档类型不是txt,是mca,但是可以用记事本打开,需要提取里面的数据生成矩阵
要求2:提取文本文档时候,能够自己选择文本文档所在的位置导入,而不是直接编程的时候写地址提取
要求3:保存数据,能自己自由选择保存数据文本所在的地址

难点1:主要是文本文档里面还有一些字符,需要跳过几行字符开始提取数据
难点2:希望能够自由的选择导入和保存的地址!而不是直接输入地址

多谢各位大神的指点,对于其他语言编程不是很熟悉,目前只学过VB,而且也不精通,也是菜鸟一枚,所以希望得到各位大师的帮助!!!采纳之后再给100分!!!!
展开
 我来答
百度网友cc69e68
2014-11-17 · TA获得超过216个赞
知道小有建树答主
回答量:393
采纳率:84%
帮助的人:183万
展开全部

打开选择/保存文件可以自己选择,可以先引用Microsoft Comm Dialgo Control 6.0控件

下面是打开文件选择框

private strData as string    '提取的数据

Private Sub Command1_Click()    '选择文件
    On Error GoTo err
    
    CommonDialog1.FileName = ""
    CommonDialog1.Filter = "*.mca|*.mca|*.*|*.*"
    CommonDialog1.CancelError = True
    CommonDialog1.ShowOpen    '打开文件选择对话框
        
    If CommonDialog1.FileName <> "" Then
        Text1.Text= CommonDialog1.FileName    '选择的文件名
        GetData(Text1.Text)    '提取数据
    End If
err:
End Sub

下面是保存文件对话框

Private Sub Command2_Click()
    On Error GoTo err
    
    CommonDialog1.FileName = ""
    CommonDialog1.Filter = "*.mca|*.mca|*.*|*.*"
    CommonDialog1.CancelError = True
    CommonDialog1.ShowSave    '打开保存文件对话框
        
    If CommonDialog1.FileName <> "" Then
        Text2.Text= CommonDialog1.FileName    '保存的文件名
        
        '以下保存文件代码
        dim intFNo as long
        
        open Text2.Text for Output as #intFno
        
        print #intFno,strD      '保存到文件  
        Close #intFno        
        
    End If
err:
End Sub


提取文本资料代码:

private sub GetData(byval strFile as string)
    dim intFNo as long
    dim strD as string
    dim isData as Boolen
    dim lngIndex as Long 
    
    strData =space(100000)    '提前申请内存,要大于最大的数据量的2倍,因为数据后在有加分号(;)
    
    
    intFno=freefile
    open strfile for Input as #intFno
    
    lngIndex =1
    do while Not Eof(intFno)
        line input #intFno,strD
        
        if isData then
            if strD<>"<<END>>" then
                mid(strData ,lngIndex ,len(Trim(strd))+1)=trim(strD) & ";"    '提取数据
                '数据格式为:data;data;data;data;
                '如果要转换成数据:bytd=split(strdata,";")
                
                lngIndex =lngIndex +len(Trim(strd))+1
            else
                msgbox "数据提取完成,请保存"               
                exit do
            end if
           
        else
            if strD="<<Data>>" then
                isData=True
            end if
        end if 
    Loop
    
    close #intFno
end sub
追问
还有一些细节的问题不是很清楚,私信交流么?
ps122hb
2014-11-17 · TA获得超过162个赞
知道小有建树答主
回答量:948
采纳率:0%
帮助的人:399万
展开全部
这个不难,需要提取什么数据?
追问
数据  里面的数字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式