Usuwanie czegoś tam w Delphi

0

procedure Delete_html_tags_in_memo(source_name : TMemo);
var
znak : string[1];
html : string;
od, dokoniec : integer;
i : integer;
i2 : integer;
begin
for i:=0 to source_name.Lines.Count - 1 do
begin *wszystkie linijki, sprawdzanie po kolei

for i2:=0 to Length(source_name.lines[i]) do sprawdzanie jednej linijki
begin
znak := source_name.lines[i] [i2];
finish := source_name.lines[i] [i2];
if znak = '&lt' then
begin
od := i2;
end;

if znak = '&gt' then
begin
dokoniec := i2;
end;
HTML := source_name.lines[i];
Delete(HTML,od,dokoniec);
source_name.lines[i] := HTML;
end; */koniec linijka - znaczek po znaczku

end; *koniec all lines

end; *end of procka :)

I teraz jakieś błędy mi wyskakują ;(
ale jedynie jak w memo sa znaki "&lt" i "&gt", czyli normalne znaczniki HTML

Pomóżcie

i nie odsyłajcie mnie do działu gotowce - bo ja robię swoją procedure a nie zwalam kod :)

0

Zmieniłem kod na:

procedure Delete_html_tags_in_memo(source_name : TMemo);
var
znak : string[1];
html : string;
od, dokoniec : integer;
i : integer;
i2 : integer;
begin
for i:=0 to source_name.Lines.Count - 1 do
begin *wszystkie linijki, sprawdzanie po kolei

for i2:=0 to Length(source_name.lines[i]) do sprawdzanie jednej linijki
begin
znak := source_name.lines[i] [i2];
finish := source_name.lines[i] [i2];
if znak = '&lt' then
begin
od := i2;
end;
znak := source_name.lines[i] [i2]; / tu jest dodana nowa linijka
if znak = '&gt' then
begin
dokoniec := i2;
end;

HTML := source_name.lines[i];
Delete(HTML,od,dokoniec);
source_name.lines[i] := HTML;
end; */koniec linijka - znaczek po znaczku

end; *koniec all lines

end; *end of procka :)

I teraz jak mam tekst:

" - to znacznik &lt i " &gt też

kupa "łe" opek

==============

to usuwa wszystko po łe razem z nim i zostaje tylko kupa:

==============
kupa

==============

gdy mam tekst:

==============
kupa "łe" opek

"opek"

To już jakieś niewiarygodne błędy wyskakują ;(

Pomóżcie!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

0

żeby sobie postow nie nabijac piszę:

Wiem w czym kłopot := po pierwsze program nie umie przejść do następnej linijki - błąd w for I:=0 i coś tam/ a w ogóle dlaczego on usuwa wszystko po &ltjakiś_tekst&gt

Jeszcze raz pomóżcie

0

Poprawiłem prockę: usuwa tak jak ma być ale jak mamy &lthytymyl&gtopek to usnuie tak: "pek" :) - to naprwawię ale dalej z większą ilością znaczników &lt &gt mi usuwa to co nie powinien a juz w następnych linijkach upokazuje błędy!!!!!!

procedure Delete_html_tags_in_memo(source_name : TMemo);
var
znak : string[1];
html : string;
od, dokoniec : integer;
i : integer;
i2 : integer;
opened : integer;
dlugosc : integer;
begin
opened := 0;
for i:=0 to source_name.Lines.Count - 1 do
begin *wszystkie linijki, sprawdzanie po kolei
dlugosc := Length(source_name.lines[i]);

for i2:=0 to dlugosc do sprawdzanie jednej linijki
begin
znak := source_name.lines[i] [i2];
finish := source_name.lines[i] [i2];
if znak = '&lt' then
begin
od := i2;
opened := 1;
end;
znak := source_name.lines[i] [i2];

if znak = '&gt' then
begin
dokoniec := i2;
opened := 2;
end;

if opened = 2 then
begin
HTML := source_name.lines[i];
*Delete(HTML,od,dokoniec);
Delete(html,od, dokoniec - od + 2);
source_name.lines[i] := HTML;
opened := 0;
end;

end; */koniec linijka - znaczek po znaczku

end; *koniec all lines

end; //end of procka :)

0

O usuwa z każdej linijki z tą procką ale: I tak usuwa cały tekst pomiędzy &ltopek&gt hehe &ltopek&gt - czyli zamiast zostawić hehe w spokoju usuwa tez hehe

0

ja proponuje takie rozwiazanie:

procedure DeleteHTMLTagsFromMemo( SourceMemo: TMemo);
var
Opened : Boolean;
HTML, NoHTML : String;
i,i1 : Integer;
begin
Opened := False;

for i := 0 to SourceMemo.Lines.Count -1 do
begin
NoHTML := `;
HTML := SourceMemo.Lines[i];

for i1 := 1 to Length(HTML) do
begin
  if HTML[i1] = ` then
    begin
      Opened := False;
      Delete(HTML, i1, 1);
    end;

  if not Opened then
    begin
      NoHtml := NoHTML + HTML[i1];
    end;
end;
SourceMemo.Lines[i] := NoHTML;

end;
end;---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ [email protected] ]=-

0

LKS nie da za wygraną :P

THX!!!!!!! {browar} {hello}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0