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

Armadillo

[VB6] Remover linhas de string q n começam por TAB ou "<"

2 mensagens neste tópico

Tenho um grande problema.

A minha app(VB6) exporta dados de uma bd para um formato do genero de XML.

O que acontece eh q estes ficheiros contêm alguns erros de exportaçao (produzido pela BD, ainda n percebi pq)

<ACCOUNT>
    <ID>15315
    <DATA_IN>2003-01-31
    <NAME>JS Uni
    <CAS>0
    <FAX>229
    <FACT>Zi I - Sector VIII
    <CIFACT>MUNDE
    <STAFACT>Port
    <CP>4471
QZAIA
MFLA
    <WWW>
    <TICKER>15315
    <CPENTRG>447
MAI1
MAW
    <ENTRG>6
    <USER>
</ACCOUNT>

Como podem ver, existem algumas linhas que n estao no formato <nomeCampo>Valor.

No entretanto, ja tentei resolver com este script, q tenta detectar este tipo de linha mas n funca la mto bem.

Esta funcao lê um registo inteiro como o q esta acima e tenta devolver o mesmo registo mas corrigido.

Public Function DelAlienLines(Reg As String) As String

Dim ExisteQuebra As Long, existequebra2 As Long, PosStr As String, Tmnh As Long, ExisteTab As Long, ExisteHead As Long
Dim tmpstr1 As String, tmpstr2 As String


DelAlienLines = Reg

PosStr = 1

Tmnh = Len(Reg)



While PosStr <= Tmnh
    ExisteQuebra = InStr(PosStr, Reg, Chr(13))          'procura quebra
    If ExisteQuebra > 0 Then                            'Se esxistir
        ExisteTab = InStr(PosStr, vbTab, Reg)           'procura TAB
        If ExisteTab > 0 Then                           'Se existir
            ExisteHead = InStr(PosStr + 1, "<", Reg)    'Procura '<'
            If ExisteHead > 0 Then                      'se existir
                existequebra2 = InStr(ExisteHead + 1, Reg, Chr(13))       'procura quebra seguinte
                'remove o q estah entre existequebra e existequebra2
                tmpstr1 = Left(Reg, ExisteQuebra)
                tmpstr2 = Right(Reg, existequebra2)
                DelAlienLines = tmpstr1 & tmpstr2
            End If
        End If
    End If

PosStr = PosStr + 1
Wend

End Function

Pah, preciso mesmo de ajuda q isto aqui ta mto mau.

Obrigado

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