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

Manipulações De String....


Skin_

Pergunta

Pessoal, sobre manipulação de Strings:

1) Dá pra usar expressão regular no Delphi? Sendo assim, qual o comando para localizar uma expressão regular dentro de uma string? Se não der pra usar, como eu faço para garantir que num EDIT o texto digitado seja #.# (isto é, números<ponto>números)? Não quero usar máscara porque não oferece o retorno esperado!

2) Existe uma função "explode" que quebra uma string em algum caracter pedido (por exemplo, um exspaçõ em branco) e retorna um vetor? "Eu queria recuperar o primeiro nome de um nome composto informado por um usuário num TEdit".

Obrigado

André

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

//Como separar termos de uma string usando comandos básicos como Delete, Copy e Pos e guardar os valores em um array.

//Supondo que tenho um arquivo que o formato de cada linha seja "website|titulo|descricao|categoria", gostaria de enviar cada termo para um array e disponibilizar em um Listbox o website e a categoria. Difícil? Não.

var

MeuArray: array of array of string;

// Em MeuArray tenho que:

// MeuArray[0][0] = Website da 1ª linha

// MeuArray[0][1] = Título da 1ª linha

// MeuArray[0][2] = Descrição da 1ª linha

// MeuArray[0][3] = Categoria da 1ª linha

Arquivo: TStringList;

// Arquivo é uma variável TStringList, que facilitará o uso das strings;

LoopI,PosBarra: Integer;

// Em LoopI será executado um "for".

// PosBarra é a posição de "|".

Linha: String;

// Linha é a linha que está sendo executada no momento.

begin

Arquivo:=TStringList.Create;

Arquivo.LoadFromFile('C:\Sites.txt'); // Abrir o arquivo C:\Sites.txt.

SetLength(MeuArray,Arquivo.Count+1,4); // Definir o tamanho do array.

for LoopI := 0 to Arquivo.Count -1 do // Fazer o "for".

begin

Linha:=Arquivo.Strings[LoopI]; // Linha atual.

PosBarra:=Pos('|',Linha);

MeuArray[LoopI][0] := Copy(Linha,1,PosBarra-1);

Delete(Linha,1,PosBarra); // Deleta, porque já peguei valor do 1º

PosBarra:=Pos('|',Linha); // Pega novamente a posição de "|"

MeuArray[LoopI][1] := Copy(Linha,1,PosBarra-1);

Delete(Linha,1,PosBarra);

PosBarra:=Pos('|',Linha);

MeuArray[LoopI][2] := Copy(Linha,1,PosBarra-1);

Delete(Linha,1,PosBarra);

PosBarra:=Pos('|',Linha);

MeuArray[LoopI][3] := Linha; // É o que restou da variável Linha.

ListBox1.Items.Add(MeuArray[LoopI][0]+': '+MeuArray[LoopI][2]);

end;

Arquivo.Free;

end;

//este arquivo pode ser substituido por uma variavel:textfile; ou até mesmo um tmemo ou outro componente como tedit

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...