数据复制特定的代码:监视剪贴板和剪贴板内容到治疗后的剪贴板

根据日志文件最近的报告经常做统计,然后,数据录入excel。

日志形如:

缴费总笔数                   12
缴费用户数                   123
缴费金额数                1234.1
缴费50元以上笔数              321
缴费50元以上用户数            342
缴费50元以上金额         11.75
缴费100元以上笔数              42


当中的文字和排列顺序都是excel中既定的,须要单独把数据复制进去。每次都单独一个数据复制很麻烦,就考虑一次复制全部文本,然后剪切板里自己主动去掉文字剩下数字,粘贴到excel表中就正好合适。


比如复制日志数据,程序处理后,剪切板中就是例如以下数据,仅仅须要打开程序开启监听就能够。

 12
 123
 1234.1
 321
 342
 11.75
 42                       


关键函数例如以下


void ChangeContent(char* str)
{
	char * line = (char*)malloc(50);
	char * newstr = (char*)malloc(sizeof(str));
	int i=0,len=0;
	int length = strlen(str);
	bool find=false;

	ZeroMemory(newstr,sizeof(newstr));
	if (str != NULL && strcmp(str,"")!=0)
	{
		while (len<length)
		{
			find = false;
			ZeroMemory(line,sizeof(line));
			for (;*str!='\n' && len<length;str++)
			{
				//提取一行数字 i代表数字的长度
				if (*str == ' ' && *(str+1)!=' ') 
				{
					line=str;
					i=-1;
					find = true;
				}
				if (find) i++;
				len++;
			}
			*(line+i+2)='\0';
			lstrcat(newstr,line);
			if (find) str+=i;
			if (i == 0) len++; else len+=i;
			//ZeroMemory(str,sizeof(str));
		}
	}

	OpenClipboard(NULL);
	EmptyClipboard();
	HGLOBAL hMen;
	 hMen = GlobalAlloc(GMEM_MOVEABLE, ((strlen(newstr)+1)*sizeof(TCHAR)));    
	 LPSTR lpStr = (LPSTR)GlobalLock(hMen);    
	strcpy(lpStr,newstr);
	 // 释放锁    
	 GlobalUnlock(hMen);  
	 // 把内存中的数据放到剪切板上   
	 SetClipboardData(CF_TEXT, hMen); 
	 change = true;
	 CloseClipboard();
}


运行该文件,也可以在以后通过一个小

版权声明:本文博客原创文章。博客,未经同意,不得转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值