CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - [BCB6] Jak napisać pętlę usuwającą znaczniki z memo?
Strona 2 z 2

Re: [BCB6] Jak napisać pętlę usuwającą znaczniki z memo?

Nowy postNapisane: niedziela, 5 czerwca 2011, 17:53
przez Cyfrowy Baron
Usuwanie tagów html rozpoczynających się < i kończących > z wykorzystaniem biblioteki boost\regex.hpp.

Wymagane są biblioteki BOOST.

kod dla zmiennych AnsiString i string:
KOD cpp:     UKRYJ  
#include <string>
#include <boost\\regex.hpp>

using namespace boost;
using namespace std;

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 AnsiString text = Memo1->Text;
 string input = text.c_str();
 regex expr("<[^>]*>");
 string replace = " ";

 string result = regex_replace( input, expr, replace, match_default | format_sed);

 Memo1->Text = String( result.c_str() );
}


kod dla zmiennych UnicodeString i wstring przy mapowaniu ustawionym na wchar_t - tylko C++Builder 2009 i wyższe wersje:
KOD cpp:     UKRYJ  
#include <string>
#include <boost\\regex.hpp>

using namespace boost;
using namespace std;

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 String text = Memo1->Text;
 wstring input = text.c_str();
 wregex expr(L"<[^>]*>");
 wstring replace = L" ";

 wstring result = regex_replace( input, expr, replace, match_default | format_sed);

 Memo1->Text = String( result.c_str() );
}


Szybko i bezboleśnie.

Re: [BCB6] Jak napisać pętlę usuwającą znaczniki z memo?

Nowy postNapisane: poniedziałek, 6 czerwca 2011, 00:43
przez areq47
Dziękuję bardzo za pomoc. Jak tylko zainstaluje bibliotekę BOOST sprawdzę działanie tej funkcji. Mam nadzieję że nie będzie żadnych problemów ;)

Re: [BCB6] Jak napisać pętlę usuwającą znaczniki z memo?

Nowy postNapisane: poniedziałek, 6 czerwca 2011, 09:41
przez Cyfrowy Baron
BOOST to zbiór bibliotek i możesz mieć z tym problemy. Jeżeli się nie uda wykorzystaj kod polymorphism.

Re: [BCB6] Jak napisać pętlę usuwającą znaczniki z memo?

Nowy postNapisane: wtorek, 7 czerwca 2011, 15:44
przez ola22
dzieki za odp, własnie miałam taki sam problem, ale już po problemie :)