清空剪切板

更新时间:2023-03-20 02:04:56 阅读: 评论:0

德国烤肠-汗渍怎么洗掉

清空剪切板
2023年3月20日发(作者:开机进度条)

C

线

光影

2012年7月8日22:03:22

1

【C语言】【Windows】--在线翻译器

01.程序简介

程序名称:在线翻译器

编译器:vs2010(其它也可以……)

程序大小:109K

文件包括:在线翻译器.exe,,,

程序界面:

2

3

02.任务说明

/********************************************************************

【光影队】【任务】【LV5】在线翻译器

********************************************************************/

任务名称:在线翻译器

任务难度:等级5

任务发布时间:

任务所需知识:C语言界面编程。算法。

任务简介:一个多国语言的在线翻译器。N天前使用学校的电脑,结果鼠标的半

报废的货。使用谷歌翻译的时候需要全部删除输入的内容,结果鼠标选择不了,

只能一个个字符Delete,或者点击打开新的窗口。每次使用翻译都需要这样很麻

烦,突然想要自己写一个翻译器,于是开工了……程序需要可以对常用的几种语

言间进行翻译。

任务资料提示:

可以使用URLDownloadToFile对翻译结果的网页进行下载,然后分析网页即

可得出翻译结果。

URL是:/translate_t?q=要翻译的内容

&hl=zh-CN&langpair=源语言|目标语言

源语言与目标语言可以在谷歌翻译找到,如:en是英语,zh-CN是中文简体

要翻译的内容中的空格用%20代替,换行(rn)用%0A代替。

注意网页是UTF-8编码。

网页打开:

backgroundColor='#fff'">后面开始是翻译后的内容

后面的内容如果有换行那就带

?和其它……

后面如果没有内容了那就带

具体网页可以自己下载网页进行分析。

/********************************************************************

4

03.相关技术

001.程序界面:

使用对话框。我们按下翻译按钮后。程序得到文本框的内容,然后根据文本的内

容长度与标点符号进行分割,然后将分割的内容与相应的语言选择进行URL构

造。根据构造的URL下载网页。最后分析网页得到翻译后的内容。

5

目标URL是:/translate_t?q=要翻译的内容

&hl=zh-CN&langpair=源语言|目标语言

源语言与目标语言可以通过用户的下拉列表(Combobox)选择得到。

如:

中文简体:zh-CN

中文繁体:zh-TW

英语:en

日语:ja

韩语:ko

法语:fr

菲律宾语:tl

越南语:vi

拉丁语:la

更多可以到谷歌翻译上找……

如将“lucifer”以为中文,那么下载的链接就是:

/translate_t?q=lucifer&hl=zh-CN&langpair=en|zh-CN

然后使用:URLDownloadToFile进行下载

URLDownlo鼎最初的用途 adToFile(0,下载目标,保存的文件名,0,NULL);

然后就是文件操作了。

6

003.编码

网页文件是使用UTF-8编码,我们直接读取的网页内容然后进行显示的时候就

会发现,英文正常显示,中文全部都变成了乱码。

于是我们需要对其进行编码转换。

我们使用char型的数组buffer进行读取然后在进行一下转换:

//先转换为Unicode

intwLen2=MultiByteToWideChar(CP_UTF8,0,buffer,-1,NULL,0);

wchar_t*wStr2=(wchar_t*)malloc(sizeof(wchar_t)*wLen2);

MultiByteToWideChar(CP_UTF8,0,buffer,-1,wStr2,wLen2);

//再转换为Ascii

intaLen2=WideCharToMultiByte(CP_ACP,0,wStr2,-1,NULL,0,NULL,

NULL);

char*converted2=(char*)malloc(sizeof(c一等座和二等座的区别 har)*aLen2);

WideCharToMultiByte(CP_ACP,0,wStr2,-1,converted2,aLen2,NULL,

NULL);

之后显示的内容就不会是乱码了。于是后续的字符串操作,翻译内容的定位就简

单了……

7

004.检查输入的内容。

input是得到的输入内容。然后检查有没有空格和换行。如果有就进行替换。餐厅墙面挂什么画比较好

空格换成“%20”

换行符换成“%0A”。

大致流程是:

/********************************************************************

替换空格和换行。

接着

我们判断它的大小:

intinputlen=strlen(input);

while(inputlen>500){

截取字符串,进行翻译,得到结果后,继续截取,直到inputlen小于500跳出循

环。

因为太长的URL得不到结果。

}

最后将剩下那段长度小于500的字符串进行翻译并得出结果。

以上完成。

********************************************************************/

8

005.对于输入需要设计的算法:

a.判断字符串哪些地方存在空格和换行符。

b.将该位置的空格和换行符用相应的字符串进行替换。“%20%0A”

c.字符串从500个字节倒数回来有一些常用结束标点(。,?!等),那就从500

倒数第一个标点开始截取字符串,标点前面的作为翻译的内容,标点后面的

前移,准备下一次截取。

d.如果前500个字符没有这些标点(如有些诗歌压根没有标点),那就从第500

个字符开始截取,前面的进行翻译,后面的前移,准备下一次截取。

e.从字符串input里面的从头开始截取index个字符放入NowTochange里面,然

后字符串input从index位置后面的字符全部前移。

f.检查输入内1711年 容的末端,如果有换行符,那就换成空格。

9

006赞美诗歌1218首全集 .检查输出的内容

对于截取到的翻译内容,我们还不可以直接显示出来。还要将其中的特殊字符串

替换成字符。

如“"”是双引号。“'”是单引号。“<”是“<”。“>”是“>”.

还有特殊的空格符(如全角),读取的时候为“

?”或“

??”等。

这些都需要找出来进行替换。

007.定位翻译结果。

判断开始位置:

从头开始扫描,直到出现='#fff'">这段为止。就是开始出现翻译内容的位置

/********************************************************************

while(n

if((buffer[n]=='=')&&(buffer[n+1]==''')&&(buffer[n+2]=='#')&&(buffer[n+3]=='

f')&&(buffer[n+4]=='f')&&(buffer[n+5]=='f')&&(buffer[n+6]==''')&&(buffer[n+7]=

='"')&&(buffer[n+8]=='>'))

{

Begin=n+9;

break;

}

n+有关秋天的句子 +;

}

********************************************************************/

10

判断结束位置。

/********************************************************************

while(n

if高考注意事项 ((buffer[n]=='<')&&(buffer[n+1]=='b')&&(buffer[n+2]=='r')&&(buffer[n+3]=='

>')&&(buffer[n+4]=='<')&&(buffer[n+5]=='b')&&(buffer[n+6]=='r')&&(buffer[n+7]

=='>')&&(buffer[n+8]=='<'))

{

End=n;

break;

}

if((buffer[n]=='<')&&(buffer[n+1]=='/')&&(buffer[n+2]=='s')&&(buffer[n+3]=='

p')&&(buffer[n+4]=='a')&&(buffer[n+5]=='n')&&(buffer[n+6]=='>')&&(buffer[n+7]

=='<')&&(buffer[n+8]=='s'))

{

End=n;

break;

}

if((buffer[n]=='<')&&(buffer[n+1]=='/')&&(buffer[n+2]=='s')&&(buffer[n+3]=='

p')&&(buffer[n+4]=='a')&&(buffer[n+5]=='n')&&(buffer[n+6]=='>')&&(buffer[n+7]

=='<')&&(buffer[n+8]=='/')&&

(buffer[n+梦想议论文 9]=='s'))

{

End=n;

t=NextLine+1;

break;

}

n++;

}

**********************************easy的形容词 **********************************/

11

这一行翻译结束:

<

下一行翻译开始:

最后一行翻译结束:

翻译的内容如有换行就会出现多行显示,其中由HTML代码隔开。我们对其进

行识别分割,读取出翻译的内容。

也就是从开始位置到结束位置,我们截取其中的字符串(翻译后的结果)。然后

继续循环得到下一句翻译内容的开始和结束位置。继续截取翻译内容。

直到遇到标志:

为止。

12

008.复制翻译结果。

/********************************************************************

得到结果,复制到剪切板。

********************************************************************/

voidGetTranText(){

charResult[5120];

GetDlgItemTextA(Hwnd,IDC_EDIT2,Result,5120);

if(OpenClipboard(Hwnd))

{

HGLOBALhClip;

TCHAR*pBuf;

//清空剪切板内容

EmptyClipboard();

//分配新全局内存空间

hClip=GlobalAlloc(GHND,5120);

//锁住全局内存空间

pBuf=(TCHAR*)GlobalLock(hClip);

//将内容写入全局内存空间

memcpy(pBuf,Result,strlen(Result));

//将空间中的内容写入剪切板

SetClipboardData(CF_TEXT,hClip);//设置数据

//解锁全局内存空间

GlobalUnlock(hClip);//解锁

//释放全局内存空间

GlobalFree(hClip);

//关闭剪切板

CloClipboard();

MessageBoxA(NULL,Result,"结果已经成功复制到剪切板

",MB_OK);

}el{

MessageBoxA(NULL,"不能打开剪切板,复制失败。

","Error",MB_OK);

}

13

}

以上是程序的相关技术,主要是算法(字符串的处理),C语言对于这方面可以

很擅长的,需要用到以前学黑窗体的时候的很多算法知识。

对于输入内容的检查与处理,文中只给出算法的思想,没有代码例子。详细可以

直接看程序的源代码。

14

04.工程介绍

程序源代码:

resource.h:加入资源的时候编译器自己添加的。

:程序的主函数与消息处理函数。

Translation.h:头文件与函数声明

:程序自定义函数。

程序源代码文件(TXT):

/********************************************奶粉冲调比例 ***************

***********************************************************/

双击打开

图标文件

15

05.关于(广告)

/********************************************************************

用C语言写的东东……更多可到百度贴吧:【erbi_lucifer吧】看看

/f?kw=erbi_lucifer

#********************************************************************/

/********************************************************************

光影

QQ空间:

/1264534037/infocenter?qz_referrer=qqtips#!

********************************************************************/

/********************************************************************

/./_IHandYou

__{^__}_)}/^

//_/^._}_////

((__{(@)}__}.//_/__A___A______A_______A______A____

__/{/(_)_})---v----V-----V--Y----v---Y-----

((__)_)_/)>

__/__/光影:QQ:1264534037

__,--'时间:2012年7月9日7:43:01

欢迎一起探讨编程世界

********************************************************************/

16

06.其它

本文发布于:2023-03-20 02:04:55,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/1679249096316158.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:清空剪切板.doc

本文 PDF 下载地址:清空剪切板.pdf

上一篇:继续教育总结
下一篇:返回列表
标签:清空剪切板
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
热门标签
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图