2011-04-22 15 views
0

リモートmanmagmentソフトウェアに取り組んでいます。リモートシステムから取得したデータを比較する必要があります。私たちはC++とWMIを使ってリモートシステムからデータを取得しています。データを処理するときに、リモートシステムから収集されたデータから特定の単語(私たちが持っている定言語と比較する)を比較する必要があるかもしれません。ホストシステムとターゲットシステムが英語の場合、文字列の比較に問題はありません。2つの言語文字列を比較

しかし、リモートコンピュータが英語以外のデータを返すと、私たちの比較は失敗します。私たちはローカリゼーションの実装を考え、可能なすべての言語文字列を私たちに提供しました。私たちのリストの文字列の1つがマシーンならば、進めることができます。しかし、それは非常に退屈なプロセスです。

C++またはWMIで2つの異なる言語の文字列を比較する方法はありますか?

任意のAPI ..?または回避策...?

助けてください!

+0

どのようなデータを比較していますか?この比較で何をしようとしていますか? –

+1

ローカライズされた文字列ではなく、何らかのエラーコードを送信するように送信システムを書き換えないでください。 – zabulus

+0

データが何であるかを尋ねてMichaelをエコーし​​ます。 ''しかし、リモートコンピュータが英語以外のデータを返すときは ''言語的あるいは符号化的に意味がありますか? – jonsca

答えて

0

ロケールまたは文化固有の方法で文字列を比較するためのc#機能があります。thisを参照してください。これは、 "ss"と "ess"の異なる表現を扱う2つのドイツ語文字列の比較例です同等。

これを行うには、ホストコンピュータの言語を知っている必要があります。ドイツ語で作業していない場合はssと 'ß'を等しく扱うべきか議論の余地があります。

しかし、この種の問題があるかどうかはわかりません。実際にあなたが受け取ったテキストを実際に翻訳したいと思っていますか?だからあなたのマシンでは、文字列のリストを持っています:

RED 
GREEN 
WHITE 

そして、あなたはREDかROUGEかROTのホストから受け取ることがあります。どのような場合でも、私はあなたに多くの選択肢があるとは思わないが、変換テーブルを保持する。

0

std::localeとそのさまざまな機能(operator())を使用する必要があります。通常のstd :: stringの代わりにstd :: wstringを使用して、UTFのような文字をサポートしたいと思います。

+0

ここでロケールはあまり役に立ちません。私はスウェーデンのロケールにいますが、とにかくこれを英語で書いてください。 –

関連する問題