現在、日本語の文字を英語の文字に変換するプログラムに取り組んでいます。 それはそれほどうまくいきません。最後の数日間、私は試してみようと努力してきましたが、それはおそらく何か小さなダムの問題ですが、私はそれを見つけることができません。私はこのすべてにかなり新しいので、どんな助けもありがとう。データセットに関連するC#の奇妙な問題
問題は、ローマ字を変換したいだけですが、コードを変更すると、「if」から「if」に変更すると、ひらがなとカタカナは変換されますが、ローマ字は変換されません。
string fromtype = "";
// Determines what type the character is currently
// && fromtype == "" added to avoid weird unexplainable errors...
if (CharacterTable.Select("Romaji = '" + character + "'") != null && fromtype == "")
{
fromtype = "Romaji";
}
else if (CharacterTable.Select("Hiragana = '" + character + "'") != null && fromtype == "")
{
fromtype = "Hiragana";
}
else if (CharacterTable.Select("Katakana = '" + character + "'") != null && fromtype == "")
{
fromtype = "Katakana";
}
私も自動的に文字が何であるかの種類を見つけると、ユーザはそれを選択する必要がありますようにラジオボタンでそれを行うにしようと、この機能を削除しようとしましたが、何とかほとんど同じことをやっているようです。 ..私はこの時点で完全に混乱しているので、どんな助けも大歓迎です。ここで
は完全なコードです:
public string CheckCharacter(string character, int RequestedCharType)
{
// RequestedCharType
// 1 = Romaji
// 2 = Hiragana
// 3 = Katakana
//-- Instantiate the data set and table
DataSet CharacterDatabase = new DataSet();
DataTable CharacterTable = CharacterDatabase.Tables.Add();
//-- Add columns to the data table
CharacterTable.Columns.Add("Romaji", typeof(string));
CharacterTable.Columns.Add("Hiragana", typeof(string));
CharacterTable.Columns.Add("Katakana", typeof(string));
//-- Add rows to the data table
CharacterTable.Rows.Add("a", "あ", "ア");
CharacterTable.Rows.Add("i", "い", "イ");
// Sets fromtype to the type the character(s) currently is/are
string fromtype = "";
// Determines what type the character is currently
// && fromtype == "" added to avoid weird unexplainable errors...
if (CharacterTable.Select("Romaji = '" + character + "'") != null && fromtype == "")
{
fromtype = "Romaji";
}
else if (CharacterTable.Select("Hiragana = '" + character + "'") != null && fromtype == "")
{
fromtype = "Hiragana";
}
else if (CharacterTable.Select("Katakana = '" + character + "'") != null && fromtype == "")
{
fromtype = "Katakana";
}
// generates a new variable to store the return in
DataRow[] filteredRows = CharacterTable.Select(fromtype + " = '" + character + "'");
// Return the converted character in the requested type
foreach (DataRow row in filteredRows)
{
if (RequestedCharType == 1)
{
return row["Romaji"].ToString();
}
if (RequestedCharType == 2)
{
return row["Hiragana"].ToString();
}
if (RequestedCharType == 3)
{
return row["Katakana"].ToString();
}
}
// if it couldn't find the character, return the original character
return character;
}
FWIWはローマ字と呼ばれ、「ローマ字」(数字はアラビア語ですが、うまくいけばローマ数字を使用する必要はありません)。 –