{"id":255,"date":"2010-09-08T21:46:10","date_gmt":"2010-09-09T04:46:10","guid":{"rendered":"http:\/\/192.168.1.2\/wordpress\/?p=255"},"modified":"2013-03-13T17:30:59","modified_gmt":"2013-03-14T00:30:59","slug":"vocabulary-database","status":"publish","type":"post","link":"http:\/\/cywang.no-ip.org\/wordpress\/?p=255","title":{"rendered":"Vocabulary Database"},"content":{"rendered":"<p>\n\tFeatures:\n<\/p>\n<ol>\n<li>\n\t\tImport vocabularies from <a href=\"http:\/\/www.dreye.com\">Dr.eye<\/a> and <a href=\"http:\/\/www.merriam-webster.com\">Merriam-Webster<\/a>&nbsp;online dictionary\n\t<\/li>\n<li>\n\t\tInstall KK phonics font in your system\n\t<\/li>\n<li>\n\t\tSupport pronunciation&nbsp;through internet\n\t<\/li>\n<\/ol>\n<p>\n\t&nbsp;\n<\/p>\n<p><!--more--><\/p>\n<p>\n\t<a href=\"http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2013\/03\/GRE.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"GRE\" class=\"alignnone size-large wp-image-256\" height=\"385\" src=\"http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2013\/03\/GRE-1024x676.jpg\" width=\"584\" srcset=\"http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2013\/03\/GRE-1024x676.jpg 1024w, http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2013\/03\/GRE-300x198.jpg 300w, http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2013\/03\/GRE-454x300.jpg 454w, http:\/\/cywang.no-ip.org\/wordpress\/wp-content\/uploads\/2013\/03\/GRE.jpg 1207w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a>\n<\/p>\n<pre class=\"brush:cpp;\">\r\n\/\/---------------------------------------------------------------------------\r\n\r\n#include &lt;vcl.h&gt;\r\n#include &lt;shlwapi.h&gt;\r\n#include &lt;GdiPlus.h&gt;\r\n#pragma comment( lib, &quot;shlwapi.lib&quot;)\r\n#pragma comment( lib, &quot;gdiplus.lib&quot;)\r\n\r\nTForm1 *Form1;\r\nbool bChangeFontSize = false;\r\n\/\/---------------------------------------------------------------------------\r\nAnsiString url=&quot;http:\/\/www.dreye.com\/axis\/ddict.jsp?w=&quot;;\r\nAnsiString search_word,actual_word,multi_word;\r\nAnsiString play_path;\r\n\r\nAnsiString phonetic[67];\r\nint batch_flag=0;\r\nAnsiString *batch_vocabulary;\r\nint vocabulary_count=0;\r\nint vocabulary_index=0;\r\n\r\nVocabulary *words;\r\nvector&lt;Vocabulary&gt; vector_words;\r\n\r\nAnsiString SearchHistory;\r\nint inc = 1; \/\/multiple meanings\r\n\r\nbool bOpenSite = false;&nbsp;\r\n\r\nAnsiString PreStr[30];\r\nAnsiString SelVoc[200];\r\nint preNum = 18;\r\nint SelNum = 0;\r\nint currentPos = 0;\r\n\r\nAnsiString *BatchVoc;\r\nint batch_num = 0;\r\nint iBatchCurrentPos = 0;\r\nbool bBatchAutoInsert = false;\r\nbool bBatchMultiVoc = false;&nbsp;&nbsp;&nbsp;&nbsp; \r\n\r\nAnsiString *FangVoc;\r\nint Fang_num = 0;\r\nint iFangCurrentPos = 0;\r\nbool bFangSemiAutoUpdate = false;&nbsp; \r\nbool bFangAutoUpdate = false;&nbsp;&nbsp;&nbsp; \r\nbool bNewFang = false;&nbsp;&nbsp;&nbsp; \r\n\r\nAnsiString OriginalList;\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::SetFontStyle(TRichEdit *RichEdit,int start, int length)\r\n{\r\n&nbsp;int r;\r\n&nbsp;AnsiString S;\r\n&nbsp;S=RichEdit-&gt;Text;\r\n&nbsp;TTextAttributes&nbsp;&nbsp; *AText&nbsp;&nbsp; =&nbsp;&nbsp; new&nbsp;&nbsp; TTextAttributes(RichEdit,atSelected);\r\n&nbsp;RichEdit-&gt;SelStart = start;\r\n&nbsp;RichEdit-&gt;SelLength = length;\r\n&nbsp;AText-&gt;Name&nbsp;&nbsp; =&nbsp;&nbsp; &quot;Be Young&#39;s Phonetic Symbol&quot;;\r\n&nbsp;if(bChangeFontSize)\r\n&nbsp;&nbsp;AText-&gt;Size&nbsp;&nbsp; =&nbsp;&nbsp; iFontSize;\r\n&nbsp;else\r\n&nbsp;&nbsp;AText-&gt;Size&nbsp;&nbsp; =&nbsp;&nbsp; 12;\r\n}\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::GetData(int MSearch)\r\n{\r\n&nbsp;if(Edt_Voc-&gt;Text != &quot;&quot;)\r\n&nbsp;{\r\n&nbsp;&nbsp;if(MSearch == 0)\r\n&nbsp;&nbsp;&nbsp;Memo_Dreye-&gt;Clear();\r\n\r\n&nbsp;&nbsp;\r\n&nbsp;&nbsp;AnsiString search_word=Edt_Voc-&gt;Text.LowerCase();\r\n&nbsp;&nbsp;AnsiString body,final_search_word;\r\n&nbsp;&nbsp;if(search_word.Pos(&quot; &quot;)&gt;0)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;AnsiString tmp = search_word;\r\n&nbsp;&nbsp;&nbsp;final_search_word = StringReplace(tmp.c_str(), &quot; &quot;, &quot;%20&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).c_str();\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;final_search_word = search_word;\r\n&nbsp;&nbsp;try\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;body=IdHTTP1-&gt;Get(url+final_search_word);\r\n&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;catch(EIdHTTPProtocolException &amp;e)\r\n&nbsp;&nbsp;{;}\r\n\r\n&nbsp;&nbsp;words[0].explain=body.c_str();\r\n&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;AnsiString del_to_mp3_path=&quot;param name=\\&quot;FileName\\&quot; value=\\&quot;&quot;;\r\n&nbsp;&nbsp;words[0].explain.erase(0,words[0].explain.find(del_to_mp3_path.c_str())+del_to_mp3_path.Length());\r\n&nbsp;&nbsp;play_path=words[0].explain.substr(0,words[0].explain.find(&quot;\\&quot;&gt;&quot;)).c_str();\r\n\r\n&nbsp;&nbsp;AnsiString title = &quot;&lt;div class=ptitle&gt;&quot;;\r\n&nbsp;&nbsp;if(words[0].explain.find(title.c_str())!=string::npos)\r\n&nbsp;&nbsp;&nbsp;words[0].explain.erase(0,words[0].explain.find(title.c_str())+title.Length());\r\n\r\n&nbsp;&nbsp;AnsiString play_str=&quot;onclick=\\&quot;PlayAU()\\&quot;&gt;&quot;;\r\n&nbsp;&nbsp;if(words[0].explain.find(play_str.c_str())!=string::npos)\r\n&nbsp;&nbsp;&nbsp;words[0].explain.erase(0,words[0].explain.find(play_str.c_str())+play_str.Length());\r\n\r\n&nbsp;&nbsp;actual_word=words[0].explain.substr(0,words[0].explain.find(&quot;&lt;&quot;)).c_str();\r\n&nbsp;&nbsp;actual_word=actual_word.Trim();\r\n\r\n\r\n&nbsp;&nbsp;multi_word=actual_word;\r\n\r\n&nbsp;&nbsp;AnsiString sup_start=&quot;&lt;sup&gt;&quot;;\r\n&nbsp;&nbsp;AnsiString sup_end=&quot;&lt;\/sup&gt;&quot;;\r\n&nbsp;&nbsp;if(words[0].explain.find(sup_start.c_str())!=string::npos)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;AnsiString tmp=words[0].explain.substr(words[0].explain.find(sup_start.c_str()),words[0].explain.find(sup_end.c_str())).c_str();\r\n&nbsp;&nbsp;&nbsp;tmp=StringReplace(tmp.c_str(), sup_start.c_str(), &quot;@&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).c_str();\r\n&nbsp;&nbsp;&nbsp;tmp=tmp.SubString(0,tmp.Pos(&quot;&lt;&quot;)-1);\r\n&nbsp;&nbsp;&nbsp;multi_word=actual_word+tmp;\r\n&nbsp;&nbsp;&nbsp;Edt_Voc-&gt;Text=multi_word;\r\n&nbsp;&nbsp;&nbsp;Panel4-&gt;Visible = true;\r\n&nbsp;&nbsp;&nbsp;bBatchMultiVoc = true; \r\n&nbsp;&nbsp;&nbsp;if(!bFangAutoUpdate)\r\n&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(&quot;Multiple Meanings&quot;);\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;else\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;Panel4-&gt;Visible = false;\r\n&nbsp;&nbsp;&nbsp;bBatchMultiVoc = false;\r\n&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;if(actual_word.LowerCase()!=search_word.LowerCase())\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;if(final_search_word.Pos(&quot;@&quot;)&lt;1) \r\n&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;bBatchMultiVoc = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(!bFangAutoUpdate)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(&quot;\u627e\u4e0d\u5230\uff1a&quot;+search_word+&quot;. \u76f8\u4f3c\u5b57\uff1a&quot;+actual_word);\r\n&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;if(inc&gt;1 &amp;&amp; StrToInt(multi_word.SubString(multi_word.Pos(&quot;@&quot;)+1,1).c_str())==1 )l\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;Btn_Next-&gt;Enabled = false;\r\n&nbsp;&nbsp;&nbsp;Edt_Voc-&gt;Text = Edt_Voc-&gt;Text.SubString(0,Edt_Voc-&gt;Text.Pos(&quot;@&quot;)-1);\r\n&nbsp;&nbsp;&nbsp;inc--;\r\n&nbsp;&nbsp;&nbsp;return;\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;Btn_Next-&gt;Enabled = true;\r\n\r\n&nbsp;&nbsp;if(inc&lt;=0)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;inc = 1;\r\n&nbsp;&nbsp;&nbsp;return;\r\n&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;words[0].explain.erase(0,words[0].explain.find(&quot;KK: [&quot;)+6);\r\n\r\n\r\n&nbsp;&nbsp;words[0].explain.insert(0,&quot;[&quot;);\r\n&nbsp;&nbsp;if(words[0].explain.find(&quot;&lt;div id=\\&quot;rad\\&quot;&gt;&quot;)!=string::npos)\r\n&nbsp;&nbsp;&nbsp;words[0].explain.erase(words[0].explain.find(\"<div id=\\\"rad\\\">\"),words[0].explain.length());\r\n\r\n&nbsp;&nbsp;AnsiString image_src;\r\n&nbsp;&nbsp;image_src=&quot;&lt;img border=0 align=absbottom src=\\&quot;http:\/\/www.dreye.com\/tw\/dict\/IMAGES\/DIC\/PN\/&quot;;\r\n&nbsp;&nbsp;if( words[0].explain.find(image_src.c_str())!=string::npos)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;string tmp_kk=words[0].explain.substr(0,words[0].explain.find(&quot;DJ: [&quot;)-4); \r\n\r\n&nbsp;&nbsp;&nbsp;\/\/ShowMessage(words[0].explain.c_str());\r\n&nbsp;&nbsp;&nbsp;AnsiString kk_str;\r\n&nbsp;&nbsp;&nbsp;kk_str=StringReplace(tmp_kk.c_str(), image_src, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;kk_str=StringReplace(kk_str, &quot;.GIF\\&quot;&gt;&quot;, &quot;][&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;kk_str=StringReplace(kk_str, &quot;[]&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;kk_str=StringReplace(kk_str, &quot;&lt;br&gt;&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;kk_str=kk_str.Trim();\r\n&nbsp;&nbsp;&nbsp;if( words[0].explain.find(&quot;img border=0 align=absbottom src=\\&quot;http:\/\/www.dreye.com\/tw\/dict\/IMAGES\/DIC\/PN\/&quot;)!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;kk_str=StringReplace(kk_str.c_str(), &quot;img border=0 align=absbottom src=\\&quot;http:\/\/www.dreye.com\/tw\/dict\/IMAGES\/DIC\/PN\/&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;kk_str = StringReplace(kk_str.c_str(), &quot;\\n&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str(); \r\n&nbsp;&nbsp;&nbsp;kk_str = StringReplace(kk_str.c_str(), &quot;[]&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;words[0].kk=kk_str;\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;else\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;words[0].kk = &quot;&quot;;\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;\/\/words[0].word=search_word;\r\n&nbsp;&nbsp;words[0].word=actual_word;\r\n&nbsp;&nbsp;words[0].explain.erase(0,words[0].explain.find(&quot;&lt;\/div&gt;&quot;)+6); \r\n\r\n&nbsp;&nbsp;string del_str[12];\r\n&nbsp;&nbsp;del_str[0]=&quot;&lt;\/span&gt;&lt;\/div&gt;&quot;;\r\n&nbsp;&nbsp;del_str[1]=&quot;&lt;div class=peng&gt;&quot;;\r\n&nbsp;&nbsp;del_str[2]=&quot;&lt;div class=pchi&gt;&quot;;\r\n&nbsp;&nbsp;del_str[3]=&quot;&lt;ol&gt;&quot;;\r\n&nbsp;&nbsp;del_str[4]=&quot;&lt;\/ol&gt;&quot;;\r\n&nbsp;&nbsp;del_str[5]=&quot;&lt;li&gt;&quot;;\r\n&nbsp;&nbsp;del_str[6]=&quot;&lt;\/li&gt;&quot;;\r\n&nbsp;&nbsp;del_str[7]=&quot;&lt;div class=pcixin&gt;&quot;;\r\n&nbsp;&nbsp;del_str[8]=&quot;&lt;\/div&gt;&quot;;\r\n&nbsp;&nbsp;del_str[9]=&quot;\u3002&lt;div class=pexplain&gt;&quot;;\r\n&nbsp;&nbsp;del_str[10]=&quot;&lt;div class=\\&quot;break\\&quot;&gt;&quot;;\r\n&nbsp;&nbsp;del_str[11]=&quot;&lt;div class=pexplain&gt;&quot;;\r\n&nbsp;&nbsp;while(words[0].explain.find(del_str[1])!=string::npos)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;words[0].explain.erase(words[0].explain.find(del_str[1]),words[0].explain.find(del_str[0])-words[0].explain.find(del_str[1]));\r\n&nbsp;&nbsp;&nbsp;words[0].explain.erase(words[0].explain.find(del_str[0]),del_str[0].length());\r\n&nbsp;&nbsp;&nbsp;words[0].explain.erase(words[0].explain.find(del_str[2]),words[0].explain.find(del_str[0])-words[0].explain.find(del_str[2]));\r\n&nbsp;&nbsp;&nbsp;words[0].explain.erase(words[0].explain.find(del_str[0]),del_str[0].length());\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;if(words[0].explain.find(del_str[10])!=string::npos)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;words[0].explain.erase(words[0].explain.find(del_str[10]),words[0].explain.length());\r\n&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;for(int i=3;i&lt;=6;i++)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;while(words[0].explain.find(del_str[i])!=string::npos)\r\n&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[0].explain.erase(words[0].explain.find(del_str[i]),del_str[i].length());\r\n&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;words[0].explain=StringReplace(words[0].explain.c_str(), &quot;\\n&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str(); \r\n&nbsp;&nbsp;words[0].explain=StringReplace(words[0].explain.c_str(), del_str[7].c_str(), &quot;&lt;div class=pcixin&gt;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;words[0].explain=StringReplace(words[0].explain.c_str(), del_str[8].c_str(), &quot;\u3002&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;words[0].explain=StringReplace(words[0].explain.c_str(), del_str[9].c_str(), &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;words[0].explain=StringReplace(words[0].explain.c_str(), del_str[7].c_str(), &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;words[0].explain=StringReplace(words[0].explain.c_str(), del_str[11].c_str(), &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n\r\n&nbsp;&nbsp;AnsiString cixing[2];\r\n&nbsp;&nbsp;cixing[0]=&quot;a.&quot;;\r\n&nbsp;&nbsp;cixing[1]=&quot;ad.&quot;;\r\n&nbsp;&nbsp;words[0].explain=StringReplace(words[0].explain.c_str(), cixing[0].c_str(), &quot;adj.&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;words[0].explain=StringReplace(words[0].explain.c_str(), cixing[1].c_str(), &quot;adv.&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n\r\n\r\n&nbsp;&nbsp;if(words[0].explain.find(&quot;&lt;br&gt;&quot;)!=string::npos)\r\n&nbsp;&nbsp;&nbsp;words[0].explain.erase(words[0].explain.find(\"<br>\"),words[0].explain.length());\r\n\r\n&nbsp;&nbsp;Memo_Dreye-&gt;Lines-&gt;Add(words[0].explain.c_str());\r\n\r\n&nbsp;&nbsp;\/\/set phonetic\r\n&nbsp;&nbsp;SetPhoneticTable();\r\n\r\n&nbsp;&nbsp;int kk_count=0;\r\n&nbsp;&nbsp;AnsiString phonetic_str=&quot;&quot;;\r\n&nbsp;&nbsp;while(words[0].kk.Pos(\"]&quot;)&gt;0)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;phonetic_str+=phonetic[words[0].kk.SubString(2,3).ToInt()];\r\n&nbsp;&nbsp;&nbsp;words[0].kk.Delete(1,5);\r\n&nbsp;&nbsp;&nbsp;kk_count++;\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;Edt_KK-&gt;Text = &quot;[\" + phonetic_str + \"]&quot;;\r\n\r\n&nbsp;&nbsp;IdHTTP1-&gt;Disconnect();\r\n\r\n&nbsp;&nbsp;if(!CheckBox_EE-&gt;Checked)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;\/\/ Get Webster\r\n&nbsp;&nbsp;&nbsp;AnsiString web_voc = Edt_Voc-&gt;Text;\r\n&nbsp;&nbsp;&nbsp;if(web_voc.Pos(&quot;@&quot;)&gt;0)\r\n&nbsp;&nbsp;&nbsp;&nbsp;web_voc = web_voc.SubString(1,web_voc.Pos(&quot;@&quot;)-1);\r\n&nbsp;&nbsp;&nbsp;AnsiString wikiurl=&quot;http:\/\/kaoshi.wobuxihuan.org\/w\/index.php?title=&quot;+web_voc+&quot;&amp;amp;action=edit&amp;amp;section=1&quot;;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try\r\n&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;AnsiString webster_body=IdHTTP2-&gt;Get(wikiurl);\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[0].webster = webster_body.c_str();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;AnsiString pos_tmp = words[0].webster.c_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(pos_tmp.Pos(&quot;Webster&quot;)&gt;0)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[0].webster.erase(0,words[0].webster.find(&quot;Webster Collegiate &lt;\/span&gt;&lt;\/h3&gt;&quot;)+31);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[0].webster.erase(words[0].webster.find(\"<a name=\\\".E8.AE.B0.E5.BF.86\"),words[0].webster.find(\"<\/html>\")-words[0].webster.find(&quot;&lt;a name=\\&quot;.E8.AE.B0.E5.BF.86&quot;)+7);\r\n\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AnsiString web_temp = words[0].webster.c_str();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(web_temp.Pos(&quot;&lt;&quot;)&gt;0)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int start_pos = web_temp.Pos(&quot;&lt;&quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int end_pos = web_temp.Pos(&quot;&gt;&quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;web_temp = web_temp.Delete(start_pos,end_pos - start_pos +1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(web_temp.Pos(&quot;&amp;nbsp;&quot;)&gt;0)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int start_pos = web_temp.Pos(&quot;&amp;nbsp;&quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;web_temp = web_temp.Delete(start_pos,6);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(web_temp.Pos(&quot;&amp;lt;&quot;)&gt;0)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int start_pos = web_temp.Pos(&quot;&amp;lt;&quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;web_temp = web_temp.Delete(start_pos,4);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(web_temp.Pos(&quot;[sup]&quot;)&gt;0)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int start_pos = web_temp.Pos(&quot;[sup]&quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;web_temp = web_temp.Delete(start_pos,5);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(web_temp.Pos(&quot;[\/sup]&quot;)&gt;0)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int start_pos = web_temp.Pos(&quot;[\/sup]&quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;web_temp = web_temp.Delete(start_pos,6);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RichEdit1-&gt;Text = web_temp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Memo_Webster-&gt;Text = RichEdit1-&gt;Text;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;catch(EIdHTTPProtocolException &amp;e)\r\n&nbsp;&nbsp;&nbsp;{;}\r\n\r\n\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;if(CheckBox_Root-&gt;Checked)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;AnsiString actual_word2;\r\n&nbsp;&nbsp;&nbsp;bool isPrestr = false;\r\n&nbsp;&nbsp;&nbsp;int&nbsp; prePos=19;\r\n&nbsp;&nbsp;&nbsp;AnsiString strRoot;\r\n&nbsp;&nbsp;&nbsp;for(int x=0;x&lt;preNum;x++)\r\n&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/PreStr\r\n&nbsp;&nbsp;&nbsp;&nbsp;if( Edt_Voc-&gt;Text.SubString(1,PreStr[x].Length()) ==&nbsp; PreStr[x])\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isPrestr = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prePos = x;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;if(isPrestr)\r\n&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;strRoot = Edt_Voc-&gt;Text.SubString(PreStr[prePos].Length() + 1,Edt_Voc->Text.Length()-PreStr[prePos].Length() + 1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;try\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;body=IdHTTP1-&gt;Get(url+strRoot);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;catch(EIdHTTPProtocolException &amp;e)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain=body.c_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;&nbsp;AnsiString del_to_mp3_path=&quot;param name=\\&quot;FileName\\&quot; value=\\&quot;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.erase(0,words[1].explain.find(del_to_mp3_path.c_str())+del_to_mp3_path.Length());\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;AnsiString title = &quot;&lt;div class=ptitle&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(words[1].explain.find(title.c_str())!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.erase(0,words[1].explain.find(title.c_str())+title.Length());\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;AnsiString play_str=&quot;onclick=\\&quot;PlayAU()\\&quot;&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(words[1].explain.find(play_str.c_str())!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.erase(0,words[1].explain.find(play_str.c_str())+play_str.Length());\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;actual_word2=words[1].explain.substr(0,words[1].explain.find(&quot;&lt;&quot;)).c_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;actual_word2=actual_word2.Trim();\r\n\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;multi_word=actual_word2;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;AnsiString sup_start=&quot;&lt;sup&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;AnsiString sup_end=&quot;&lt;\/sup&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(words[1].explain.find(sup_start.c_str())!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AnsiString tmp=words[1].explain.substr(words[1].explain.find(sup_start.c_str()),words[1].explain.find(sup_end.c_str())).c_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp=StringReplace(tmp.c_str(), sup_start.c_str(), &quot;@&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).c_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp=tmp.SubString(0,tmp.Pos(&quot;&lt;&quot;)-1);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;multi_word=actual_word2+tmp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Memo_Memo-&gt;Lines-&gt;Add(strRoot + &quot; &quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!bFangAutoUpdate)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(&quot;Multiple Meanings&quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool notFound = false;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(actual_word2.LowerCase()!=strRoot.LowerCase())\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(final_search_word.Pos(&quot;@&quot;)&lt;1) \r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;notFound = true;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!notFound)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.erase(0,words[1].explain.find(&quot;KK: [&quot;)+6);\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.insert(0,&quot;[&quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(words[1].explain.find(&quot;&lt;div id=\\&quot;rad\\&quot;&gt;&quot;)!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.erase(words[1].explain.find(\"<div id=\\\"rad\\\">\"),words[1].explain.length());\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AnsiString image_src;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image_src=&quot;&lt;img border=0 align=absbottom src=\\&quot;http:\/\/www.dreye.com\/tw\/dict\/IMAGES\/DIC\/PN\/&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( words[1].explain.find(image_src.c_str())!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string tmp_kk=words[1].explain.substr(0,words[1].explain.find(&quot;DJ: [&quot;)-4); \r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AnsiString kk_str;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str=StringReplace(tmp_kk.c_str(), image_src, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str=StringReplace(kk_str, &quot;.GIF\\&quot;&gt;&quot;, &quot;][&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str=StringReplace(kk_str, &quot;[]&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str=StringReplace(kk_str, &quot;&lt;br&gt;&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str=kk_str.Trim();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( words[1].explain.find(&quot;img border=0 align=absbottom src=\\&quot;http:\/\/www.dreye.com\/tw\/dict\/IMAGES\/DIC\/PN\/&quot;)!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str=StringReplace(kk_str.c_str(), &quot;img border=0 align=absbottom src=\\&quot;http:\/\/www.dreye.com\/tw\/dict\/IMAGES\/DIC\/PN\/&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str = StringReplace(kk_str.c_str(), &quot;\\n&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str(); \r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str = StringReplace(kk_str.c_str(), &quot;[]&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str(); \r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].kk=kk_str;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].kk = &quot;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/words[1].word=search_word;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].word=actual_word2;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.erase(0,words[1].explain.find(&quot;&lt;\/div&gt;&quot;)+6); \r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string del_str[12];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del_str[0]=&quot;&lt;\/span&gt;&lt;\/div&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del_str[1]=&quot;&lt;div class=peng&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del_str[2]=&quot;&lt;div class=pchi&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del_str[3]=&quot;&lt;ol&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del_str[4]=&quot;&lt;\/ol&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del_str[5]=&quot;&lt;li&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del_str[6]=&quot;&lt;\/li&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del_str[7]=&quot;&lt;div class=pcixin&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del_str[8]=&quot;&lt;\/div&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del_str[9]=&quot;\u3002&lt;div class=pexplain&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del_str[10]=&quot;&lt;div class=\\&quot;break\\&quot;&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;del_str[11]=&quot;&lt;div class=pexplain&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(words[1].explain.find(del_str[1])!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.erase(words[1].explain.find(del_str[1]),words[1].explain.find(del_str[0])-words[1].explain.find(del_str[1]));\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.erase(words[1].explain.find(del_str[0]),del_str[0].length());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.erase(words[1].explain.find(del_str[2]),words[1].explain.find(del_str[0])-words[1].explain.find(del_str[2]));\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.erase(words[1].explain.find(del_str[0]),del_str[0].length());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(words[1].explain.find(del_str[10])!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.erase(words[1].explain.find(del_str[10]),words[1].explain.length());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i=3;i&lt;=6;i++)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(words[1].explain.find(del_str[i])!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.erase(words[1].explain.find(del_str[i]),del_str[i].length());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain=StringReplace(words[1].explain.c_str(), &quot;\\n&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain=StringReplace(words[1].explain.c_str(), del_str[7].c_str(), &quot;&lt;div class=pcixin&gt;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain=StringReplace(words[1].explain.c_str(), del_str[8].c_str(), &quot;\u3002&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain=StringReplace(words[1].explain.c_str(), del_str[9].c_str(), &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain=StringReplace(words[1].explain.c_str(), del_str[7].c_str(), &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain=StringReplace(words[1].explain.c_str(), del_str[11].c_str(), &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AnsiString cixing[2];\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cixing[0]=&quot;a.&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cixing[1]=&quot;ad.&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain=StringReplace(words[1].explain.c_str(), cixing[0].c_str(), &quot;adj.&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain=StringReplace(words[1].explain.c_str(), cixing[1].c_str(), &quot;adv.&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(words[1].explain.find(&quot;&lt;br&gt;&quot;)!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[1].explain.erase(words[1].explain.find(\"<br>\"),words[1].explain.length());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AnsiString RootAdd = strRoot + &quot; &quot; + words[1].explain.c_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(Memo_Memo-&gt;Text.Pos(RootAdd)&lt;1)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Memo_Memo-&gt;Lines-&gt;Add(strRoot + &quot; &quot; + words[1].explain.c_str());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(&quot;Data Exist&quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP1-&gt;Disconnect();\r\n&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;\r\n&nbsp;}\r\n}\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::Btn_AddClick(TObject *Sender)\r\n{\r\n&nbsp;if(Edit_RB_List-&gt;Text == &quot;0&quot;)\r\n&nbsp;{\r\n&nbsp;&nbsp;CheckBox_RB-&gt;Checked = false;\r\n&nbsp;&nbsp;CheckBox_EL-&gt;Checked = true; \r\n&nbsp;}\r\n&nbsp;Label_NextProgress-&gt;Caption = &quot;&quot;;\r\n&nbsp;\r\n&nbsp;int source = 0x00;\r\n&nbsp;if(CheckBox_RB-&gt;Checked)\r\n&nbsp;&nbsp;source += 0x01;\r\n&nbsp;if(CheckBox_BL-&gt;Checked)\r\n&nbsp;&nbsp;source += 0x02;\r\n&nbsp;if(CheckBox_BK-&gt;Checked)\r\n&nbsp;&nbsp;source += 0x04;\r\n&nbsp;if(CheckBox_EL-&gt;Checked)\r\n&nbsp;&nbsp;source += 0x08;\r\n\r\n&nbsp;AnsiString voc = Edt_Voc-&gt;Text;\r\n&nbsp;AnsiString kk = Edt_KK-&gt;Text;\r\n&nbsp;AnsiString explain = Memo_Explain-&gt;Text;\r\n&nbsp;AnsiString memory = Edit_Mem-&gt;Text;\r\n&nbsp;AnsiString notice = Edit_Note-&gt;Text;\r\n&nbsp;AnsiString sameroot = Edit_Same-&gt;Text;\r\n&nbsp;AnsiString antonym = Edit_Antonym-&gt;Text;\r\n&nbsp;AnsiString reference = Edit_Ref-&gt;Text;\r\n&nbsp;AnsiString like = Edit_Like-&gt;Text;\r\n&nbsp;AnsiString derive = Edit_Derive-&gt;Text;\r\n&nbsp;AnsiString example = Edit_Example-&gt;Text;\r\n&nbsp;AnsiString phrase = Edit_Phrase-&gt;Text;\r\n&nbsp;AnsiString term = Edit_Term-&gt;Text;\r\n&nbsp;AnsiString dreye = Memo_Dreye-&gt;Text;\r\n&nbsp;AnsiString othermemo = Memo_Memo-&gt;Text;\r\n&nbsp;AnsiString webster = Memo_Webster-&gt;Text;\r\n\r\n&nbsp;AnsiString tmp_webster;\r\n&nbsp;for(int i=0;i&lt;Memo_Webster-&gt;Lines-&gt;Count;i++)\r\n&nbsp;{\r\n&nbsp;&nbsp;if(Memo_Webster-&gt;Lines-&gt;Strings[i] != &quot;&quot;)\r\n&nbsp;&nbsp;&nbsp;tmp_webster = tmp_webster + Memo_Webster-&gt;Lines-&gt;Strings[i] + &quot;\\n&quot;;\r\n&nbsp;}\r\n&nbsp;webster = tmp_webster;\r\n\r\n\r\n&nbsp;int frequency = Edit_Freq-&gt;Text.ToInt();\r\n\r\n&nbsp;int RB_List = Edit_RB_List-&gt;Text.ToInt();\r\n\r\n&nbsp;int mark=0;\r\n&nbsp;if(CheckBox_Mark-&gt;Checked)\r\n&nbsp;&nbsp;mark = 1;\r\n\r\n&nbsp;int forecast=0;\r\n&nbsp;if(CheckBox_Forecast-&gt;Checked == true)\r\n&nbsp;&nbsp;forecast = 1;\r\n\r\n&nbsp;ADOTable1-&gt;Active=false;\r\n&nbsp;ADOConnection1-&gt;Open();\r\n&nbsp;ADOQuery1-&gt;Close();\r\n&nbsp;ADOQuery1-&gt;Open();\r\n\r\n&nbsp;AnsiString temp_explain;\r\n&nbsp;temp_explain = explain;\r\n&nbsp;if(temp_explain.Pos(&quot;&#39;&quot;)&gt;0)\r\n&nbsp;&nbsp;explain = StringReplace(temp_explain.c_str(), &quot;&#39;&quot;, &quot;&#39;&#39;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).c_str();\r\n\r\n&nbsp;AnsiString temp_othermemo;\r\n&nbsp;temp_othermemo = othermemo;\r\n&nbsp;if(temp_othermemo.Pos(&quot;&#39;&quot;)&gt;0)\r\n&nbsp;&nbsp;othermemo = StringReplace(temp_othermemo.c_str(), &quot;&#39;&quot;, &quot;&#39;&#39;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).c_str();\r\n\r\n&nbsp;AnsiString temp_example;\r\n&nbsp;temp_example = example;\r\n&nbsp;if(temp_example.Pos(&quot;&#39;&quot;)&gt;0)\r\n&nbsp;&nbsp;example = StringReplace(temp_example.c_str(), &quot;&#39;&quot;, &quot;&#39;&#39;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).c_str();\r\n\r\n&nbsp;AnsiString temp_webster;\r\n&nbsp;temp_webster = webster;\r\n&nbsp;if(temp_webster.Pos(&quot;&#39;&quot;)&gt;0)\r\n&nbsp;&nbsp;webster = StringReplace(temp_webster.c_str(), &quot;&#39;&quot;, &quot;&#39;&#39;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).c_str();\r\n\r\n&nbsp;AnsiString temp_dreye;\r\n&nbsp;temp_dreye = dreye;\r\n&nbsp;if(temp_dreye.Pos(&quot;&#39;&quot;)&gt;0)\r\n&nbsp;&nbsp;dreye = StringReplace(temp_dreye.c_str(), &quot;&#39;&quot;, &quot;&#39;&#39;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).c_str();\r\n\r\n&nbsp;AnsiString tmp_memo;\r\n&nbsp;for(int i=0;i&lt;Memo_Memo-&gt;Lines-&gt;Count;i++)\r\n&nbsp;{\r\n&nbsp;&nbsp;if(Memo_Memo-&gt;Lines-&gt;Strings[i] != &quot;&quot;)\r\n&nbsp;&nbsp;&nbsp;tmp_memo = tmp_memo + Memo_Memo-&gt;Lines-&gt;Strings[i] + &quot;\\n&quot;;\r\n&nbsp;}\r\n&nbsp;othermemo = tmp_memo;\r\n\r\n&nbsp;ADOQuery1-&gt;SQL-&gt;Text=\r\n&nbsp;&nbsp;&quot;insert into VocDB( &quot;\r\n&nbsp;&nbsp;&nbsp;&quot;WORD, KK, RB_LIST, EXPLAIN, MARK, SOURCE, MEMORY, &quot;\r\n&nbsp;&nbsp;&nbsp;&quot;NOTICE, ROOT, ANTONYM, REFERENCE, CONTOUR, DERIVE, EXAMPLE, &quot;\r\n&nbsp;&nbsp;&nbsp;&quot;PHRASE, DREYE, OTHERMEMO, FREQUENCE_BLACK, CATEGORY, FORECAST, TERM, WEBSTER) &quot;\r\n&nbsp;&nbsp;&nbsp;&quot; values(&#39;&quot;+\r\n&nbsp;&nbsp;&nbsp;&nbsp; voc + &quot;&#39;, &#39;&quot; + kk + &quot;&#39;, &#39;&quot; + IntToStr(RB_List) + &quot;&#39;, &#39;&quot; + explain + &quot;&#39;, &#39;&quot; + IntToStr(mark) + &quot;&#39;, &#39;&quot; + IntToStr(source) + &quot;&#39;, &#39;&quot; + memory + &quot;&#39;, &#39;&quot; +\r\n&nbsp;&nbsp;&nbsp;&nbsp; notice + &quot;&#39;, &#39;&quot; + sameroot + &quot;&#39;, &#39;&quot; + antonym + &quot;&#39;, &#39;&quot; + reference + &quot;&#39;, &#39;&quot; + like + &quot;&#39;, &#39;&quot; + derive + &quot;&#39;, &#39;&quot; + example + &quot;&#39;, &#39;&quot; +\r\n&nbsp;&nbsp;&nbsp;&nbsp; phrase + &quot;&#39;, &#39;&quot; + dreye + &quot;&#39;, &#39;&quot; + othermemo + &quot;&#39;, &#39;&quot; + IntToStr(frequency) + &quot;&#39;, &#39;&quot; + category + &quot;&#39;, &#39;&quot; + IntToStr(forecast)+ &quot;&#39;, &#39;&quot; + term+ &quot;&#39;, &#39;&quot; + webster+&quot;&#39;)&quot;;\r\n\r\n&nbsp;ADOQuery1-&gt;ExecSQL();\r\n&nbsp;Form1-&gt;ADOQuery1-&gt;Close();\r\n\r\n&nbsp;TStrings *List=new TStringList;\r\n&nbsp;ADOConnection1-&gt;GetTableNames(List);\r\n&nbsp;ADOQuery1-&gt;Close();\r\n&nbsp;ADOQuery1-&gt;SQL-&gt;Text=&quot;select * from VocDB order by&nbsp; RB_LIST, WORD&quot;;\r\n&nbsp;ADOQuery1-&gt;ExecSQL();\r\n&nbsp;ADOQuery1-&gt;Open();\r\n&nbsp;StatusBar1-&gt;Panels-&gt;Items[0]-&gt;Text =&quot;\u76ee\u524d\u5171\u6709 &quot; + IntToStr(ADOQuery1-&gt;RecordCount) + &quot; \u500b\u55ae\u5b57&quot;;\r\n&nbsp;GridSize();\r\n&nbsp;ADOQuery1-&gt;Last(); \r\n\r\n&nbsp;Button7-&gt;OnClick(Sender);\r\n&nbsp;Panel4-&gt;Visible = false;\r\n\r\n&nbsp;Edit_Freq-&gt;Text = 0;\r\n\r\n&nbsp;bOpenSite = false;\r\n&nbsp;Edt_Voc-&gt;SetFocus();\r\n&nbsp;Btn_Add-&gt;Enabled = false;\r\n}\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::DBGrid1DblClick(TObject *Sender)\r\n{\r\n\r\n&nbsp;GridSize();\r\n&nbsp;if(ADOQuery1-&gt;RecordCount &gt; 0)\r\n&nbsp;{\r\n&nbsp;&nbsp;Btn_Update-&gt;Enabled = true;\r\n&nbsp;&nbsp;if(RadioButton_FirstUpper-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;Edt_Voc-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;WORD&quot;)-&gt;AsString.SubString(1,1).UpperCase() +\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;WORD&quot;)-&gt;AsString.SubString(2,DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;WORD&quot;)-&gt;AsString.Length()-1);\r\n&nbsp;&nbsp;else if(RadioButton_UpperCase-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;Edt_Voc-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;WORD&quot;)-&gt;AsString.UpperCase();\r\n&nbsp;&nbsp;else if(RadioButton_LowerCase-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;Edt_Voc-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;WORD&quot;)-&gt;AsString.LowerCase();\r\n&nbsp;&nbsp;else if(RadioButton_Default-&gt;Checked)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Edt_Voc-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;WORD&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Edt_KK-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;KK&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Edit_RB_List-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;RB_LIST&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Memo_Explain-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;EXPLAIN&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Edit_Mem-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;MEMORY&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Edit_Note-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;NOTICE&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Edit_Same-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;ROOT&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Edit_Antonym-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;ANTONYM&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Edit_Ref-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;REFERENCE&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Edit_Like-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;CONTOUR&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Edit_Derive-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;DERIVE&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Edit_Example-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;EXAMPLE&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Edit_Phrase-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;PHRASE&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Memo_Dreye-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;DREYE&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Memo_Memo-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;OTHERMEMO&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Edit_Term-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;TERM&quot;)-&gt;AsString;\r\n&nbsp;&nbsp;Memo_Webster-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;WEBSTER&quot;)-&gt;AsString;\r\n\r\n&nbsp;&nbsp;int source = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;SOURCE&quot;)-&gt;AsInteger;\r\n\r\n&nbsp;&nbsp;CheckBox_RB-&gt;Checked = false;\r\n&nbsp;&nbsp;CheckBox_BL-&gt;Checked = false;\r\n&nbsp;&nbsp;CheckBox_BK-&gt;Checked = false;\r\n&nbsp;&nbsp;CheckBox_EL-&gt;Checked = false;\r\n\r\n&nbsp;&nbsp;if(source&amp;0x01)\r\n&nbsp;&nbsp;&nbsp;CheckBox_RB-&gt;Checked = true;\r\n&nbsp;&nbsp;if(source&amp;0x02)\r\n&nbsp;&nbsp;&nbsp;CheckBox_BL-&gt;Checked = true;\r\n&nbsp;&nbsp;if(source&amp;0x04)\r\n&nbsp;&nbsp;&nbsp;CheckBox_BK-&gt;Checked = true;\r\n&nbsp;&nbsp;if(source&amp;0x08)\r\n&nbsp;&nbsp;&nbsp;CheckBox_EL-&gt;Checked = true;\r\n\r\n\r\n&nbsp;&nbsp;int mark = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;MARK&quot;)-&gt;AsInteger;\r\n&nbsp;&nbsp;if(mark == 0)\r\n&nbsp;&nbsp;&nbsp;CheckBox_Mark-&gt;Checked = false;\r\n&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;CheckBox_Mark-&gt;Checked = true;\r\n\r\n&nbsp;&nbsp;int forecast = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;FORECAST&quot;)-&gt;AsInteger;\r\n&nbsp;&nbsp;if(forecast == 0)\r\n&nbsp;&nbsp;&nbsp;CheckBox_Forecast-&gt;Checked = false;\r\n&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;CheckBox_Forecast-&gt;Checked = true;\r\n\r\n&nbsp;&nbsp;Edit_Freq-&gt;Text = DBGrid1-&gt;DataSource-&gt;DataSet-&gt;FieldByName(&quot;FREQUENCE_BLACK&quot;)-&gt;AsInteger;\r\n&nbsp;}\r\n}\r\n\/\/---------------------------------------------------------------------------\r\nvoid __fastcall TForm1::Btn_AutoSearchRootClick(TObject *Sender)\r\n{\r\n&nbsp;AnsiString body,final_search_word;\r\n&nbsp;bool isPrestr = false;\r\n&nbsp;int&nbsp; prePos=19;\r\n&nbsp;AnsiString strRoot;\r\n&nbsp;for(int x=0;x&lt;preNum;x++)\r\n&nbsp;{\r\n&nbsp;&nbsp;\/\/PreStr\r\n&nbsp;&nbsp;if( Edt_Voc-&gt;Text.SubString(1,PreStr[x].Length()) ==&nbsp; PreStr[x])\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;isPrestr = true;\r\n&nbsp;&nbsp;&nbsp;prePos = x;\r\n&nbsp;&nbsp;&nbsp;break;\r\n&nbsp;&nbsp;}\r\n\r\n&nbsp;}\r\n&nbsp;if(isPrestr)\r\n&nbsp;{\r\n&nbsp;&nbsp;strRoot = Edt_Voc-&gt;Text.SubString(PreStr[prePos].Length() + 1,Edt_Voc->Text.Length()-PreStr[prePos].Length() + 1);\r\n&nbsp;&nbsp;try\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;body=IdHTTP1-&gt;Get(url+strRoot);\r\n&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;catch(EIdHTTPProtocolException &amp;e)\r\n&nbsp;&nbsp;{;}\r\n\r\n&nbsp;&nbsp;words[2].explain=body.c_str();\r\n&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;AnsiString del_to_mp3_path=&quot;param name=\\&quot;FileName\\&quot; value=\\&quot;&quot;;\r\n&nbsp;&nbsp;words[2].explain.erase(0,words[2].explain.find(del_to_mp3_path.c_str())+del_to_mp3_path.Length());\r\n&nbsp;&nbsp;play_path=words[2].explain.substr(0,words[2].explain.find(&quot;\\&quot;&gt;&quot;)).c_str();\r\n\r\n\r\n&nbsp;&nbsp;AnsiString title = &quot;&lt;div class=ptitle&gt;&quot;;\r\n&nbsp;&nbsp;if(words[2].explain.find(title.c_str())!=string::npos)\r\n&nbsp;&nbsp;&nbsp;words[2].explain.erase(0,words[2].explain.find(title.c_str())+title.Length());\r\n\r\n&nbsp;&nbsp;AnsiString play_str=&quot;onclick=\\&quot;PlayAU()\\&quot;&gt;&quot;;\r\n&nbsp;&nbsp;if(words[2].explain.find(play_str.c_str())!=string::npos)\r\n&nbsp;&nbsp;&nbsp;words[2].explain.erase(0,words[2].explain.find(play_str.c_str())+play_str.Length());\r\n\r\n&nbsp;&nbsp;actual_word=words[2].explain.substr(0,words[2].explain.find(&quot;&lt;&quot;)).c_str();\r\n&nbsp;&nbsp;actual_word=actual_word.Trim();\r\n\r\n\r\n&nbsp;&nbsp;multi_word=actual_word;\r\n\r\n&nbsp;&nbsp;AnsiString sup_start=&quot;&lt;sup&gt;&quot;;\r\n&nbsp;&nbsp;AnsiString sup_end=&quot;&lt;\/sup&gt;&quot;;\r\n&nbsp;&nbsp;if(words[2].explain.find(sup_start.c_str())!=string::npos)\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;AnsiString tmp=words[2].explain.substr(words[2].explain.find(sup_start.c_str()),words[2].explain.find(sup_end.c_str())).c_str();\r\n&nbsp;&nbsp;&nbsp;tmp=StringReplace(tmp.c_str(), sup_start.c_str(), &quot;@&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).c_str();\r\n&nbsp;&nbsp;&nbsp;tmp=tmp.SubString(0,tmp.Pos(&quot;&lt;&quot;)-1);\r\n&nbsp;&nbsp;&nbsp;multi_word=actual_word+tmp;\r\n&nbsp;&nbsp;&nbsp;Memo_Memo-&gt;Lines-&gt;Add(strRoot + &quot; &quot;);\r\n&nbsp;&nbsp;&nbsp;if(!bFangAutoUpdate)\r\n&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(&quot;Multiple Meanings&quot;);\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;else\r\n&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;bool notFound = false;\r\n\r\n&nbsp;&nbsp;&nbsp;if(actual_word.LowerCase()!=strRoot.LowerCase())\r\n&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(final_search_word.Pos(&quot;@&quot;)&lt;1) \r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;notFound = true;\r\n&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;if(!notFound)\r\n&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain.erase(0,words[2].explain.find(&quot;KK: [&quot;)+6);\r\n\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain.insert(0,&quot;[&quot;);\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(words[2].explain.find(&quot;&lt;div id=\\&quot;rad\\&quot;&gt;&quot;)!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain.erase(words[2].explain.find(\"<div id=\\\"rad\\\">\"),words[2].explain.length());\r\n\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;AnsiString image_src;\r\n&nbsp;&nbsp;&nbsp;&nbsp;image_src=&quot;&lt;img border=0 align=absbottom src=\\&quot;http:\/\/www.dreye.com\/tw\/dict\/IMAGES\/DIC\/PN\/&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;if( words[2].explain.find(image_src.c_str())!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string tmp_kk=words[2].explain.substr(0,words[2].explain.find(&quot;DJ: [&quot;)-4); \r\n\r\n&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AnsiString kk_str;\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str=StringReplace(tmp_kk.c_str(), image_src, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str=StringReplace(kk_str, &quot;.GIF\\&quot;&gt;&quot;, &quot;][&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str=StringReplace(kk_str, &quot;[]&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str=StringReplace(kk_str, &quot;&lt;br&gt;&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str=kk_str.Trim();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if( words[2].explain.find(&quot;img border=0 align=absbottom src=\\&quot;http:\/\/www.dreye.com\/tw\/dict\/IMAGES\/DIC\/PN\/&quot;)!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str=StringReplace(kk_str.c_str(), &quot;img border=0 align=absbottom src=\\&quot;http:\/\/www.dreye.com\/tw\/dict\/IMAGES\/DIC\/PN\/&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll);\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str = StringReplace(kk_str.c_str(), &quot;\\n&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kk_str = StringReplace(kk_str.c_str(), &quot;[]&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[2].kk=kk_str;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[2].kk = &quot;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[2].word=actual_word;\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain.erase(0,words[2].explain.find(&quot;&lt;\/div&gt;&quot;)+6);\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;string del_str[12];\r\n&nbsp;&nbsp;&nbsp;&nbsp;del_str[0]=&quot;&lt;\/span&gt;&lt;\/div&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;del_str[1]=&quot;&lt;div class=peng&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;del_str[2]=&quot;&lt;div class=pchi&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;del_str[3]=&quot;&lt;ol&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;del_str[4]=&quot;&lt;\/ol&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;del_str[5]=&quot;&lt;li&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;del_str[6]=&quot;&lt;\/li&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;del_str[7]=&quot;&lt;div class=pcixin&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;del_str[8]=&quot;&lt;\/div&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;del_str[9]=&quot;\u3002&lt;div class=pexplain&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;del_str[10]=&quot;&lt;div class=\\&quot;break\\&quot;&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;del_str[11]=&quot;&lt;div class=pexplain&gt;&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;while(words[2].explain.find(del_str[1])!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application-&gt;ProcessMessages();\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain.erase(words[2].explain.find(del_str[1]),words[2].explain.find(del_str[0])-words[2].explain.find(del_str[1]));\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain.erase(words[2].explain.find(del_str[0]),del_str[0].length());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain.erase(words[2].explain.find(del_str[2]),words[2].explain.find(del_str[0])-words[2].explain.find(del_str[2]));\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain.erase(words[2].explain.find(del_str[0]),del_str[0].length());\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(words[2].explain.find(del_str[10])!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain.erase(words[2].explain.find(del_str[10]),words[2].explain.length());\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;for(int i=3;i&lt;=6;i++)\r\n&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(words[2].explain.find(del_str[i])!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain.erase(words[2].explain.find(del_str[i]),del_str[i].length());\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain=StringReplace(words[2].explain.c_str(), &quot;\\n&quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str(); \/\/ \u6e05\u9664\u63db\u884c\u5b57\u5143\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain=StringReplace(words[2].explain.c_str(), del_str[7].c_str(), &quot;&lt;div class=pcixin&gt;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain=StringReplace(words[2].explain.c_str(), del_str[8].c_str(), &quot;\u3002&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain=StringReplace(words[2].explain.c_str(), del_str[9].c_str(), &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain=StringReplace(words[2].explain.c_str(), del_str[7].c_str(), &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain=StringReplace(words[2].explain.c_str(), del_str[11].c_str(), &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;AnsiString cixing[2];\r\n&nbsp;&nbsp;&nbsp;&nbsp;cixing[0]=&quot;a.&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;cixing[1]=&quot;ad.&quot;;\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain=StringReplace(words[2].explain.c_str(), cixing[0].c_str(), &quot;adj.&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain=StringReplace(words[2].explain.c_str(), cixing[1].c_str(), &quot;adv.&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll).t_str();\r\n\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(words[2].explain.find(&quot;&lt;br&gt;&quot;)!=string::npos)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;words[2].explain.erase(words[2].explain.find(\"<br>\"),words[2].explain.length());\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;AnsiString RootAdd = strRoot + &quot; &quot; + words[2].explain.c_str();\r\n&nbsp;&nbsp;&nbsp;&nbsp;if(Memo_Memo-&gt;Text.Pos(RootAdd)&lt;1)\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Memo_Memo-&gt;Lines-&gt;Add(strRoot + &quot; &quot; + words[2].explain.c_str());\r\n&nbsp;&nbsp;&nbsp;&nbsp;else\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(&quot;Data Exist&quot;);\r\n&nbsp;&nbsp;&nbsp;}\r\n&nbsp;&nbsp;}\r\n&nbsp;&nbsp;IdHTTP1-&gt;Disconnect();\r\n&nbsp;}\r\n}\r\n\/\/---------------------------------------------------------------------------<\/pre>\n<p>\n\t&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Features: Import vocabularies from Dr.eye and Merriam-Webster&nbsp;online dictionary Install KK phonics font in your system Support pronunciation&nbsp;through internet &nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[7,14],"tags":[],"class_list":["post-255","post","type-post","status-publish","format-standard","hentry","category-cc","category-projects"],"_links":{"self":[{"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=255"}],"version-history":[{"count":7,"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/255\/revisions"}],"predecessor-version":[{"id":305,"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/255\/revisions\/305"}],"wp:attachment":[{"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=255"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/cywang.no-ip.org\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}