Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Dividir string em delphi

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Dividir string em delphi

    Ola amigos veremos abaixo como dividir uma string em Delphi.

    Digamos que em uma consulta você tem como retorno a seguinte string:

    1|Fulano da Silva|25 anos|Masculino|Solteiro

    Agora surgi à seguinte questão, Como extrair apenas as informações que me interessam?

    Simples Existe uma função no Delphi para isso, a ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings)

    Onde:

    Separators - Caractere delimitador.
    WhiteSpace - Espaço a ser considerado em branco.
    Content - String a ser dividida.
    Strings - Lista com Strings.

    No Caso da nossa string ficaria assim:
    Código PHP:
    var
      
    aString String;
      
    Lista   TStringList;
    begin
      
    try
        
    Lista := TStringList.Create;
        
    aString := ‘1|Fulano da Silva|25 anos|Masculino|Solteiro’;
        
    ExtractStrings( ['|'], [' '], PChar(aString), Lista );
        
    Memo1.Lines.Text := Lista.Text;
      finally
        
    FreeAndNil(Lista);
      
    end;
    end

    O resultado é o seguinte:


    1
    Fulano da Silva
    25 anos
    Masculino
    Solteiro
    Agora se eu quiser retornar apenas um campo... Fiz uma função que retorna o campo escolhido:

    Código PHP:
        function ExtraiString(aStringStringaCampoInteger): String;
        var
          
    lcListaTStringList;
          
    i:Integer;
        
    begin
          
    try
            
    lcLista := TStringList.Create;
            
    ExtractStrings( ['|'], [' '], PChar(aString), lcLista );
            for 
    i:= 0 to aCampo -do
              
    begin
                Result 
    := lcLista.Strings[i];
              
    end;
          finally
            
    FreeAndNillcLista );
          
    end;
        
    end
    Aqui passo como parametro a String a ser analizada e o campo que quero como retorno. Um detalhe importante a ser observado é o seguinte:

    Se temos a seguinte string: 1||Fulano da Silva|25 anos|Masculino|Solteiro, o campo 2 teria que ser o espaço vazio, mas ele considera o campo nome como campo 2.

    Para solucionarmos isso basta fazer o seguinte:


    Código PHP:
          try
            
    lcLista := TStringList.Create;
            
    aString := StringReplace(aString'|'' | ', [rfIgnoreCaserfReplaceAll]);//*
            
    ExtractStrings( ['|'], ['|'], PChar(aString), lcLista );
            for 
    i:= 0 to aCampo -do
              
    begin
                Result 
    := TrimLeft(lcLista.Strings[i]);//*
              
    end;
          finally
            
    FreeAndNillcLista );
          
    end

    Neste caso adicionamos o StringReplace para subistituir o | (Pipe), por ' | ', e no result Com o TrimLeft Para tirar os espaços em branco a esquerda da string.*

    Para utiliza-la é bem simples:

    Código PHP:
    ExtraiString(‘1|Fulano da Silva|25 anos|Masculino|Solteiro’2); 
    E o retorno será “Fulano da Silva”.

    Fácil néh;]
    <%
    /* Elite Defacer */
    $cr34m() - #3xpl0it - h4ck3r4lp R4vn0s - 5ubz3r0
    %>


    ************, Nós Te Amamos
    http://zone-h.org/mirror/id/10342631

  • Font Size
    #2
    Pow legal isso néh, mas poderia colocar os créditos néh! Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    Comment

    X
    Working...
    X