Substituir string !!!!!
Pessoal tenho ki alterar um codigo html em tempo de execuçao estou pensand em carregar o cod em um memo e alterar.So que tenho que impor algumas regras tipo assim:
tem que alterar o que esta dentro dos ´ ´.Desse modo:
src=´alterar tudo ki estiver aki dentro e coloca outro valor´
essa eh a linha do cod. html que tenho que alterar so que pode ter varias linhas iguais a essa.
Espero ter explicado bem !!!!!!
Valew
tem que alterar o que esta dentro dos ´ ´.Desse modo:
src=´alterar tudo ki estiver aki dentro e coloca outro valor´
essa eh a linha do cod. html que tenho que alterar so que pode ter varias linhas iguais a essa.
<v:imagedata src="./Pasta1_arquivos/image001.jpg" o:title="kerry ou query"/>
Espero ter explicado bem !!!!!!
Valew
Guilherme
Curtidas 0
Respostas
Celamar
25/08/2005
Use a função StringReplace
GOSTEI 0
Rjun
25/08/2005
Você pode ler esse HTML através de um TSringList e utilizar StringReplace para faze a substituição.
GOSTEI 0
Guilherme
25/08/2005
so que para usar o StringReplace noa precisar saber a string exata ?? eu nao sei a sting exata ela varia eu sei ki tenho ki alterar entra as aspas ki estao apos o src=´string desconehcida a ser alterada´
GOSTEI 0
Cabelo
25/08/2005
este HTML poderá existir várias imagens????
GOSTEI 0
Guilherme
25/08/2005
sim cabelo podera ter N imagens !!!!!
GOSTEI 0
Rjun
25/08/2005
Se você não sabe o q vai alterar, como vc vai fazer? Poste um trecho do HTML e o que vc quer alterar e como ele deve ficar.
GOSTEI 0
Adriano Santos
25/08/2005
sim cabelo podera ter N imagens !!!!!
Ae, montei um algoritimo aqui usando um TEdit, consegui fazer a substituição do texto entre aspas somente do [b:dceb4a6844]src[/b:dceb4a6844] como vc necessita, agora é só dar uma adaptada a sua necessidade.
procedure TForm1.Button1Click(Sender: TObject); var I: Integer; PosIni: Integer; PosFim: Integer; ContaCaract: Integer; MeuTexto: string; MinhaFrase: string; begin MeuTexto := Edit1.Text; PosIni := Pos(´src="´, MeuTexto) + 5; ContaCaract := 0; for I := PosIni to Length(MeuTexto) do begin if MeuTexto[I] = ´"´ then // fim da src begin MinhaFrase := Copy(MeuTexto, PosIni, ContaCaract); Edit1.Text := StringReplace(MeuTexto, MinhaFrase, ´Olá mano´, []); Break; end; Inc(ContaCaract); end; end;
GOSTEI 0
Adriano Santos
25/08/2005
Ae, tava sem fazer nada aqui e aproveitei para melhor o algoritimo.
Aqui eu uso dois Memos, eu pego a linha do primeiro, faço um StringReplace e jogo do segundo Memo.
Cara, agora foi melzinho na chupeta hein...rs....
Adiciona os memos ai e cola seu HTML dentro do primeiro e testa, funciona direitinho cara.
Aqui eu uso dois Memos, eu pego a linha do primeiro, faço um StringReplace e jogo do segundo Memo.
Cara, agora foi melzinho na chupeta hein...rs....
Adiciona os memos ai e cola seu HTML dentro do primeiro e testa, funciona direitinho cara.
procedure TForm1.Button1Click(Sender: TObject); var I, J: Integer; PosIni: Integer; PosFim: Integer; ContaCaract: Integer; MeuTexto: string; MinhaFrase: string; begin for J := 0 to Memo1.Lines.Count do begin MeuTexto := Memo1.Lines[I];//Edit1.Text; PosIni := Pos(´src="´, MeuTexto) + 5; ContaCaract := 0; for I := PosIni to Length(MeuTexto) do begin if MeuTexto[I] = ´"´ then // fim da src begin MinhaFrase := Copy(MeuTexto, PosIni, ContaCaract); Memo2.Lines.Add(StringReplace(MeuTexto, MinhaFrase, ´Olá mano´, [])); Break; end; Inc(ContaCaract); end; end; end;
GOSTEI 0
Guilherme
25/08/2005
pessoal eu fiz esse cod:
so que esta acontecendo o mesmo que o cod do nosso amigo Adriano Santos ele so apaga ate o primeiro src=´ aquem sabe como que faço para que ele continue apagando ate que nao tenha mais src=´ ????
o cod html eh :
var a: String; b: integer; begin try a:=Memo1.Text; while b <> 0 do begin b:=pos(´src="´,Memo1.Text)+5; if Copy(a,b,1) <> ´"´ then begin Delete(a,b,1); end else abort; end; finally Memo1.Text:=a; end; end;
so que esta acontecendo o mesmo que o cod do nosso amigo Adriano Santos ele so apaga ate o primeiro src=´ aquem sabe como que faço para que ele continue apagando ate que nao tenha mais src=´ ????
o cod html eh :
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>Nova pagina 1</title> </head> <body> <p><img border="0" src="../../../Guilherme/Imagens/my¬20photos/BXK15424_ilha_tropical8.jpg" width="442" height="333"></p> <p><img border="0" src="../../../Guilherme/Imagens/my¬20photos/BXK15424_ilha_tropical9.jpg" width="442" height="333"></p> <p><img border="0" src="../../../Guilherme/Imagens/my¬20photos/BXK15424_ilha_tropical10.jpg" width="442" height="333"></p> </body> </html>
GOSTEI 0
Adriano Santos
25/08/2005
pessoal eu fiz esse cod:
so que esta acontecendo o mesmo que o cod do nosso amigo Adriano Santos ele so apaga ate o primeiro src=´ aquem sabe como que faço para que ele continue apagando ate que nao tenha mais src=´ ????
o cod html eh :
var a: String; b: integer; begin try a:=Memo1.Text; while b <> 0 do begin b:=pos(´src="´,Memo1.Text)+5; if Copy(a,b,1) <> ´"´ then begin Delete(a,b,1); end else abort; end; finally Memo1.Text:=a; end; end;
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>Nova pagina 1</title> </head> <body> <p><img border="0" src="../../../Guilherme/Imagens/my¬20photos/BXK15424_ilha_tropical8.jpg" width="442" height="333"></p> <p><img border="0" src="../../../Guilherme/Imagens/my¬20photos/BXK15424_ilha_tropical9.jpg" width="442" height="333"></p> <p><img border="0" src="../../../Guilherme/Imagens/my¬20photos/BXK15424_ilha_tropical10.jpg" width="442" height="333"></p> </body> </html>
Pow, agora não entendi [b:2a65dc7179]´gborges_13´[/b:2a65dc7179], você não precisa substituir o que tah em src por outro valor? Porque quer apagar?
[code]
GOSTEI 0
Guilherme
25/08/2005
eh o seu esta substituindo so ki so faz o primeiro src=´ eu preciso fazer em todos pro iquanto o meu soh ta apagando mais adicionar depois de apagar eh so seguir seu exemplo o problema eh fazer ele apagar/alterar todos os src=´ existentes !!!!!!
foi mal me espreçei errado !!!!! :oops: :oops:
foi mal me espreçei errado !!!!! :oops: :oops:
GOSTEI 0
Adriano Santos
25/08/2005
Desculpe, achei um bug.
procedure TForm1.Button1Click(Sender: TObject); var I, J: Integer; PosIni: Integer; PosFim: Integer; ContaCaract: Integer; MeuTexto: string; MinhaFrase: string; begin for J := 0 to Memo1.Lines.Count do begin MeuTexto := Memo1.Lines[J]; //não pra colocar "I" no Lines e sim "J" era Memo1.Lines[I]; if Pos(´src="´, MeuTexto) > 0 then //Linha adicionada begin PosIni := Pos(´src="´, MeuTexto) + 5; ContaCaract := 0; for I := PosIni to Length(MeuTexto) do begin if MeuTexto[I] = ´"´ then // fim da src begin MinhaFrase := Copy(MeuTexto, PosIni, ContaCaract); Memo2.Lines.Add(StringReplace(MeuTexto, MinhaFrase, ´Olá mano´, [])); Break; end; Inc(ContaCaract); end; end else //else adicionado begin Memo2.Lines.Add(Memo1.Lines[J]); Continue; end; end; end;
GOSTEI 0
Guilherme
25/08/2005
ai pessoal o ultimo post do Adriano Santos deu certin vlw gente !!!!!!
GOSTEI 0