私はC#で流暢ではない、と私はまた、このフォーラムに新しいブランドです。しかし、あなたが翻訳テーブルを照会して翻訳テキストを返す関数で投稿されたコードreneを補足するなら、あなたはこれを持っているでしょう(私の擬似コード屠殺を許してください - 私はVBに非常に堪能です。ネット、つもり間もなくC#構文を学ぶ):次に
Private String TranslatedWord(ByVal SelectedWord String)
{
//Use ADO and SQL to retrieve the Translation(s) associated with the submitted Word
// A string SQL Statement (the GROUP ON is in case there are multiple instances of the same word, with different translations (synonyms). THis SQL Should return a a single record for each possible translation of the submitted word (more than one result possible):
Dim SQL as String = _
"SELECT tr.ID, tr.Translate " & _
"FROM MyTranslationTable AS tr " & _
"WHERE tr.Word LIKE @Word"
//Since I could be ALL DAY struggling to write the C# code for this, I will just step through it in "pseudocode":
// 1. Execute the SQL using ADO.Net, set up the @Word Param in your command, and return a sqlDataReader
// 2. Iterate through the returned records, and append the Translation results to a System.Text.Stringbuilder object. Delimit each returned value with a semi-colon (or your delimiter of choice).
// Return the Stringbuilder.ToString property as the result of this function;
}
ルネのコードの最後の部分を変更する(「//結果を表示」)としては、適切な私の恐ろしいC#の問題を補正(次の! ):
private void richTextBox1_MouseMove(object sender, MouseEventArgs e)
{
// whitespace definition
char[] whitespace = new char[] { ' ', '\r', '\n', '\t' };
int charPosition = this.richTextBox1.GetCharIndexFromPosition(e.Location);
string fullText = this.richTextBox1.Text;
// if we are on whitespace, exit
if (whitespace.Contains(fullText[charPosition]))
{
return;
}
// find a whitespace towards the start of the text
int firstWhiteSpace = charPosition;
while (firstWhiteSpace > 0
&& firstWhiteSpace < fullText.Length
&& !whitespace.Contains(fullText[firstWhiteSpace]))
{
firstWhiteSpace--;
}
if (firstWhiteSpace!=0)
firstWhiteSpace++;
// find the next whitespace
int lastWhiteSpace = fullText.IndexOfAny(whitespace, charPosition);
if (lastWhiteSpace == -1)
lastWhiteSpace = fullText.Length;
// substring the word out of the flat text
string word = fullText.Substring(
firstWhiteSpace,
lastWhiteSpace - firstWhiteSpace);
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//My CHanges start here, and will likely require
// some tweaking . . .
//Use the function I have poorly described above to retreive the
//translation(s) for the current Word:
string TRANSLATION = TranslatedWord(word);
// show the result
//Since there are so many minor but important differences between C# and VB, I am not going to attempt
//to account for them. Essentially, display the translated word instead of the word over which the mouse is hovering:
label1.Text = String.Format("pos:{0} fsp:{1}, lsp:{2}, len:{3}, word:{4}",
charPosition,
firstWhiteSpace,
lastWhiteSpace,
fullText.Length, TRANSLATION);
}
もしそれが役に立つとすれば、私はバストアウトすることができますこのvb.netのコードはかなり早いですが、それが役に立たない限り、私はそれをやるつもりはありませんでした。
希望します。私はC#を学ぶ上で少し働かなければならないし、このフォーラムでの投稿の私の理解を向上させる必要があるだろう!コードを正しく見えるようにすることは難題です。 。 。
ご回答いただきありがとうございます。これは言葉を得る。しかし、どうやって相対的なIDと変換を行うことができますか?あなたの回答に感謝します。 – ARZ