検索条件による絞込み – プログラミング – Home

通知
すべてクリア

検索条件による絞込み

固定ページ 1 / 2

ZES
 ZES
(@ZES)
ゲスト
結合: 16年前
投稿: 23
Topic starter  

お世話になっています。C++/CLI アプリケーションで
現在、CSVファイルから読み込んだファイルを表示する住所録を作成しています。

そこで、質問なのですが
カナによる絞込み検索を行いたいのですが、
現在考えているのは、コンボボックスで、ア行~ワ行を任意で選択
→検索ボタンを押す
→選択された行を表示
と考えているのですが、ア行を選択した場合どのようにア~オの
カナの人を表示させれば良いかわかりません。
よろしければ、どのようにすればよいのかご教授ください。


引用解決済
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

> ア行を選択した場合どのようにア~オの
> カナの人を表示させれば良いかわかりません。

基データとなるCSVには氏名のふりがなが入っているのならば、
なにがわからないのか見当がつきません。
問題は何ですか?


返信引用
ZES
 ZES
(@ZES)
ゲスト
結合: 16年前
投稿: 23
Topic starter  

ふりがなは入っています。
わからないのは、そのア~オから始まる人のデータを取得する方法です


返信引用
しま
 しま
(@しま)
ゲスト
結合: 18年前
投稿: 123
 

>ふりがなは入っています。
>わからないのは、そのア~オから始まる人のデータを取得する方法です

では
1.ふりがな中にアが含んだものがあるかどうか調べる方法はお判りですか?
2.ふりがな中にアイウエオのどれかがあることを調べる方法はお判りですか?


返信引用
ZES
 ZES
(@ZES)
ゲスト
結合: 16年前
投稿: 23
Topic starter  

Cの文法でならばわかるのですが、、正直今の私では答えはNOになるかと思います。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

> わからないのは、そのア~オから始まる人のデータを取得する方法です

先頭の1文字がア~オのいずれかであればいい。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

> Cの文法でならばわかるのですが

ではそれを示してください。


返信引用
ZES
 ZES
(@ZES)
ゲスト
結合: 16年前
投稿: 23
Topic starter  

if((strcmp(add[i].if((strcmp(add[i].kana,ア) > 0)
            && (strcmp(add[i].kana,カ) < 0))

以前にCで作成したときの判別方法です。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

それが正しく動くならそれつかえばいいじゃない。
なにが問題なんですか?


返信引用
ZES
 ZES
(@ZES)
ゲスト
結合: 16年前
投稿: 23
Topic starter  

error C2664: 'strcmp' : 1 番目の引数を 'System::String ^' から 'const char *'
に変換できません。(新しい機能 ; ヘルプを参照)使用可能なユーザー定義された変換演
算子がない、またはマネージ型をアンマネージ型に変換できません。

このようなエラーが出てしまいます。。。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

いや、そじゃなくてぇ。

Cでやってることが理解できているなら、
それと等価なC++/CLIコードに置き換えればいいでしょう?

using namespace System;

int main() {
array<String^>^ names =
{ Lアイダ, Lイトウ, Lカガワ, Lキタジマ, Lオガワ };
for each ( String^ name in names ) {
if ( name[0] >= L'ア' && name[0] < L'カ' ) {
Console::WriteLine(name);
}
}
}


返信引用
ZES
 ZES
(@ZES)
ゲスト
結合: 16年前
投稿: 23
Topic starter  

>επιστημηさん

ありがとうございます。
説明していただいても、まだ少し???という状況なのですが、
ここまで説明して頂いたので、後は自分で勉強してなんとなると思います!
ありがとうございます!!

#まだまだ未熟者なので等価なC++/CLIコードに置き換えると言うことが
#επιστημηさんのようにはいきませんでした。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

> 後は自分で勉強してなんとなると思います!

てか、マニュアル読みました?
http://msdn.microsoft.com/ja-jp/library/system.string.aspx
使えそうなメソッドが見つかりませんでしたか?

using namespace System;

int main() {
array<String^>^ names = { Lアイダ, Lイトウ, Lカガワ, Lキタジマ, Lオ
ガワ };
array<Char>^ a = { L'ア', L'イ', L'ウ', L'エ', L'オ'};
for each ( String^ name in names ) {
if ( name->IndexOfAny(a) == 0 ) {
Console::WriteLine(name);
}
}
}


返信引用
ZES
 ZES
(@ZES)
ゲスト
結合: 16年前
投稿: 23
Topic starter  

>てか、マニュアル読みました?

はい。。
一応読んではみたのですが、恥ずかしながら見つけることはできませんでした。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

> 見つけることはできませんでした。

読みが足りない。strcmp と(機能的に)まんま同じもんがあります。

using namespace System;

int main() {
array<String^>^ names =
{ Lアイダ, Lイトウ, Lカガワ, Lキタジマ, Lオガワ };
for each ( String^ name in names ) {
if ( String::Compare(name,Lア) > 0 && String::Compare(name,Lカ) < 0 ) {
Console::WriteLine(name);
}
}
}


返信引用
固定ページ 1 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました