Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Удаление тегов DELPHI (https://forum.antichat.xyz/showthread.php?t=205599)

SultanOFF 21.05.2010 06:10

Удаление тегов DELPHI
 
здравствуйте. Парсю страницу, но в тексте остаются html теги (<br> etc) Дайте пожалуйста если кто знает код, с помощью которых можно удалить все теги. Желательно использовать регулярки

Ra$cal 21.05.2010 11:41

а гуглить пробовал? regex html теги

Chrome~ 21.05.2010 15:22

Удаляй все от < до >.

Ildon 21.05.2010 18:31

Вот например

Код:


  unsigned pos1, len1;
pos1 = Form4->Memo1->Text.Pos("<");
len1 = strlen("<");
Form4->Memo1->Text = Form4->Memo1->Text.SubString(pos1 + len1, MaxInt);
unsigned pos3 ;

pos3 = Form4->Memo1->Lines->Strings[0].Pos("'>");
Form4->Memo1->Text=(Form4->Memo1->Lines->Strings[0].SubString(1, pos3 - 1));


narik_ 21.05.2010 18:33

Цитата:

Сообщение от Chrome~
Удаляй все от < до >.

глупо. а вдруг в тексте будут такие символы?

SultanOFF 21.05.2010 20:57

Код:

function ConvertHTML(AInput: WideString): WideString;
var
  Len, WriteLen, ReadPos, OldPos, WritePos: integer;
begin
  Len := Length(AInput);
  if Len = 0 then
    Exit;
  SetLength(Result, Len);
  ReadPos := 1;
  WritePos := 1;
  while ReadPos < Len do
  begin
    OldPos := ReadPos;
    while (AInput[ReadPos] <> WideChar('<')) and (ReadPos < Len) do
      Inc(ReadPos);
    WriteLen := ReadPos - OldPos;
    if WriteLen > 0 then
    begin
      Move(AInput[OldPos], Result[WritePos], WriteLen*2);
      Inc(WritePos, WriteLen);
    end;
    while (AInput[ReadPos] <> WideChar('>')) and (ReadPos < Len) do
      Inc(ReadPos);
    Inc(ReadPos);
  end;
  SetLength(Result, WritePos - 1);
end;

гугл рулит, однако

Chrome~ 21.05.2010 21:15

Цитата:

Сообщение от narik_
глупо. а вдруг в тексте будут такие символы?

Это глупо на первый взгляд... Но если вдуматься, и такой символ может встречаться у тексте, то целиком возможно, что:
1) На сайте есть XSS уязвимость.
2) На сайте сделали ошибку при форматировании HTML тегов.


Время: 07:05