如何得到并把这个网页的单标存入Memo

needacoder 2012-12-12 11:26:56
http://dict.cn/interesting

以上面网页为例,我用以下命令

DECLARE INTEGER URLDownloadToFile IN urlmon.DLL INTEGER pCaller,STRING szURL,STRING szFileName,INTEGER dwReserved,INTEGER lpfnCB

URLDownloadToFile(0,lcRemoteUrl,lcLocalhtm,0,0)
xxx=STRCONV(FILETOSTR(lcLocalhtm),11)
b=STREXTRACT(xxx,[<div class="phonetic">],[</div>],1)
音标=STREXTRACT(b,"[","]",1)
得到的音标存入一个Memo字段中后,browse并双击该Memo字段,看到的是一些单标被?代替了.

也许是下面这句有问题,但如果不用这句,则几乎所有文字乱码!
xxx=STRCONV(FILETOSTR(lcLocalhtm),11)

怎么解决?
...全文
212 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
十豆三 2012-12-13
  • 打赏
  • 举报
回复
找到动态显示的方法了,用 RichText 或 WebBrowse 控件。
存到字段中
Declare Integer URLDownloadToFile In urlmon.Dll Integer pCaller,String szURL,String szFileName,Integer dwReserved,Integer lpfnCB
lcRemoteUrl='http://dict.cn/interesting'
lcLocalhtm='c:\abc.html'
URLDownloadToFile(0,lcRemoteUrl,lcLocalhtm,0,0)
lcUTF8str1=Strextract(Filetostr(lcLocalhtm),[<div class="phonetic">],[</div>],1)
lcUTF8str2=Strextract(lcUTF8str1,"[","]",1)
Create Cursor t1 (a1 m)
Append Blank
Replace a1 With lcUTF8str2

显示时:
=Strtofile(t1.a1,"c:\UTF8格式.txt",4)
Thisform.OleRichText.LoadFile("c:\UTF8格式.txt")
Thisform.OleWebBrowse.Navigate("c:\UTF8格式.txt")

效果图

显示 UTF-8 字符可以用 RichText(推荐) 或 WebBrowse 控件
显示 Unicode 字符,只能用 WebBrowse 控件,用 RichText 不能正常显示
十豆三 2012-12-13
  • 打赏
  • 举报
回复
引用 12 楼 needacoder 的回复:
啊,看来想要直接从DBF中绑定Unicode数据是不可能的了 万一大侠想到更到的法子,请告知
一定
needacoder 2012-12-13
  • 打赏
  • 举报
回复
啊,看来想要直接从DBF中绑定Unicode数据是不可能的了 万一大侠想到更到的法子,请告知 不过目前这个结果也非常感谢了!!!
十豆三 2012-12-12
  • 打赏
  • 举报
回复
可能还是 vfp 不支持 Unicode 的原因。 能保存到文本中,只是把 Unicode 数据当字符了,而没有当成 Unicode 数据。
十豆三 2012-12-12
  • 打赏
  • 举报
回复
用 =Strtofile(lcUTF8str2,'c:\UTF8格式.txt',4) =Strtofile(Strconv(lcUTF8str2,12),'c:\Unicode.txt',2) 保存到文本后,可以打开手工复制然后粘贴到支持 Unicode 的控件。 用 repl 音标1 with lcUTF8str2,音标2 with Strconv(lcUTF8str2,12) 不知如何正常显示到支持 Unicode 的控件,我没有找到方法。
needacoder 2012-12-12
  • 打赏
  • 举报
回复
谢大侠百忙中回复 但是我做的软件需要从dbf中读取音标并显示啊,在VFP中真的没有解决方法了么? 另外您的代码 =Strtofile(lcUTF8str2,'c:\UTF8格式.txt',4) =Strtofile(Strconv(lcUTF8str2,12),'c:\Unicode.txt',2) 可以改成 repl 音标1 with lcUTF8str2,音标2 with Strconv(lcUTF8str2,12) 么?
十豆三 2012-12-12
  • 打赏
  • 举报
回复
Microsoft Forms 2.0 TextBox 控件的 Init 属性: This.Font.Size=16 This.Font.Name='Lucida Sans Unicode' Microsoft Forms 2.0 Label 控件的 Init 属性: This.Font.Size=16 This.Font.Name='Arial Unicode MS'
十豆三 2012-12-12
  • 打赏
  • 举报
回复
效果
十豆三 2012-12-12
  • 打赏
  • 举报
回复
可以用以下2个控件,但这个控件不能用代码的方式赋你的音标值,
2.0 TextBox 只能运行表单后,手动复制,然后粘帖。
2.0 Label只能设计时手动复制,然后粘帖给 Caption 属性。
因为代码方式我试验不成功。
needacoder 2012-12-12
  • 打赏
  • 举报
回复
有没有可以在VFP显示Unicode的第三方控件给个名字
needacoder 2012-12-12
  • 打赏
  • 举报
回复
非常感谢,能在vfp中显示Unicode的控件? 给个名字好么?什么控件可以啊?
十豆三 2012-12-12
  • 打赏
  • 举报
回复
Declare Integer URLDownloadToFile In urlmon.Dll Integer pCaller,String szURL,String szFileName,Integer dwReserved,Integer lpfnCB
lcRemoteUrl='http://dict.cn/interesting'
lcLocalhtm='c:\abc.html'
URLDownloadToFile(0,lcRemoteUrl,lcLocalhtm,0,0)
lcUTF8str1=Strextract(Filetostr(lcLocalhtm),[<div class="phonetic">],[</div>],1)
lcUTF8str2=Strextract(lcUTF8str1,"[","]",1)
=Strtofile(lcUTF8str2,'c:\UTF8格式.txt',4)
=Strtofile(Strconv(lcUTF8str2,12),'c:\Unicode.txt',2)
*--你可以把 UTF8格式 或 Unicode 格式的字符保存到 MEMO 字段中,用支持 Unicode 的控件显示即可,不能在 vfp 控件显示(因为不支持Unicode)
十豆三 2012-12-12
  • 打赏
  • 举报
回复
是因为音标含有 Unicode 字符,而 VFP 不支持 Unicode。

2,729

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧