Como analisar cidade, estado e CEP em valores separados

Traduções deste artigo Traduções deste artigo
ID do artigo: 168798 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo fornece um procedimento para analisar uma única variável contendo informações US cidade, estado e CEP em três variáveis separadas. Oferece suporte a rotina:

  • O CEP de 5 ou 9 dígitos.
  • Nomes de estado com várias palavras (se precedido por uma vírgula).
  • Qualquer número de espaços intermediários.
Exemplos de entradas com suporte:
Nova York, Nova York, 99999
Nova York, NY, 99999-9999
Nova York, NY 99999-9999
Nova York, NY 99999

Mais Informações

AVISO: QUALQUER USO DE CÓDIGO/MACRO FORNECIDA NESTE ARTIGO É DE SUA RESPONSABILIDADE. A Microsoft fornece esse código/macro "como estão" sem garantia de qualquer tipo, expressa ou implícita, inclusive mas não limitada às garantias implícitas de comercialização e/ou adequação a uma finalidade específica.

Observação: No exemplo de código a seguir, um sublinhado (_) no final de uma linha é usado como um caractere de continuação de linha. Para versões do BASIC que não oferecem suporte a caracteres de continuação de linha, remova o sublinhado do final da linha de mesclagem com a seguinte linha ao recriar esse código.

Campos são analisados na seguinte ordem se forem encontradas sem vírgulas no endereço:
ZIP Code, estado, cidade
Se houver pelo menos uma vírgula, é provável que ele seja entre cidade e estado e os campos são analisados em uma ordem diferente:
Cidade, estado, CEP

Exemplo passo a passo

  1. Insira o código a seguir:
          Function CutLastWord (ByVal S As String, Remainder As String) _
             As String
          ' CutLastWord: returns the last word in S.
          ' Remainder: returns the rest.
          '
          ' Words are separated by spaces
          '
          Dim  I As Integer, P As Integer
            S = Trim$(S)
            P = 1
            For I = Len(S) To 1 Step -1
              If Mid$(S, I, 1) = " " Then
                P = I + 1
                Exit For
              End If
            Next I
            If P = 1 Then
              CutLastWord = S
              Remainder = ""
            Else
              CutLastWord = Mid$(S, P)
              Remainder = Trim$(Left$(S, P - 1))
            End If
          End Function
    
          Sub ParseCSZ (ByVal S As String, City As String, State As String, _
                        Zip As String)
          Dim P As Integer
          '
          ' Check for comma after city name
          '
            P = InStr(S, ",")
            If P > 0 Then
              City = Trim$(Left$(S, P - 1))
              S = Trim$(Mid$(S, P + 1))
          '
          '   Check for comma after state
          '
              P = InStr(S, ",")
              If P > 0 Then
                State = Trim$(Left$(S, P - 1))
                Zip = Trim$(Mid$(S, P + 1))
              Else                      ' No comma between state and zip
                Zip = CutLastWord(S, S)
                State = S
              End If
            Else                        ' No commas between city, state, or zip
              Zip = CutLastWord(S, S)
              State = CutLastWord(S, S)
              City = S
            End If
          '
          ' Clean up any dangling commas
          '
            If Right$(State, 1) = "," Then
              State = RTrim$(Left$(State, Len(State) - 1))
            End If
            If Right$(City, 1) = "," Then
              City = RTrim$(Left$(City, Len(City) - 1))
            End If
          End Sub
    						
  2. Para testar, crie um formulário com quatro caixas de texto (txtAddress txtCity, txtState, txtZip) e um botão de comando. Adicione o seguinte código:
          Sub Command1_Click()
          Dim City As String, State As String, Zip As String
            ParseCSZ txtAddress, City, State, Zip
            txtCity = City
            txtState = State
            txtZip = Zip
          End Sub
    						
  3. Exibir o formulário, digite um endereço em txtAddress e clique no botão de comando. Os três campos devem conter os valores analisados.

Propriedades

ID do artigo: 168798 - Última revisão: sexta-feira, 19 de janeiro de 2007 - Revisão: 3.6
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic Control Creation Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 de 16 bits Enterprise Edition
  • Microsoft Visual Basic 4.0 de 32 Bits Enterprise Edition
  • Microsoft Visual Basic 2.0 Standard Edition
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Visual Basic 2.0 Professional Edition
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Access 1.0 Standard Edition
  • Microsoft Access 1.1 Standard Edition
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Word 97 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
Palavras-chave: 
kbmt kbhowto kbprogramming KB168798 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 168798

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com