• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Quetzalma

[VB6] Problema ao ler ficheiro (*.txt)

3 mensagens neste tópico

Eu estou a criar um programa que lê e atribui a diferentes text boxes determinados valores dependendo das primeiras 4 letras inseridas

Esta é uma parte do TXT

IDA+Detecção de erros no Visual Basic.

ACT+Alterando as funcionalidades de um programa já realizado nas aulas anteriores, verifica se és capaz de:

OBJ+Identificar os 3 diferentes tipos de erros no Visual Basic.

OBJ+Fazer ocorrer propositadamente os 3 diferentes tipos de erro.

Se as primeiras 4 letras forem IDA+ ele escreve o resto na text box, até aqui tudo bem, mas por exemplo na linha de baixo tem uma virgula, e o programa ao ler a linha, lê-a só até a "," e dps passa para a linha seguinte, como poderei solucionar o meu problema? :wallbash:

Está aqui o meu module com as variaveis globais

Public Novo As Byte
Public Outros(1) As Variant
Public Base(1) As String
Public Objectivos() As String
Public ObjectivosResposta() As String
Public Avaliacao() As String
Public AvaliacaoResposta() As String

Está aqui o código completo do botão usado

Private Sub Carregara_Click()
Dim X As String
Dim L As Integer
Dim CObj As Integer
Dim CAval As Integer
Inicio.Hide
        CObj = -1
        CAval = -1
    Open FileListBox.List(FileListBox.ListIndex) For Input As #1
        Input #1, t
        If Not Left(t, 4) = "LIC+" Then
            N = MsgBox("O formato do ficheiro é desconhecido", vbOKOnly + vbCritical, "Formato Desconhecido")
            Close #1
            Exit Sub
        End If
    Close #1
        Open FileListBox.List(FileListBox.ListIndex) For Input As #1
            Do
                Input #1, t
                Select Case Left(t, 4)
                Case Is = "LIC+"
                    Base(0) = Mid(t, 5, Len(t))
                Case Is = "IDA+", "ACT+", "OBJ+"
                    N = InStr(t, ",")
                    CObj = CObj + 2
                    ReDim Preserve Objectivos(CObj)
                    ReDim Preserve ObjectivosResposta(CObj)
                    Objectivos(CObj - 1) = Left(t, 4)
                    If Right(t, 1) <> "." Then
                        If Right(t, 1) <> ":" Then
                            If Right(t, 1) <> ";" Then
                                Text1.Text = Mid(t, 5, Len(t))
                                Objectivos(CObj) = Mid(t, 5, Len(t)) + ""
                            Else
                                Objectivos(CObj) = Mid(t, 5, Len(t))
                            End If
                        Else
                            Objectivos(CObj) = Mid(t, 5, Len(t))
                        End If
                    Else
                        Objectivos(CObj) = Mid(t, 5, Len(t))
                    End If
                Case Is = "LIN+", "AUT+"
                    If Left(t, 4) = "AUT+" Then
                        CObj = CObj + 2
                        ReDim Preserve Objectivos(CObj)
                    Objectivos(CObj) = "AUT+"
                    End If
                    CAval = CAval + 1
                    ReDim Preserve Avaliacao(CAval)
                    Avaliacao(CAval) = Mid(t, 5, Len(t))
                Case Is = "FIM+"
                    CAval = CAval + 1
                    ReDim Preserve Avaliacao(CAval)
                    ReDim Preserve AvaliacaoResposta(CAval)
                    Avaliacao(CAval) = "FIM+"
                End Select
            Loop Until EOF(1)
        Close #1
    Carregando.Show
    Carregar.Hide
End Sub

Obrigado em Avançado

;) Quetzalma :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu penso que este código tem erros em :

Open FileListBox.List(FileListBox.ListIndex) For Input As #1

Mas não percebi muito bem aquilo que pretendes. De qualquer maneira por o formato em "*.txt" em vez de ","

Aquilo que afirmei pode não estar correcto por isso exprimenta de depois diz algo ou entao vais a www.pscode.com e ver exemplos de leitores de ficheiros pode ser que esse site te ajude.

Cumprimentos...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Open FileListBox.List(FileListBox.ListIndex) For Input As #1

tipo para abrires qualquer fixeiro tens de usar a seguinte instrucao

open ("path.extençao") for "append" ou "output" ou "input" as "variavel de ficheiro"

o "path" vem entre aspas, ou entao metes uma variavel do tipo string com o path e a extenção

espero ke ajude... para mais duvidas

dis qualquer coisa...

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora