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]

メールによる返信