1、此经验因为腾讯的原因,可能已经失效.目前可以通过:图片框1.图片 = HT哌囿亡噱TP读文件 (“http://q2.qlogo.cn/headimg_dl?bs=” + qqNumber + “&dst_uin=” + qqNumber + “&src_uin=” + qqNumber + “&fid=” + qqNumber + “&spec=100&url_enc=0&referer=bu_interface&term_type=PC”)这种方式来获取, 把qqNumber换成QQ号即可!打开易语言,新建一个Windows窗口程序,如图所示,添加2个标签,2个编辑框和一个按钮。标签1命名为QQ,标签2命名为昵称,编辑框1用来输入QQ号码,编辑框2则用来接收获取到的QQ昵称。按钮命名为”获取昵称“。这里我编辑框1输入的qq为10001。
2、我们双击 按钮,进入代码编写,这时候自动为我们创建了“_按钮1_被单击”子程序。添加三个变量,一个文本型 两个整数型,这里文本型我写的是 name 两个整数型写的是m和n,具体大家自己命名。
3、我们咸犴孜稍先写上这行代码。name = 到文本 (HTTP读文件 (“http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=” + 编辑框1.内容))”http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=10001“这个网址的uin=后面就是你要获取昵称的QQ号码。而这里我们用编辑框1来接收用户输入自定义的QQhttp读文件就是读取网页的数据文件,可以理解为源码。我们访问”http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=10001“ 可以看到_Callback({"uin":10001,"qzone":0,"intimacyScore":0,"nickname":"pony","realname":"","smartname":"","friendship":0,"isFriend":0,"bitmap":"1a51d5c4082ed301","avatarUrl":"http://qlogo2.store.qq.com/qzone/10001/10001/100"});
4、上面的内容,其中"nickname":"pony",这一行中的pony就是QQ昵称。可是我们要怎么取出其中的qq昵称呢?我们可以用 取文本中间这条命令来获取。再写上下面的代码。m = 寻找文本 (name, “nickname”, , 真)我们寻找nickname 看他首先出现的位置,把位置赋给m再用如果命令来判断 寻找文本的返回结果 如果等于-1说明没有找到 我们也就没有继续的必要。如果 (m = -1)如果不等于=-1就是说明存在
5、再在如果命令的另一分支(否则的条件时)下写上代码n = 寻找文本 (name, “,”, m巳呀屋饔, 真)这条代码的意思就是从m所在位置开始寻找最先出来的“,”也就是"nicknam髫潋啜缅e":"pony",最后面的“,”符号找到位置后再赋值给n然后再用 取文本中间 (name, m + 10, n - m - 10取文本中间命令来取出 n和m之间的内容(这个内容就是网名所在的位置并占的字符数)从m加10的地方也就是 网名所在那一行,要取的长度就是写为n-m-10。为什么m要加10呢? 我们来看 "nickname":"pony", 和取文本中间的命令用法。 调用格式: 〈文本型〉 取文本中间 (文本型 欲取其部分的文本,整数型 起始取出位置,整数型 欲取出字符的数目) - 系统核心支持库->文本操作 英文名称:mid 返回一个文本,其中包含指定文本中从指定位置算起指定数量的字符。本命令为初级命令。 参数<1>的名称为“欲取其部分的文本”,类型为“文本型(text)”。 参数<2>的名称为“起始取出位置”,类型为“整数型(int)”。1为首位置,2为第2个位置,如此类推。 参数<3>的名称为“欲取出字符的数目”,类型为“整数型(int)”。”起始取出位置“就是 m变量 最先出现的位置,最新出现的位置什么意思?就是nickanme的首字母n的位置而不要误解为最后字母e的位置,加上10就是定位的网名所在位置前面的那个引号那里。后面的n-m-10 就是要取出的字符数目了,由于之前m加了10所以这里再减去 不然取出的字符数会多10个。
6、由于涉及到网页编码问题,所以我们这里还需要转换下编码。编码转换 (到字节集 (取文本中间 (name, m + 10, n - m - 10)), #编码_UTF_8, #编码_GB18030, )再把转换过后的结果转换文本 以便用于后面的子文本替换到文本 (编码转换 (到字节集 (取文本中间 (name, m + 10, n - m - 10)), #编码_UTF_8, #编码_GB18030, ))这时候的文本是"pony"
7、再用子文本替换命令 把左右两边的引号替换为空白即可。子文本替换 (到文本 (编码转换 (到字节集 (取文本中间 (name, m + 10, n - m - 10)), #编码_UTF_8, #编码_GB18030, )), #引号, 取空白文本 (0), , , 真)
8、再赋值给编辑框2.内容即可编辑框2.内容 = 子文本替换 (到文本 (编码转换 (到字节集 (取文本中间 (name, m + 10, n - m - 10), #编码_UTF_8, #编码_GB18030, )), #引号, 取空白文本 (0), , , 真)
9、最终结果.版本 2.程序集 窗口程序集1.子程序 _按钮1_被单击.局部变量 name, 文本型.局部变量 m, 整数型.局部变量 n, 整数型name = 到文本 (HTTP读文件 (“http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=” + 编辑框1.内容))m = 寻找文本 (name, “nickname”, , 真).如果 (m = -1) 编辑框2.内容 = “无法获取qq昵称”.否则 n = 寻找文本 (name, “,”, m, 真) 编辑框2.内容 = 子文本替换 (到文本 (编码转换 (到字节集 (取文本中间 (name, m + 10, n - m - 10)), #编码_UTF_8, #编码_GB18030, )), #引号, 取空白文本 (0), , , 真).如果结束