C266エラーをなくすには?

解決


Natoh  2005-10-03 06:05:25  No: 59181

http://www.gotdotnet.com/japan/student/column/firststep/firststep18.aspx
↑のページをやっています。
しかし、私の環境は、Visual C++ .NET 2003
上記URLの環境はVC# .NETで書いてある。

         /* ダウン対象URLと  保存先パスの取得 */
         downurl = this->TextUrl->Text;
         filepath = this->textFilePath->Text;

         /* ダウンロード対象ページtemp.htmlとして保存 */
         WebClient* myWebClient = new WebClient();
         myWebClient->DownloadFile(downurl,"c:\temp.html");

         /* c:\temp.html の内容を contents に格納 */
         StreamReader* reader = 
           File::OpenText("c:\temp.html");
         contents = reader->ReadToEnd();
         reader->Close();

         // contents からリンク情報のリストを抽出
         System::Text::RegularExpressions::Regex *regex = 
          new System::Text::RegularExpressions::Regex("<a +href=('|\")[^('|\")]*('|\") *>");

         System::Text::RegularExpressions::MatchCollection *matchcollection = 
          regex->Matches(contents);

         // 各リンク情報から URL情報 を排出し、DL
         for(i=0;i<matchcollection->Count;++i)
         {
           /* 各リンク情報から URL情報 を排出 */
           System::Text::RegularExpressions::Regex *urlregex = 
             new System::Text::RegularExpressions::Regex("('|\")[^('|\")]*('|\")");
           System::Text::RegularExpressions::Match *match =
             urlregex->Match(matchcollection->Item[i]);
           url = match->Value->Substring(1, match->Value->Length-2);

           /* 排出されたやつをテキストボックスに表示 */
           this->textUrlList->Text = String::Concat(textUrlList->Text,url);
           this->textUrlList->Text = String::Concat(textUrlList->Text,"\r\n");

このソースの             urlregex->Match(matchcollection->Item[i]);
でエラーが発生。
error C2664: 'System::Text::RegularExpressions::Match __gc *System::Text::RegularExpressions::Regex::Match(System::String __gc *)' : 1 番目の引数を 'System::Text::RegularExpressions::Match __gc *' から 'System::String __gc *' に変換できません。

ぐぐってみても、さっぱりなので、よろしくお願いします


Natoh  2005-10-03 06:33:06  No: 59182

すいません。
キャストして、解決しました。


Blue  2005-10-03 07:30:06  No: 59183

matchcollection->Item[ i ] は Match* 型
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemtextregularexpressionsmatchcollectionclassitemtopic.asp

Match* 型からString型の値をとるには
matchcollection->Item[ i ]->Value
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemtextregularexpressionsmatchmemberstopic.asp
でいいのでは?
(C#のやつではmatchcollection[i].Valueとなっていますが。)

> キャストして、解決しました。
キャストを使わない方法があるならば、使わないほうがいいです。


Blue  2005-10-03 07:31:51  No: 59184

typo
> Match* 型からString型の値をとるには
Match* 型からString*型の値をとるには


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加