• ベストアンサー

C#の質問 C++/CLIの文字列操作について

String^ Text = gcnew String( "文字列" ); で以下のエラーがでます。 \Window1.xaml.cs(31,34): エラー CS1002: ; が必要です。 何がいけないか教えて頂けませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.6

WPFはやってないので見当違いなら申し訳ないのですが、 ファイルの拡張子がcsってことはC#ですよね? > String^ Text = gcnew String( "文字列" ); このコードはC++/CLIのコードですのでC#のコンパイラに怒られるのは当然では?  String Text = "文字列"; でいいかと思います。

mindeyed
質問者

お礼

なるほど・・・。 CLI/C++ と C#が区別つかない状況で お騒がせしました。 有難うございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.5

C#なんですか? C++/CLIなんですか? ファイル名とCS1002というコードはC#のもの プログラムはC++/CLIに思えます

mindeyed
質問者

補足

C#です。 これはC#でのコードではないのですか? String^ Text = gcnew String( "文字列" );

全文を見る
すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

エラーメッセージに表示される行数は「何かおかしなことが起きているとコンパイラが気づいた行」を示すだけで, 「エラーの存在する行」であるとは限りません. その行以前におかしなところはありませんか?

全文を見る
すると、全ての回答が全文表示されます。
  • chie65535
  • ベストアンサー率43% (8539/19413)
回答No.3

>エラー CS1002: ; が必要です。 そのエラーは、たいてい「エラーが出ている行の、1つ上の行に、セミコロンが無い時」に出ます。 例えば int array[10] = {1,2,3,4,5,6,7,8,9,10} String^ Text = gcnew String( "文字列" ); の場合 nt array[10] = {1,2,3,4,5,6,7,8,9,10} の最後にセミコロンが無いので String^ Text = gcnew String( "文字列" ); の行に「エラー CS1002: ; が必要です。」が出ます。 このエラーが出たら「1つ上の行を確認」しましょう。

mindeyed
質問者

補足

エラーは1ヶ所のみです。。

全文を見る
すると、全ての回答が全文表示されます。
  • usami33
  • ベストアンサー率36% (808/2210)
回答No.2

String^ Text = gcnew String( "文字列" ); で以下のエラーがでます。 \Window1.xaml.cs(31,34): エラー CS1002: ; が必要です。 何がいけないか教えて頂けませんか? 普通にビルドできますね。 その1 CS1002の前に別のエラーが出てませんか?     そこが本当のエラーでそこの構文が認識できず、次の行もエラーになっている その3 CS1002は";"が無いよってエラーなので、前の行で";"が抜けているか     ";"のつもりで":"になっていないか      その4 C#は判らないけど、C++/CLIなら「using namespace System;」この宣言が抜けているとか

mindeyed
質問者

補足

コメント有難うございます。 他のエラーコードはありません・・・。 上記コードはCSファイルのボタンアクション時に記載しています。

全文を見る
すると、全ての回答が全文表示されます。
  • FoolWord
  • ベストアンサー率73% (14/19)
回答No.1

String^ Text = gcnew String("文字列");自体は正しいので、エラー発生した行辺りで”;”を付け忘れたところがないか確認してみてください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 文字列操作が分かりません

    VB2008で文字列を加えるプログラムを組んでいるのですが、下記のリストのようにダブルクォーテーションで囲まれた文字列が旨く処理出来ません。 ダブルクォーテーションをダブルクォーテーションで括るのはできないのでしょうか。 どなたかご教授下さいませ。 よろしくお願いいたします。 1. Dim data1 As String = "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">" //W3Cの//で(式が必要です)エラーがでます。 演算と間違われているのでしょうか。 2. Dim data2 As String = "<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">" "<meta http-equiv=" この箇所でエラーが出ており、以下のエラー文です。 (文字定数には一文字のみを指定しなけばならない) 以上 よろしくお願い致します。

  • 【c++】文字列の操作

    お世話になります。 テキストの操作について質問があります。 getline関数を使用してテキストの1行分を読み込み その文字列をstrtok関数を使用し区切り文字ごとに配列に入れたいと考えています。 ですがgetlineはstd::string型の変数が必要でstrtok関数はchar型しか受け付けないため 関数同士で型が合わず困っています。 何とか型を合わせる方法は無いでしょうか。 以下にソースコードを記載しますのでご指導お願いします。 int main(){ using namespace std; string strText; char chArray[100]; ifstream fs("test.txt"); //パスで指定されたファイルから1行分の文字列を取得する while( getline(fs , strText , '\n') ){ //区切りごと配列に入れたい chArray = strtok(strText , ","); } }

  • 文字列の操作について教えて下さい。

    Javaで文字列の操作をしたいと考えています。 String str1 = "あいうえおかきく"; String str2 = "あいうえお"; 上記のようなstr1、str2という文字列があるとします。 str1は、str2と同様の文字列を先頭から含んでいます。 str2と同じ文字を省き、それ以降の文字列を取り出して、 String str3 = "かきく"; という文字列を取り出す処理を行いたい、と考えています。 一般的には、どのようなロジックを組むのかと思い質問させて頂きました。 みなさんなら、どのようなプログラムか教えてください。 よろしくお願い致します。m(_ _)m

  • C++/CLIでのDataGridViewの使い方

    以前に質問させていただいたのですが、要点を得ていなかったため再度質問させていただいきます。 VC++2005のC++/CLIでプログラムを作成しています。 CSVファイルから内容を読み込み、DataGridVeiwに表示させたいと考えています。 CSVファイルを配列に読み込んで、表示するところまでは出来ています。 以下CSVファイルを読み込んで、コンソール出力するプログラムの一部 int i; StreamReader^ sr=gcnew StreamReader("hoge.csv"); String^ text=sr->ReadToEnd(); array<String^>^ line=text->Split(gcnew array<String^> {"\r\n", "\r", "\n"},StringSplitOptions::RemoveEmptyEntries); array<array<String^>^>^ table= gcnew array<array<String^>^>(line->Length); for (i=0; i<line->Length; i++) { table[i]=line[i]->Split(','); } for each (array<String^>^ output in table){ for(i=0; i<output->Length; i++){ Console::Write(output[i]); //行出力 } } 初歩的なことだとは思うのですが・・・ コンソール出力部分をDataGridViewで出力表示させるには どのように書けばいいでしょうか。 よろしくお願いします。

  • 【C++/CLI】文字列管理関数の作成

    VC++2005の.NET、言語はC++/CLIでアプリを作成しています。 String型の文字列を管理するクラスを作成しようと思います。 自分ではどのようなものを作成したいのか、イメージはついているのですが、 CLIの知識、技術が足りず、なかなか作成することが難しい状態です。 下記にイメージを記載しますので、有識者の方々アドバイス頂けませんでしょうか。 よろしくお願い致します。 文字列管理クラス「TextTbl」 【TextTbl.h】 enum { STR_TEST1, //格納したい文字列1のID STR_TEST2 //格納したい文字列2のID // ・・・   //ここに追加したい文字列のIDを追加していく } String^ getText( int id ); 【TextTbl.cpp】 // 文字列を取得する関数(引数は文字列のID) String^ TextTbl::getText( int id ) { //文字列のテーブルを定義する処理(文字列IDと文字列の文言が対になって定義されている) //IDを元に文字列を検索し取得する処理 return str; //検索した結果のString型文字列を返す }

  • [C@3331394などの文字列

    Stringを表示させようとして[C@3331394などという文字列("[C@"以下の数字は毎回変わります。)が意図せず出てきてしまい、困っています。これはメモリ番地とかでしょうか?どなたかこのような文字列を見かけたことのあるかた、教えてください。 ちなみにezplusのエミュにてauアプリを開発しています。 http通信をしてサーバから文字列を取ってきて、それを表示する練習用のプログラムを書いてまして、その文字列が問題の文字列になってしまいます。 エミュでも、携帯実機でも出てきてしまいます。

    • ベストアンサー
    • Java
  • C#で、C言語で作ったdllに文字列の参照渡し

    Cで int test(char* moji) {   moji = "test";   return 0; } のようなdllを作り、C#側から   test(ref cs_moji); としても変数cs_mojiに"test"という文字列は帰ってきませんでした。 数時間調べたりしてcs_mojiの型をstringやStringBuilder等としたのですが、どれもうまくいきませんでした。 ポインタのポインタを利用したときは文字列は帰ってきたものの文字化けがたくさんしていて理想とはかけ離れていました。 どのようにしたらCのdllからC#に文字列を送ることができるでしょうか。 初歩的な質問かもしれないですがよろしくお願いいたします。

  • 文字列の中の1文字を比較するには?

    XP,Studio.NETでC++を書いています。 文字列の中の1文字を比較したいのですがどのようにしたらいいのかわかりません。 今以下のような文字列がstring[300]に入っているとします。 「\nは改行コードです。printf("");では"から"までの文字が画面に表示されます。」 このとき、1文字ずつを取り出し、文字を比較したいのですが (iを増加) if(string[i]=='\') flag=1; //処理→次にnが来る。 if(string[i]=='"') flag=2; //処理→文字はダブルコーテーション という処理をしたいのですが、 エラー:定数が多すぎます。 エラー:定数が2行目に続いています。 と出ます。どうしたらいいのでしょうか? どなたか教えていただけると幸いです。

  • MFC C++ と C++/CLI の文字列

    VS2008です。 Library: NativeC++ with MFC -> DLL   ↑↓ Wrapper: C++/CLI with .NET -> DLL   ↑↓ Appli: VB.NET with .NET -> EXE 元々、ActiveXコントロール(非GUI利用)だったNativeC++で書かれたLibraryを MFC DLLとしてビルドし、Wrapper 経由で Appli から使用できるよう 移植をしています。 Library から必要な関数を dllexport し、wrapper から参照し、 wrapper を Appli が参照して、使用できるようにしました。 int型を引数に取り、結果として返す関数は期待どおり動作しますが、 文字列だと上手く行きません。 Wrapper/Appli は System.CString で統一したいのですが、 Library ではどのような型として宣言すれば文字列のやり取りができるでしょうか。 ( 引数・戻値の両者 ) CString wchar_t* char* System.String ALT::CStringT basic_string _bstr_t CComBSTR LPCTSTR LPTSTR PCTSTR PTSTR LPCWSTR LPWSTR PCWSTR PWSTR BSTR… なお、Library で下記のようにエクスポートし __declspec(dllexport) BSTR test(LPCTSTR data); wrapper で BSTR hoge(LPCTSTR value){ return test(value); } と宣言すると、wrapperのビルドで下記のエラーが表示されます。 エラー 1 error LNK2028: 未解決のトークン (0A000B39) "wchar_t * __cdecl test(wchar_t const *)" (?test@@$$FYAPA_WPB_W@Z) が 関数 "public: wchar_t * __clrcall wrap::hoge(wchar_t const *)" (?hoge@C3dlib@@$$FQ$AAMPA_WPB_W@Z) で参照されました。 wrapper.obj wrapper エラー 2 error LNK2019: 未解決の外部シンボル "wchar_t * __cdecl test(wchar_t const *)" (?test@@$$FYAPA_WPB_W@Z) が 関数 "public: wchar_t * __clrcall wrap::hoge(wchar_t const *)" (?hoge@C3dlib@@$$FQ$AAMPA_WPB_W@Z) で参照されました。 wrapper.obj wrapper エラー 3 fatal error LNK1120: 外部参照 2 が未解決です。

  • ある文字を含む文字列のみ配列にする

    何度もすみません。 array(XX) { [0]=> array(2) { ["text"]=> string(YY) "りんご美味しい" ["name"]=> string(Z) "あいこ" } [1]=> array(2) { ["text"]=> string(XX) "富士山登りたい" ["name"]=> string(Z) "みほ" } [2]=> array(2) { ["text"]=> string(XX) "動物園行きたい" ["name"]=> string(Z) "なほ" } [3]=> array(2) { ["text"]=> string(XX) "メロン美味しい" ["name"]=> string(Z) "ゆい" } [4]=> array(2) { ["text"]=> string(XX) "お腹すいた" ["name"]=> string(Z) "まこ" } [5]=> array(2) { ["text"]=> string(XX) "数学やだー" ["name"]=> string(Z) "あいこ" } ……… } のような配列$textがあり、そこから["text"]に $keyword = array("りんご","メロン") の文字列を含むものだけ取り出したいです。 今までもらった回答を参考に $key_text = array(); foreach($text as $key => $v1){ foreach($keyword as $v2){ if(strpos($v1[text], $v2) !== false){ $key_text[] = $key; } } } と書いてみたのですが、上手く動作しません。 よろしければどこが間違っているかご指摘ください。 お願いします。

    • ベストアンサー
    • PHP