Dúvida com string
Preciso copiar uma string de uma posição conhecida até a palavra FONE, ou seja, copiar tudo que esteja antes de fone. Como faço isso usando pos? Tentei assim Copy(s,1,pos(´FONE:´,s), mas não deu. Não determinar quantos caracters são até fone, pois são variáveis.
Paulo
Curtidas 0
Respostas
Ffc
27/06/2008
Boa noite Paulo,
Tenta desta forma que vai funcionar.
Copy([b:11f7f70823]var_string[/b:11f7f70823], 1, POS(´FONE:´, [b:11f7f70823]var_string[/b:11f7f70823])-1));
Abraços.
Tenta desta forma que vai funcionar.
Copy([b:11f7f70823]var_string[/b:11f7f70823], 1, POS(´FONE:´, [b:11f7f70823]var_string[/b:11f7f70823])-1));
Abraços.
GOSTEI 0
Paulo
27/06/2008
Já fiz e não funciona. Veja o meu código:
A String s está assim:
Realmente estou apanhando de algo muito simples
j := AnsiPos(´LOJA:´,s);
if j <> 0 then
Loja := Copy(s,j+5,pos(´FONE:´,s)-1);
A String s está assim:
´LOJA: São Bento FONE:(11)9999-9999´
Pelo meu código acima está vindo assim:´São Bento Fone:(11)9´
Realmente estou apanhando de algo muito simples
GOSTEI 0
Paulo
27/06/2008
Já fiz e não funciona. Veja o meu código:
A String s está assim:
Realmente estou apanhando de algo muito simples
j := AnsiPos(´LOJA:´,s);
if j <> 0 then
Loja := Copy(s,j+5,pos(´FONE:´,s)-1);
A String s está assim:
´LOJA: São Bento FONE:(11)9999-9999´
Pelo meu código acima está vindo assim:´São Bento Fone:(11)9´
Realmente estou apanhando de algo muito simples
GOSTEI 0
Marco Salles
27/06/2008
Preciso copiar uma string de uma posição conhecida até a palavra FONE, ou seja, copiar tudo que esteja antes de fone.
se voce quer isto mesmo e eu entendi deste memsmo modo o [u:3cea956517][b:3cea956517]Facc tem razão[/b:3cea956517][/u:3cea956517]:
Boa noite Paulo,
Tenta desta forma que vai funcionar.
Copy(var_string, 1, POS(´FONE:´, var_string)-1));
Abraços.
Agora é casesensitive e se voce tiver Fone , FONe , FoNe etc... não funciona .. Ai ja é outro código
Fora disso , realmente não dá para entender tamnha dúvida ????
GOSTEI 0
Paulo
27/06/2008
Está exatamente como está na minha string, ou seja, [color=red:54cfecf611]FONE:[/color:54cfecf611]
GOSTEI 0
Marco Salles
27/06/2008
citação de marco salles
citação de paulo
então paulo .. o codifo do FFC para uma String
[b:9c4850d5d9]s=´LOJA: São Bento FONE:(11)9999-9999´[/b:9c4850d5d9]
Tera como Resposta
[b:9c4850d5d9]´LOJA: São Bento´[/b:9c4850d5d9]
Esta Errado Isto ????
Agora é casesensitive e se voce tiver Fone , FONe , FoNe etc... não funciona .. Ai ja é outro código
citação de paulo
Está exatamente como está na minha string, ou seja, FONE:
então paulo .. o codifo do FFC para uma String
[b:9c4850d5d9]s=´LOJA: São Bento FONE:(11)9999-9999´[/b:9c4850d5d9]
Tera como Resposta
[b:9c4850d5d9]´LOJA: São Bento´[/b:9c4850d5d9]
Esta Errado Isto ????
GOSTEI 0
Paulo
27/06/2008
Marcos, a minha string original é:
´LOJA: São Bento FONE:(11)9999-9999´
Eu preciso pegar somente São Bento, nada mais. Eu coloquei o j+5, para copiar apartir LOJA:(5 caracteres), e pegar tudo antes de FONE: e depos de LOJA:. Fiz conforme passei, mas continua vindo ´sujeira´.
´LOJA: São Bento FONE:(11)9999-9999´
Eu preciso pegar somente São Bento, nada mais. Eu coloquei o j+5, para copiar apartir LOJA:(5 caracteres), e pegar tudo antes de FONE: e depos de LOJA:. Fiz conforme passei, mas continua vindo ´sujeira´.
GOSTEI 0
Ffc
27/06/2008
Paulo tenta desta forma
Edit1.Text := ´LOJA: São Bento FONE:(11)9999-9999´;
(Copy(Edit1.Text, 7, POS(´FONE:´, Edit1.Text)-7);
Vai dar certo ok.
Abraços.
Edit1.Text := ´LOJA: São Bento FONE:(11)9999-9999´;
(Copy(Edit1.Text, 7, POS(´FONE:´, Edit1.Text)-7);
Vai dar certo ok.
Abraços.
GOSTEI 0
Paulo
27/06/2008
Não tenho como colocar num edit. Minha realidade é a seguinte: Imagine um arquivo texto com mais ou menos 10.000 linhas, onde vai aparecer sempre, em determinados momentos String assim:
[color=red:2dfcdf81ec]LOJA: Nome _da_loja FONE:Num_Fone[/color:2dfcdf81ec]. Aí eu pego somente a loja, guardo numa StringList e depois gero outro arquivo Txt, mas já formatado conforme o nosso Layout aqui. Falei 10.000 linhas, mas pode ser muito mais, dependendo do período. Vou varrendo e guardando o nome da loja. Por isso eu uso o AnsiPos e etc...
[color=red:2dfcdf81ec]LOJA: Nome _da_loja FONE:Num_Fone[/color:2dfcdf81ec]. Aí eu pego somente a loja, guardo numa StringList e depois gero outro arquivo Txt, mas já formatado conforme o nosso Layout aqui. Falei 10.000 linhas, mas pode ser muito mais, dependendo do período. Vou varrendo e guardando o nome da loja. Por isso eu uso o AnsiPos e etc...
GOSTEI 0
Joaoshi
27/06/2008
Colega, tente assim:
Espero ter ajudado.
j := AnsiPos(´LOJA:´,s); if j <> 0 then Loja := Copy(s, Pos(´LOJA:´,s) + 5, Pos(´FONE:´,s)-7);
Espero ter ajudado.
GOSTEI 0
Paulo
27/06/2008
Ainda não testei, mas posso tentar fazer assim e ver se funciona.
j := AnsiPos(´LOJA:´,s);
FinLoja := j+5;
if j <> 0 then
Loja := Copy(s,FinLoja,pos(´FONE:´,s)-FinLoja);
j := AnsiPos(´LOJA:´,s);
FinLoja := j+5;
if j <> 0 then
Loja := Copy(s,FinLoja,pos(´FONE:´,s)-FinLoja);
GOSTEI 0
Ffc
27/06/2008
Caro Paulo após testar eu percebi qual o seu problema, então teste desta forma.
var
J: Integer;
S, Loja: [b:58f96c5cb6]String[/b:58f96c5cb6];
[b:58f96c5cb6]begin[/b:58f96c5cb6]
S := ´TESTANDO O SISTEMA LOJA: SAO BENTO FONE:(62)33110000´;
j := AnsiPos(´LOJA:´,s);
[b:58f96c5cb6]if[/b:58f96c5cb6] j <> 0 [b:58f96c5cb6]then[/b:58f96c5cb6]
Loja := Copy(s,Pos(´LOJA:´,s) + 5,Pos(´FONE:´,s)- (Pos(´LOJA:´,s) + 5));
ShowMessage(Loja);
Obs: S: String foi somente para teste então pode fazer da sua forma.
Boa sorte...
var
J: Integer;
S, Loja: [b:58f96c5cb6]String[/b:58f96c5cb6];
[b:58f96c5cb6]begin[/b:58f96c5cb6]
S := ´TESTANDO O SISTEMA LOJA: SAO BENTO FONE:(62)33110000´;
j := AnsiPos(´LOJA:´,s);
[b:58f96c5cb6]if[/b:58f96c5cb6] j <> 0 [b:58f96c5cb6]then[/b:58f96c5cb6]
Loja := Copy(s,Pos(´LOJA:´,s) + 5,Pos(´FONE:´,s)- (Pos(´LOJA:´,s) + 5));
ShowMessage(Loja);
Obs: S: String foi somente para teste então pode fazer da sua forma.
Boa sorte...
GOSTEI 0