curvirgoです。
Yoshiyuki Masutomi wrote:
> 取り合えず実行してみると、表示されたのは「,,,」と言うものでした。
> sourceの確認は明日にでも...(ちがう、もう今日だ)
一晩たってから再度試すと、今度は入力されている所は正常に表示されました。
が、入力されていないセルの部分が「,」というものが表示されてしまうので修正しました。
(昨晩の現象は何だったのやら...)
--- furigana_impl.cxx.orig 2006-09-28 07:33:38.440920000 +0900
+++ furigana_impl.cxx 2006-09-28 07:32:58.353276800 +0900
@@ -111,15 +111,18 @@
for(int i=0;i<aStrList.getLength();i++)
{
- for(int j=0;j<aStrList[i].getLength();j++)
- {
- OStringBuffer aStr = OStringBuffer(OUStringToOString(aStrList[i][j], RTL_TEXTENCODING_EUC_JP));
- aStr.append(static_cast< char >(0));
- const char *result = tagger->parse(aStr.getStr());
-
- // "strlen(result)-1" trims '\n' at the tail end
- res += OUString(result, strlen(result)-1, RTL_TEXTENCODING_EUC_JP);
- }
+ for(int j=0;j<aStrList[i].getLength();j++)
+ {
+ if( aStrList[i][j].getLength() != 0 )
+ {
+ OStringBuffer aStr = OStringBuffer(OUStringToOString(aStrList[i][j], RTL_TEXTENCODING_EUC_JP));
+ aStr.append(static_cast< char >(0));
+ const char *result = tagger->parse(aStr.getStr());
+
+ // "strlen(result)-1" trims '\n' at the tail end
+ res += OUString(result, strlen(result)-1, RTL_TEXTENCODING_EUC_JP);
+ }
+ }
}
delete tagger;
@@ -138,20 +141,23 @@
for(int i=0;i<aStrList.getLength();i++)
{
- for(int j=0;j<aStrList[i].getLength();j++)
- {
- OStringBuffer aStr = OStringBuffer(OUStringToOString(aStrList[i][j], RTL_TEXTENCODING_SHIFT_JIS));
- aStr.append(static_cast< char >(0));
-
- aConversionListSize = ImmGetConversionList(hKL, hIMC, aStr.getStr(), NULL, 0, GCL_REVERSECONVERSION);
- aConversionList = (LPCANDIDATELIST)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, aConversionListSize);
- ImmGetConversionList(hKL, hIMC, aStr.getStr(), aConversionList, aConversionListSize, GCL_REVERSECONVERSION);
-
- const char *result = (const char *)aConversionList + aConversionList->dwOffset[0];
- res += OUString(result, strlen(result), RTL_TEXTENCODING_SHIFT_JIS);
-
- HeapFree(GetProcessHeap(), 0, aConversionList);
- }
+ for(int j=0;j<aStrList[i].getLength();j++)
+ {
+ if( aStrList[i][j].getLength() != 0 )
+ {
+ OStringBuffer aStr = OStringBuffer(OUStringToOString(aStrList[i][j], RTL_TEXTENCODING_SHIFT_JIS));
+ aStr.append(static_cast< char >(0));
+
+ aConversionListSize = ImmGetConversionList(hKL, hIMC, aStr.getStr(), NULL, 0, GCL_REVERSECONVERSION);
+ aConversionList = (LPCANDIDATELIST)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, aConversionListSize);
+ ImmGetConversionList(hKL, hIMC, aStr.getStr(), aConversionList, aConversionListSize, GCL_REVERSECONVERSION);
+
+ const char *result = (const char *)aConversionList + aConversionList->dwOffset[0];
+ res += OUString(result, strlen(result), RTL_TEXTENCODING_SHIFT_JIS);
+
+ HeapFree(GetProcessHeap(), 0, aConversionList);
+ }
+ }
}
ImmReleaseContext(m_hWnd, hIMC);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]