레겍스 패턴 구문을 왜 소트를 해요
레겍스 사용방법 부터 배우셔야 할듯요
도르레 님이 쓰신 글 :
: #include <fmx.h>
: #include <System.RegularExpressions.hpp>
: #include <string>
: #include <cstring>
: #include <iostream>
:
: #include "Unit2.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma resource "*.fmx"
: TForm2 *Form2;
: //---------------------------------------------------------------------------
: __fastcall TForm2::TForm2(TComponent* Owner)
: : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm2::SearchEditButton1Click(TObject *Sender)
: {
: ChangeTabAction1->Tab=TabItem2;
: ChangeTabAction1->ExecuteTarget(NULL);
:
: UnicodeString Site1 = TIdURI :: URLEncode ("
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query="+Edit1->Text, IndyTextEncoding_UTF8 ());
: Memo1->Text=IdHTTP1->Get(Site1);
:
: String name("strong[^>]*>([^<]+)</strong>"); //책 제목
: String sale_price("
]*>([^<]+)""); //할인가
:
: TRegEx reg;
: TMatch m;
:
: String b;
:
: char tmp;
:
: int i,j;
:
: for(i=0;i<9;i++){
: for(j=i+1;j<10;j++){
:
: if(sale_price[i]>sale_price[j]){
: tmp=sale_price[i];
: sale_price[i]=sale_price[j];
: sale_price[j]=tmp;
: }
: }
: }
:
: for(i=0;i<Memo1->Lines->Count;i++)
: {
: m= reg.Match(Memo1->Lines->operator[](i),name);
: if(m.Success){
: DynamicArray<UnicodeString> e = reg.Split(Memo1->Lines->operator[](i),name);
: Memo2->Lines->Add( e[1] + "\n");
: }
:
: m= reg.Match(Memo1->Lines->operator[](i),sale_price);
: if(m.Success){
: DynamicArray<UnicodeString> e = reg.Split(Memo1->Lines->operator[](i),sale_price);
: Memo3->Lines->Add( e[1] + "\n");
: }
: }
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm2::Button1Click(TObject *Sender)
: {
: ChangeTabAction2->Tab=TabItem1;
: ChangeTabAction2->ExecuteTarget(NULL);
: }
:
: 여기서 range check error오류가 나네요 어떻게 해결 해야 되죠? 그리고 지금 버블정렬 하는 거 하고 있는데 저런식으로 하는 거 맞나요? 실행은 되는데...