第一个问题:关于汉字转换为拼音的问题,到这里去看一下很详细的。http://expert.csdn.net/Expert/topic/1716/1716926.xml?temp=.6597406第二个问题:
这个就更简单了,只要对数据库执行SELECT语句SELECT text FROM table1 WHERE spell = ?前提是这个表中已建立了两个字段:拼音和相应的汉字字串。
要注意的是返回的结果可能不只一个。
这个就更简单了,只要对数据库执行SELECT语句SELECT text FROM table1 WHERE spell = ?前提是这个表中已建立了两个字段:拼音和相应的汉字字串。
要注意的是返回的结果可能不只一个。
//*****************************************************************************
//
// Function : F_Create_PYZT
//
// Purpose : 生成字符串的拼音字头
//
// Date : January 6, 2001
//
// Arguments : string chinese_string - 待提取拼音字头的字符串
// string phone_file - 拼音字库文件名
//
// Returns : string result - 字符串的拼音字头;发生错误,返回空串
//
// Written : 高宪锋
//
// Log :
//
// DATE WHO WHAT
// ------ ----- -------------------------------------
//
//*****************************************************************************
STRING string_read,return_string,mid_str
STRING char_min
LONG start_pos,mid_pos,end_pos
INT f_number
LONG line_len,file_lenf_number=FileOpen(phone_file,LineMode!,Read!,Shared!)IF f_number=-1 THEN RETURN ""END IFFileRead(f_number,string_read)
line_len=Len(string_read)+2file_len=FileLength(phone_file)
file_len=file_len/line_len+1end_pos=file_len
start_pos=0mid_str=Trim(chinese_string)IF Match(mid_str,"^[a-zA-Z]+$") THEN Return Upper(Left(mid_str,8))END IFDO WHILE Trim(mid_str)<>"" IF Asc(mid_str)<=160 THEN If (Left(mid_str,1)>='a' AND Left(mid_str,1)<='z') OR &
(Left(mid_str,1)>='A' AND Left(mid_str,1)<='Z') Then
return_string=return_string+Left(mid_str,1)
End If
return_string=Trim(return_string)
mid_str=Right(mid_str,Len(mid_str) - 1) ELSE char_min=Left(mid_str,2) DO WHILE (start_pos+1) < end_pos
mid_pos=Int((start_pos+end_pos)/2)
FileSeek(f_number,(mid_pos - 1)*line_len,FromBeginning!)
IF FileRead(f_number,string_read)=-1 THEN
EXIT
END IF
IF Left(string_read,2)<char_min THEN
start_pos=mid_pos
ELSEIF Left(string_read,2)=char_min THEN
start_pos=end_pos
ELSE
end_pos=mid_pos
END IF
LOOP mid_str=Right(mid_str,Len(mid_str) - 2)
return_string=return_string+Left(Trim(Right(string_read,line_len - 4)),1) END IF end_pos=file_len
start_pos=0LOOPIF Trim(mid_str)<>"" THEN RETURN ""END IFreturn_string=Trim(Upper(Left(return_string,8)))IF FileClose(f_number)=-1 THEN RETURN ""END IFRETURN return_string //返回拼音字头