Fórum Como usar um delimiter específico, importação de nomes? #606525
11/11/2019
0
Olá amigos bom dia, estou com uma dúvida, e preciso de uma ajuda a quem poder fazer esse grande favor.
Estou importante para uma listview os nomes de músicas, para cadastro em um sistema, e o que preciso? Separar nome do artísta com o nome da música.
Então preciso usar o delimitador '' - ''
Como podem ver, é um traço com espaço antes e depois, o porque deste motivo?
As vezes vem músicas com nomes que tem traço mas sem espaço, então ele irá separar só quando tiver o traço com espaço antes e depois:
Exemplo
José Souza - Deixe-me em paz
Como podem ver tem dois traços nesta música, mas quero que ele separe onde tem o traço com espaço:
artista música
José Souza Deixe-me em paz
Então como eu faria isso no código em delphi? como usar um delimiter pra isso?
Obrigado a todos.
Estou importante para uma listview os nomes de músicas, para cadastro em um sistema, e o que preciso? Separar nome do artísta com o nome da música.
Então preciso usar o delimitador '' - ''
Como podem ver, é um traço com espaço antes e depois, o porque deste motivo?
As vezes vem músicas com nomes que tem traço mas sem espaço, então ele irá separar só quando tiver o traço com espaço antes e depois:
Exemplo
José Souza - Deixe-me em paz
Como podem ver tem dois traços nesta música, mas quero que ele separe onde tem o traço com espaço:
artista música
José Souza Deixe-me em paz
Então como eu faria isso no código em delphi? como usar um delimiter pra isso?
Obrigado a todos.
Júnior Pinheiro
Curtir tópico
+ 0
Responder
Posts
14/11/2019
Jorge Pinto
Fala Júnior !! Tranquilo ??
Júnior, há anos atrás também tive uma necessidade parecida com a sua e então resolvi desenvolver uma função para fazer essa tarefa,
dá uma olhada no código abaixo:
Vc utiliza ela assim:
A variável terceiroNome conterá "Santos"...
ou como no seu caso:
em artista vc terá "José Souza" e em musica vc terá "Deixe-me em paz" :))
Copia ela e insere em um projeto seu, faça alguns testes... acho que poderá lhe ajudar.
Espero ter ajudado,
Abraço e bons códigos.
Júnior, há anos atrás também tive uma necessidade parecida com a sua e então resolvi desenvolver uma função para fazer essa tarefa,
dá uma olhada no código abaixo:
//SST_Pedaco - Devolve o conteudo de um pedaço de uma string delimitada por uma
// substring delimitadora.
//Parâmetros:
// source - String da qual será extraído o resultado.
// Del - String delimitadora. Essa string, ou caracter que é mais
// comum, nunca fará parte do resultado, servirá apenas para
// delimitar(dividir) a source em partes.
// Index - Número(posição) da parte a ser resgatada de source.
//
//Retorno: String - Contera a parte de source que foi extraída.
function SST_Pedaco(Source, Del: string; Index: Integer): string;
var
Posi, cont, pini: Integer;
ret: string;
begin
Ret := '';
if (Source <> '') and (Del <> '') then
begin
posi := Pos(Del, Source);
if posi < 1 then
begin
if Index = 1 then
Ret := Source
else
Ret := ''
end
else
begin
pini := Pos(Del, Source);
repeat
Delete(Source, pini, Length(Del));
Insert(#1, Source, pini);
pini := Pos(Del, Source);
until (pini = 0);
cont := 0;
Del := #1;
repeat
Inc(cont);
Ret := '';
for pini := 1 to posi - 1 do
Ret := Ret + Source[pini];
Source := Copy(Source, posi + 1, Length(Source));
posi := Pos(Del, Source);
if posi = 0 then
posi := Length(Source) + 1;
until cont >= Index;
end;
end;
Result := Trim(Ret);
end;
Vc utiliza ela assim:
terceiroNome := SST_Pedaco("João Augusto Santos", " " , 3);
A variável terceiroNome conterá "Santos"...
ou como no seu caso:
artista := SST_Pedaco("José Souza - Deixe-me em paz", " - " , 1);
musica := SST_Pedaco("José Souza - Deixe-me em paz", " - " , 2);
musica := SST_Pedaco("José Souza - Deixe-me em paz", " - " , 2);
em artista vc terá "José Souza" e em musica vc terá "Deixe-me em paz" :))
Copia ela e insere em um projeto seu, faça alguns testes... acho que poderá lhe ajudar.
Espero ter ajudado,
Abraço e bons códigos.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)