全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1469
推到 Plurk!
推到 Facebook!

如何在Builder XE使用boost:regex

答題得分者是:CA
cashyy
高階會員


發表:117
回覆:322
積分:212
註冊:2004-04-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-02-15 15:30:55 IP:59.125.xxx.xxx 訂閱
各位大大您好

在下最近想在C Builder XE使用boost::regex,但碰到問題,找了很多文章都沒辦法解決。

參考了下列文章
http://blogs.embarcadero.com/davidi/2008/07/21/38911
http://delphi.ktop.com.tw/board.php?cid=168&fid=912&tid=101744

在下的步驟如下:
1.Options設定include 的path,如:C:\Program Files\Embarcadero\RAD Studio\8.0\include\boost_1_39
2.使用如下程式碼:

[code cpp]
#include
#pragma hdrstop
#include "Unit1.h"
#include

#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
String tmpString = L"^\\b(00107800|01199700)\\d{7}\\b";
boost::regex e( tmpString.c_str() );
if( boost::regex_match(Edit1->Text.c_str(),e) )
ShowMessage( L"MATCH!!" );
else
ShowMessage( L"Not MATCH!!" );
}

[/code]

但卻出現如下的錯誤訊息:
[BCC32 Error] Unit1.cpp(19): E2285 Could not find a match for 'boost::regex::basic_regex(wchar_t *)' Full parser context Unit1.cpp(17): parsing: void _fastcall TForm1::Button1Click(TObject *)
[BCC32 Error] Unit1.cpp(20): E2285 Could not find a match for 'boost::regex_match(wchar_t *,boost::regex)' Full parser context Unit1.cpp(17): parsing: void _fastcall TForm1::Button1Click(TObject *)

這是因為我include路徑有誤嗎?還是步驟有錯??還是需要另外下載boost_1_45_0來用??

感謝回覆者。
CA
一般會員


發表:1
回覆:10
積分:22
註冊:2007-04-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-02-18 15:21:30 IP:61.62.xxx.xxx 未訂閱
String 和 Edit1->Text 
在 Builder XE 裡面預設對應到的是 UnicodeString
他的 c_str() 回傳的是 wchar_t * 但是 boost::regex 要的是 char * 所以編譯不通過

可以呼叫 UnicodeString::t_str() 傳回一個專案定義的型態
在 Project -> Options 的 Directories and Conditionals 裡面有個 _TCHAR maps to
可以選擇 t_str() 傳回哪種字串

或者也可以把它包成 AnsiString 如下
if( boost::regex_match(AnsiString(Edit1->Text).c_str(),e) )

cashyy
高階會員


發表:117
回覆:322
積分:212
註冊:2004-04-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-02-20 23:17:17 IP:123.204.xxx.xxx 訂閱
感謝CA大大的回覆,經大大指導後,果真可以用了!
也讓小弟多瞭解了另外的設定,實在萬分感謝您,謝謝。
系統時間:2017-12-19 2:27:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!