【GUI】wxWidgets(旧wxWindows) その5【サイザー】 (960レス)
【GUI】wxWidgets(旧wxWindows) その5【サイザー】 http://mevius.5ch.net/test/read.cgi/tech/1270793556/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
404: デフォルトの名無しさん [sage] 2012/01/22(日) 22:48:49.88 wxWidgets2.9.3を使用しています。 下記リンクを参考にしました。 http://docs.wxwidgets.org/trunk/classwx_string.html#a55b90a900c24e9555760265170dc051c 文字列の中に特定の文字が複数回出た場合の検索を行いたいです。 .find()この中に、aとか、txtとか入れると、最初の桁数だけ検索できます。 たとえば、[t]と入力すると、文字列の中に4回でてきますが、一個目のものしか検索されません。 また、[猫]や[犬]などを入力すると、ループの処理に入らずすぐに終了します。 [あ] を入力すると、1回ループ処理に入っているますが、検索結果に0が帰ってきます。 コードは以下のようになっています。 //wxString gpath C:\Users\x\Desktop\practice\猫犬象aAbB猫猫猫犬犬あいう.txt wxString bb,cc,dd; size_t pos=0; if((pos=::gpath.find(("猫"),pos))!= wxString::npos) { wxMessageBox(_T("ループ 処理開始")); pos = ::gpath.find("猫",pos); cc.Printf(_T("%d"),pos); dd += cc; dd += "\n"; pos + 1; wxMessageBox(_T("ループ 判定処理に戻る")); } readpos -> SetValue(dd); wxMessageBox(_T("終了")); 文法?など、何が間違っているか教えてください。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/404
405: デフォルトの名無しさん [sage] 2012/01/22(日) 23:59:25.48 >>404 wxString gpath = L"C:\\Users\\x\\Desktop\\practice\\猫犬象aAbB猫猫猫犬犬あいう.txt"; wxString word = L"猫"; wxString result; size_t pos = 0; wxMessageBox(_T("ループ 処理開始")); while ((pos = gpath.find(word, pos)) != wxString::npos) { result += wxString::Format(L"%d\n", pos); pos += word.size(); wxMessageBox(_T("ループ 判定処理に戻る")); } OutputDebugStringW(result.c_str()); pos + 1はpos += 1のタイポだと好意的に解釈するにせよ、それでも 「何故1なのか」が理解できてないのはちょっとまずい。 ifとwhileの区別が付いてないのもかなり厳しい。 charとwchar_tの違いについてとか、 1. (pos = gpath.find(word, pos)) != wxString::npos 2. pos = gpath.find(word, pos) != wxString::npos は全く意味が違う、とか。 wxWidgets以前に、まず基本的な文法を押さえることから始めた方がいいと思う。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/405
406: デフォルトの名無しさん [sage] 2012/01/23(月) 01:28:04.42 >>404 レスありがとうございます。 >>ifとwhileの区別が付いてないのもかなり厳しい。 理由がわからないので、whileとifを書き直してテストしてました。 これは、コピペを修正するのを忘れていました。 ただ、最初はforで試したのですが、まったくだめでwhileやifなどを試してみました。 ただ理解してないのは間違いないです。 >>pos + 1はpos += 1のタイポだと好意的に解釈するにせよ 検索後、ひとつ右の文字から再度検索したかったので +1 にしたのでタイプミスではありませんでした。 +=でないとだめとのことなので、考え方が間違っているのですね。 見直します。 >>charとwchar_tの違いについてとか、 charがabとか半角文字で、wcar_tが2バイト文字が許されると漠然と認識しています。 ユニコードビルドなので、wxStringを使用した場合すべて2バイト文字が許されると認識していましたが、 なんか違うようですね。 wxString word = L"猫”; wxString::Format など、知らないものがでてきたので、これも調べます。 ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1270793556/406
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.031s