|   |  
新規の関数 SetUnicodeIndexAutoConvert を次のマクロで試してみました。 
 
//-------------------------------------------------- 
loaddll "hmjre.dll"; 
#n = dllfunc("SetUnicodeIndexAutoConvert", 1); 
$seperator = "[,/\u2f]"; 
$line1 = "\uC0\uC1\uC2,\uD2\uD3\uD4";         //(1) 
$line2 = "\uC0\uC1\uC2あいabc/\uD2\uD3\uD4"; //(2) 
$line3 = "あいうabc\u2fあいうddd";            //(3) 
#a = dllfunc( "FindRegular", $seperator, $line1, 0 ); 
$part1a = wcsleftstr($line1, #a); 
$part1b = wcsmidstr($line1, #a + 1); 
message $part1a; 
message $part1b; 
#a = dllfunc( "FindRegular", $seperator, $line2, 0 ); 
$part2a = wcsleftstr($line2, #a); 
$part2b = wcsmidstr($line2, #a + 1); 
message $part2a; 
message $part2b; 
#a = dllfunc( "FindRegular", $seperator, $line3, 0 ); 
$part3a = wcsleftstr($line3, #a); 
$part3b = wcsmidstr($line3, #a + 1); 
message $part3a; 
message $part3b; 
freedll; 
endmacro; 
//-------------------------------------------------- 
 
(1) は成功しますが,(2),(3)はうまくいきません。 
次のマクロでも同じ結果になりました。使い方がおかしいのでしょうか。 
 
//-------------------------------------------------- 
loaddll "hmjre.dll"; 
$seperator = "[,/\u2f]"; 
$line1 = "\uC0\uC1\uC2,\uD2\uD3\uD4";         //(1) 
$line2 = "\uC0\uC1\uC2あいabc/\uD2\uD3\uD4"; //(2) 
$line3 = "あいうabc\u2fあいうddd";            //(3) 
#a = dllfunc( "FindRegular", $seperator, $line1, 0 ); 
#a = byteindex_to_charindex( $line1, #a ); 
$part1a = wcsleftstr($line1, #a); 
$part1b = wcsmidstr($line1, #a + 1); 
message $part1a; 
message $part1b; 
#a = dllfunc( "FindRegular", $seperator, $line2, 0 ); 
#a = byteindex_to_charindex( $line2, #a ); 
$part2a = wcsleftstr($line2, #a); 
$part2b = wcsmidstr($line2, #a + 1); 
message $part2a; 
message $part2b; 
#a = dllfunc( "FindRegular", $seperator, $line3, 0 ); 
#a = byteindex_to_charindex( $line3, #a ); 
$part3a = wcsleftstr($line3, #a); 
$part3b = wcsmidstr($line3, #a + 1); 
message $part3a; 
message $part3b; 
freedll; 
endmacro; 
//-------------------------------------------------- 
 
 なお,前のスレッドで h-tom さんに紹介していただいた"hmonig.dll"を使う 
と成功します。 
//-------------------------------------------------- 
loaddll "hmonig.dll"; 
$seperator = "[,//\u2f]"; 
$line1 = "\uC0\uC1\uC2,\uD2\uD3\uD4"; 
$line2 = "\uC0\uC1\uC2あいabc/\uD2\uD3\uD4"; 
$line3 = "あいうabc\u2fあいうddd"; 
#a = dllfuncw( "FindRegularW", $seperator, $line1, 0 ); 
$part1a = wcsleftstr($line1, #a); 
$part1b = wcsmidstr($line1, #a + 1); 
message $part1a; 
message $part1b; 
#a = dllfuncw( "FindRegularW", $seperator, $line2, 0 ); 
$part2a = wcsleftstr($line2, #a); 
$part2b = wcsmidstr($line2, #a + 1); 
message $part2a; 
message $part2b; 
#a = dllfuncw( "FindRegularW", $seperator, $line3, 0 ); 
$part3a = wcsleftstr($line3, #a); 
$part3b = wcsmidstr($line3, #a + 1); 
message $part3a; 
message $part3b; 
freedll; 
endmacro; 
//-------------------------------------------------- 
 
              山紫水明 
 
			 | 
		  
	 |