Ir para conteúdo
Fórum Script Brasil
  • 0

erro no flexgrid + arquivo de texto


Alex Mauricio

Pergunta

Pessoal, estou criando uma rotina que vai ler um arquivo texto *.csv e vai carregar um Flex Grid conforme o códgio abaixo:

Private Sub carregaGrid()
    Dim strArquivo          As String
    Dim strTexto            As String
    Dim lngPosIni           As Long
    Dim lngPos              As Long
    Dim strCodigo           As String
    Dim strTelefone         As String
    Dim strDataCadastro     As String
    Dim strSituacao         As String
    Dim strDataVigor        As String
    
    Dim codigo              As Long
    codigo = 0
            
    strArquivo = cmmCarregaArquivo.FileName
    Open strArquivo For Input As #1
    Line Input #1, strTexto
    
    While Not EOF(1)
        lngPos = Empty
        lngPosIni = Empty
        strCodigo = Empty
        strTelefone = Empty
        strDataCadastro = Empty
        strSituacao = Empty
        strDataVigor = Empty
        
        codigo = codigo + 1
        Dim lngLinha As Long
        lngLinha = 0
        
        If Trim(strTexto) <> Empty Then
            If InStr(1, Trim(strTexto), "Arquivo Lista Gerado") <> 0 _
            Or InStr(1, Trim(strTexto), "Bloqueio de Ligacoes Telefonicas") <> 0 _
            Or InStr(1, Trim(strTexto), "Fundacao de Protecao e Defesa do Consumidor") <> 0 _
            Or InStr(1, Trim(strTexto), "a partir de") <> 0 Then
                Line Input #1, strTexto
        Else
            MsgBox "VAI CARREGAR O ARQUIVO!!!"
                        
                With grdArquivo
                    .Row = lngLinha
                    .Col = 0
                    .Text = strCodigo
                
                    lngPos = InStr(lngPosIni, strTexto, ";")
                    strTelefone = Mid(strTexto, lngPosIni, (lngPos) - lngPosIni)
                    .Col = 1
                    .Text = strTelefone
                    
                    lngPosIni = lngPos + 1
                    lngPos = InStr(lngPos + 1, strTexto, ";")
                    strDataCadastro = Mid(strTexto, lngPosIni, (lngPos) - lngPosIni)
                    .Col = 2
                    .Text = strDataCadastro
                    
                    lngPosIni = lngPos + 1
                    lngPos = InStr(lngPos + 1, strTexto, ";")
                    strSituacao = Mid(strTexto, lngPosIni, (lngPos) - lngPosIni)
                    .Col = 3
                    .Text = strSituacao
                    
                    lngPosIni = lngPos + 1
                    lngPos = InStr(lngPos + 1, strTexto, ";")
'                    If lngPos = 0 Then
'                        strDataVigor Mid(strTexto, lngPosIni)
'                    Else
'                        strDataVigor = Mid(strTexto, lngPosIni, (lngPos) - lngPosIni)
'                    End If
                    .Col = 4
                    .Text = strDataVigor
                    
                    .Rows = .Rows + 1
                    lngLinha = lngLinha + 1
                End With
        End If
        
        Line Input #1, strTexto
[i]    Wend[/i]
    Close #1
End Sub

Porém o mesmo está apresentando o seguinte erro:

Compile error:

Wend withourt while

Clicando em OK, ele aponta para a linha em itálico (conforme código acima).

Galera não consegui identificar nada de errado... deve ser algo bobo...

ocbrigado

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

faltou fechar esse if aqui:

If InStr(1, Trim(strTexto), "Arquivo Lista Gerado") <> 0 _
            Or InStr(1, Trim(strTexto), "Bloqueio de Ligacoes Telefonicas") <> 0 _
            Or InStr(1, Trim(strTexto), "Fundacao de Protecao e Defesa do Consumidor") <> 0 _
            Or InStr(1, Trim(strTexto), "a partir de") <> 0 Then[/code]

Link para o comentário
Compartilhar em outros sites

  • 0
faltou fechar esse if aqui:

If InStr(1, Trim(strTexto), "Arquivo Lista Gerado") <> 0 _
            Or InStr(1, Trim(strTexto), "Bloqueio de Ligacoes Telefonicas") <> 0 _
            Or InStr(1, Trim(strTexto), "Fundacao de Protecao e Defesa do Consumidor") <> 0 _
            Or InStr(1, Trim(strTexto), "a partir de") <> 0 Then

então kuroi.... na sequencia tem um else e lá embaixo eu fecho o if....

sendo assim, não compreendi onde tenho que fechar este if...

obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

então eu não devo ta enxergando direito, ainda acho q falta fechar um if, olha so:

If Trim(strTexto) <> Empty Then '<-- AQUI VOCE ABRE UM IF
            If InStr(1, Trim(strTexto), "Arquivo Lista Gerado") <> 0 _ '<-- AQUI VOCE ABRE OUTRO IF. então FICAM DOIS IFS ABERTOS
            ... Then
                Line Input #1, strTexto
        Else '<-- AQUI VOCE POE UM ELSE IMAGINO QUE REFERENTE AO PRIMEIRO IF, MAS COMO O SEGUNDO AINDA ESTA ABERTO, ELE CONSIDERA QUE SEJA PRO SEGUNDO
            MsgBox "VAI CARREGAR O ARQUIVO!!!"
                        
                With grdArquivo
                    ...
                    ...
                     If lngPos = 0 Then '<-- AQUI VOCE ABRE UM TERCERO IF, MAS FECHA LOGO EMBAXO.
'                        strDataVigor Mid(strTexto, lngPosIni)
'                    Else
'                        strDataVigor = Mid(strTexto, lngPosIni, (lngPos) - lngPosIni)
'                    End If
                    ...
                End With
        End If '<-- AQUI VOCE FECHA UM IF. MAS TINHAM DOIS ABERTOS, ONDE ESTA SENDO FECHADO O SEGUNDO??[/code]

de qualquer modo acho q se você puser o Line Input #1, strTexto na mesma linha do segundo if (ou concatenar as linhas com um _ adicional), nem precisa fechar.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...