function strip(const source:string):string;
var i, count: Integer;
InTag: Boolean;
P: PChar;
begin
SetLength(Result, Length(source));
P := PChar(Result);
InTag := False;
count := 0;
for i:=1 to Length(source) do
if InTag then
begin
if source[i] = '>' then InTag := False;
end
else
if source[i] = '<' then InTag := True
else
begin
P[count] := source[i];
Inc(count);
end;
SetLength(Result, count);
end;
yukarıdaki fonksiyonla html parse işlemi gerçekleştirirken bütün tagleri sildiriyorum. fakat "<img src" taginin silinmemesini istiyorum ayrıca mantığını anlatırsanız <script> </script> taglari arasında ne varsa silinsin istiyorum bunları nasıl yapabilirim. Modifiye ettim ama bir türlü çalışmadı img src tagleri hep silindi.
Üzerine çok kafa yordum ama aşırı zaman kaybettiğim için acil çözmem gerekiyor artık bu sebeple yardımcı olursanız çok sevinirim herkese teşekkürler
Merhaba
Öncelikle değişmesini istemediğiniz tagleri farklı bir metine dönüştürmelisiniz. Ardından tagleri silmelisiniz sonrasında başta değiştirdiğiniz tagleri orjinal hallerine çevirmelisiniz. Böylece İstediğiniz değiştirme işlemini yapmış olursunuz.
Ör:
"<img src" metnini -> "zzzzzzzz" gibi ihtimal dışı bir metne çevir.
Değiştirme işlemini Yap.
"zzzzzzzz" metnini "<img src" orjinal hale geri çevir.
hakanharbeli yazdı:
<script> </script> taglari arasında ne varsa silinsin istiyorum bunları nasıl yapabilirim.
SimaWB yazdı:Yeri gelmişken ben de burada basit bir kod paylaşayım bu konu ile alakalı.
Mesela elimizdeki string'i boşluk'lara göre parçalamak istiyoruz:
var
SL: TStringList;
begin
SL := TStringList.Create;
try
SL.Delimiter := ' ';//Boşluk
SL.DelimitedText := 'ali veli';
//Bundan sonra elimizde boşluklara göre ayrılmış halde string mevcuttur.
//SL.Strings[0] ali
//SL.Strings[1] veli olmuştur
//SL.Count parça sayısını verir
//vs....
finally
SL.Free;
end;
end;
Tabiki boşluk yerine başka karakter de kullanılabilir.
Belki bilmeyenlerin işine yarayabilir
Siz kod parçasında boşluk yerine script kelimesini kullanmalısınız.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
function strip(const source:string):string;
var i, count: Integer;
InTag: Boolean;
P: PChar;
begin
SetLength(Result, Length(source));
P := PChar(Result);
InTag := False;
count := 0;
for i:=1 to Length(source) do
if InTag then
begin
if source[i] = '>' then InTag := False;
end
else
if source[i] = '<' then InTag := True
else
begin
P[count] := source[i];
Inc(count);
end;
SetLength(Result, count);
end;
yukarıdaki fonksiyonla html parse işlemi gerçekleştirirken bütün tagleri sildiriyorum. fakat "<img src" taginin silinmemesini istiyorum ayrıca mantığını anlatırsanız <script> </script> taglari arasında ne varsa silinsin istiyorum bunları nasıl yapabilirim. Modifiye ettim ama bir türlü çalışmadı img src tagleri hep silindi.
Üzerine çok kafa yordum ama aşırı zaman kaybettiğim için acil çözmem gerekiyor artık bu sebeple yardımcı olursanız çok sevinirim herkese teşekkürler
function strip(const source:string):string;
var i, count: Integer;
InTag: Boolean;
P: PChar;
begin
SetLength(Result, Length(source));
P := PChar(Result);
InTag := False;
count := 0;
for i:=1 to Length(source) do
if InTag then
begin
if source[i] = '>' then InTag := False;
end
else
if source[i] = '<' then InTag := True
else
begin
P[count] := source[i];
Inc(count);
end;
SetLength(Result, count);
end;
yukarıdaki fonksiyonla html parse işlemi gerçekleştirirken bütün tagleri sildiriyorum. fakat "<img src" taginin silinmemesini istiyorum ayrıca mantığını anlatırsanız <script> </script> taglari arasında ne varsa silinsin istiyorum bunları nasıl yapabilirim. Modifiye ettim ama bir türlü çalışmadı img src tagleri hep silindi.
Üzerine çok kafa yordum ama aşırı zaman kaybettiğim için acil çözmem gerekiyor artık bu sebeple yardımcı olursanız çok sevinirim herkese teşekkürler
Merhaba, örnek HTML paylaşabilir misiniz?
ertan hocam halletim stringreplace ve üstadın öneriisni birleştirince hallettim teşekkür ederim ilgniz için