亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? countingdlg.cpp

?? visual c++ 實例編程
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
		bufRead.TrimLeft();

		if(bufRead.GetLength()==0)
		{
			nBlankLines++;
			continue;
		}

		if(bufRead.Find("--")==0 && !bCommentSet)
		{
			nCommentLines++;
			continue;
		}

		int nStartComment = bufRead.Find("/*");
		if(nStartComment == 0  && !bCommentSet ) // "/*" is the first two chars
		{
			bCommentSet = TRUE;
		}
		else if(nStartComment != -1 &&!bCommentSet) // "/*" is not the first two chars though found. so it's a code line
		{
			bCommentSet = TRUE;
			nCommentLines --;  
		}

		bufRead.TrimRight();

		int nEndComment = bufRead.Find("*/");
		if(bufRead.GetLength()>=2 && (nEndComment == bufRead.GetLength()-2))
		{
			bCommentSet = FALSE;
			nCommentLines ++;  
		}
		else if(nEndComment != -1)
		{
			bCommentSet = FALSE;
			if(bufRead.Find("--")!=-1) //it is very strange!  such as  " */   -- "
			{
				CString sTemp = bufRead.Right(bufRead.GetLength()-nEndComment-3);
				sTemp.TrimLeft();
				if(sTemp.Find("--")==0)
					nCommentLines++;
			}
		}

		if(bCommentSet)
			nCommentLines++;
	}

	*pnCommentLines = nCommentLines;
	*pnBlankLines = nBlankLines;

	file.Close();

	return nLines;
}

int CCountingDlg::GetVBFileLines(LPCTSTR strFileName, int *pnLength, int *pnCommentLines, int *pnBlankLines)
{
	*pnLength = 0;
	*pnCommentLines = 0;
	*pnBlankLines = 0;

	CStdioFile file;
	if(file.Open(strFileName, CFile::modeRead)==FALSE)
		return 0;

	int nLines = 0;
	int nCommentLines = 0;
	int nBlankLines = 0;

	int nLength = file.GetLength();
	m_nSize += nLength;
	*pnLength = nLength;

	CString bufRead;

	while(file.ReadString(bufRead)!=FALSE)
	{
		nLines++;

		bufRead.TrimLeft();

		if(bufRead.GetLength()==0)
		{
			nBlankLines++;
			continue;
		}

		if(bufRead.Find("'")==0)
		{
			nCommentLines++;
			continue;
		}
	}

	*pnCommentLines = nCommentLines;
	*pnBlankLines = nBlankLines;

	file.Close();

	return nLines;
}

int CCountingDlg::GetTxtFileLines(LPCTSTR strFileName, int *pnLength, int *pnCommentLines, int *pnBlankLines)
{
	*pnLength = 0;
	*pnCommentLines = 0;
	*pnBlankLines = 0;

	CStdioFile file;
	if(file.Open(strFileName, CFile::modeRead)==FALSE)
		return 0;

	int nLines = 0;
	int nCommentLines = 0;
	int nBlankLines = 0;

	int nLength = file.GetLength();
	m_nSize += nLength;
	*pnLength = nLength;

	CString bufRead;

	while(file.ReadString(bufRead)!=FALSE)
	{
		nLines++;

		bufRead.TrimLeft();

		if(bufRead.GetLength()==0)
		{
			nBlankLines++;
			continue;
		}
	}

	*pnCommentLines = nCommentLines;
	*pnBlankLines = nBlankLines;

	file.Close();

	return nLines;
}


/*********************************************************************
*  Save as Text file, in which every column has its own width
*	input: filename: the save file name
*	output: void		
**********************************************************************/
void CCountingDlg::SaveAsTextFile(LPCTSTR filename)
{
	CFile file(filename, CFile::modeCreate|CFile::modeWrite);
	CString strText;

#define COLUMN1_WIDTH	20
#define COLUMN2_WIDTH	30
#define COLUMN3_WIDTH	15
#define COLUMN4_WIDTH	15
#define COLUMN5_WIDTH	15
#define COLUMN6_WIDTH	15
#define COLUMN7_WIDTH	30

	strText.LoadString(IDS_FILENAME);
	strText = TextAppendSpace(strText, COLUMN1_WIDTH, TRUE);
	file.Write(strText, strText.GetLength());//write file name
	strText.LoadString(IDS_PATHNAME);
	strText = TextAppendSpace(strText, COLUMN2_WIDTH, TRUE);
	file.Write(strText, strText.GetLength());//write path name
	strText.LoadString(IDS_TOTALLINE);
	strText = TextAppendSpace(strText, COLUMN3_WIDTH, FALSE);
	file.Write(strText, strText.GetLength());
	strText.LoadString(IDS_CODELINE);
	strText = TextAppendSpace(strText, COLUMN4_WIDTH, FALSE);
	file.Write(strText, strText.GetLength());
	strText.LoadString(IDS_COMMENTLINE);
	strText = TextAppendSpace(strText, COLUMN5_WIDTH, FALSE);
	file.Write(strText, strText.GetLength());
	strText.LoadString(IDS_BLANKLINE);
	strText = TextAppendSpace(strText, COLUMN6_WIDTH, FALSE);
	file.Write(strText, strText.GetLength());
	file.Write("  ", 2);
	strText.LoadString(IDS_FILETYPE);
	strText = TextAppendSpace(strText, COLUMN7_WIDTH, TRUE);
	file.Write(strText, strText.GetLength());
	file.Write("\r\n", 2);

	for(int i=0; i<m_ctlResult.GetItemCount(); i++)
	{
		strText = m_ctlResult.GetItemText(i, 0);
		strText = TextAppendSpace(strText, COLUMN1_WIDTH, TRUE);
		file.Write((LPCTSTR)strText, COLUMN1_WIDTH);//write file name

		strText = m_ctlResult.GetItemText(i, 1);
		strText = TextAppendSpace(strText, COLUMN2_WIDTH, TRUE);
		file.Write((LPCTSTR)strText, COLUMN2_WIDTH);

		strText = m_ctlResult.GetItemText(i, 2);
		strText = TextAppendSpace(strText, COLUMN3_WIDTH, FALSE);
		file.Write((LPCTSTR)strText, COLUMN3_WIDTH);

		strText = m_ctlResult.GetItemText(i, 3);
		strText = TextAppendSpace(strText, COLUMN4_WIDTH, FALSE);
		file.Write((LPCTSTR)strText, COLUMN4_WIDTH);

		strText = m_ctlResult.GetItemText(i, 4);
		strText = TextAppendSpace(strText, COLUMN5_WIDTH, FALSE);
		file.Write((LPCTSTR)strText, COLUMN5_WIDTH);

		strText = m_ctlResult.GetItemText(i, 5);
		strText = TextAppendSpace(strText, COLUMN6_WIDTH, FALSE);
		file.Write((LPCTSTR)strText, COLUMN6_WIDTH);

		file.Write("  ", 2);

		strText = m_ctlResult.GetItemText(i, 6);
		strText = TextAppendSpace(strText, COLUMN7_WIDTH, TRUE);
		file.Write((LPCTSTR)strText, COLUMN7_WIDTH);

		file.Write("\r\n", 2);
	}

	file.Write("\r\n", 2);
	strText.LoadString(IDS_TOTAL);
	file.Write(strText, strText.GetLength());
	file.Write("\r\n", 2);

	CString str1, str2;
	str1.LoadString(IDS_TOTALFILES);
	str2.Format("%s: %d", str1, m_nFiles);
	file.Write(str2, str2.GetLength());
	file.Write("\r\n", 2);

	//show the total size
	CString strUnit = "";
	float fSize = (float)m_nSize;
	if(fSize>1024)
	{
		fSize /= 1024.;
		strUnit = "KB";
		if(fSize>1024)
		{
			fSize /= 1024.;
			strUnit = "MB";
		}
	}

	str1.LoadString(IDS_TOTALSIZE);
	str2.Format("%s: %2.2f%s", str1, fSize, strUnit);
	file.Write(str2, str2.GetLength());
	file.Write("\r\n", 2);

	str1.LoadString(IDS_TOTALLINE);
	str2.Format("%s: %d (100%%)", str1, m_nTotalLines);
	file.Write(str2, str2.GetLength());
	file.Write("\r\n", 2);

	str1.LoadString(IDS_CODELINE);
	str2.Format("%s: %d (%.1f%%)", str1, m_nCodeLines, 100.*m_nCodeLines/m_nTotalLines);
	file.Write(str2, str2.GetLength());
	file.Write("\r\n", 2);

	str1.LoadString(IDS_COMMENTLINE);
	str2.Format("%s: %d (%.1f%%)", str1, m_nCommentLines, 100.*m_nCommentLines/m_nTotalLines);
	file.Write(str2, str2.GetLength());
	file.Write("\r\n", 2);

	str1.LoadString(IDS_BLANKLINE);
	str2.Format("%s: %d (%2.1f%%)", str1, m_nBlankLines, 100.*m_nBlankLines/m_nTotalLines);
	file.Write(str2, str2.GetLength());
	file.Write("\r\n", 2);

	str1.LoadString(IDS_SAVEOVER);
	GetDlgItem(IDC_PATH_COUNTING)->SetWindowText(str1);
}

/*********************************************************************
*  Save as csv file which can be analysed by Excel conveniently
*	input: filename: the save file name
*	output: void		
**********************************************************************/
void CCountingDlg::SaveAsCSVFile(LPCTSTR filename)
{
	CStdioFile file(filename, CFile::modeCreate|CFile::modeWrite);
	CString strText;

	CString str1, str2, str3, str4, str5, str6, str7;
	str1.LoadString(IDS_FILENAME);
	str2.LoadString(IDS_PATHNAME);
	str3.LoadString(IDS_TOTALLINE);
	str4.LoadString(IDS_CODELINE);
	str5.LoadString(IDS_COMMENTLINE);
	str6.LoadString(IDS_BLANKLINE);
	str7.LoadString(IDS_FILETYPE);
	strText.Format("%s,%s,%s,%s,%s,%s,%s\n", str1, str2, str3, str4, str5, str6, str7);
	file.WriteString(strText);

	for(int i=0; i<m_ctlResult.GetItemCount(); i++)
	{
		strText.Format("%s,%s,%s,%s,%s,%s,%s\n", 
			m_ctlResult.GetItemText(i, 0), m_ctlResult.GetItemText(i, 1),
			m_ctlResult.GetItemText(i, 2), m_ctlResult.GetItemText(i, 3),
			m_ctlResult.GetItemText(i, 4), m_ctlResult.GetItemText(i, 5),
			m_ctlResult.GetItemText(i, 6));

		file.WriteString(strText);
	}

	file.Write("\n", 1);
	str1.LoadString(IDS_TOTAL);
	file.Write(str1, str1.GetLength());
	file.Write("\n", 1);

	str1.LoadString(IDS_TOTALFILES);
	str2.Format("%s,%d", str1, m_nFiles);
	file.Write(str2, str2.GetLength());
	file.Write("\n", 1);

	//show the total size
	CString strUnit = "";
	float fSize = (float)m_nSize;
	if(fSize>1024)
	{
		fSize /= 1024.;
		strUnit = "KB";
		if(fSize>1024)
		{
			fSize /= 1024.;
			strUnit = "MB";
		}
	}

	str1.LoadString(IDS_TOTALSIZE);
	str2.Format("%s,%2.2f%s", str1, fSize, strUnit);
	file.Write(str2, str2.GetLength());
	file.Write("\n", 1);

	str1.LoadString(IDS_TOTALLINE);
	str2.Format("%s,%d (100%%)", str1, m_nTotalLines);
	file.Write(str2, str2.GetLength());
	file.Write("\n", 1);

	str1.LoadString(IDS_CODELINE);
	str2.Format("%s,%d (%2.1f%%)", str1, m_nCodeLines, 100.*m_nCodeLines/m_nTotalLines);
	file.Write(str2, str2.GetLength());
	file.Write("\n", 1);

	str1.LoadString(IDS_COMMENTLINE);
	str2.Format("%s,%d (%2.1f%%)", str1, m_nCommentLines, 100.*m_nCommentLines/m_nTotalLines);
	file.Write(str2, str2.GetLength());
	file.Write("\n", 1);

	str1.LoadString(IDS_BLANKLINE);
	str2.Format("%s,%d (%2.1f%%)", str1, m_nBlankLines, 100.*m_nBlankLines/m_nTotalLines);
	file.Write(str2, str2.GetLength());
	file.Write("\n", 1);

	str1.LoadString(IDS_SAVEOVER);
	GetDlgItem(IDC_PATH_COUNTING)->SetWindowText(str1);
}

/*********************************************************************
*  Show the About dialogbox
**********************************************************************/
void CCountingDlg::OnAbout() 
{
	// TODO: Add your control notification handler code here
	CAboutDlg dlgAbout;
	dlgAbout.DoModal();
}

/*********************************************************************
*  Update counting result frequently
*	the result including: total files, total size, 
*			total lines, code lines, comment lines, blank lines
**********************************************************************/
void CCountingDlg::UpdateResult()
{
	char sTemp[64]=" ";

	//show the number of files
	sprintf(sTemp, "%d", m_nFiles);
	GetDlgItem(IDC_FILES)->SetWindowText(sTemp);

	//show the total size
	CString strUnit = "";
	float fSize = (float)m_nSize;
	if(fSize>1024)
	{
		fSize /= 1024;
		strUnit = "KB";
		if(fSize>1024)
		{
			fSize /= 1024;
			strUnit = "MB";
		}
	}
	sprintf(sTemp, "%.2f%s", fSize, strUnit);
	GetDlgItem(IDC_SIZES)->SetWindowText(sTemp);

	//show total lines
	sprintf(sTemp, "%d", m_nTotalLines);
	GetDlgItem(IDC_TOTALLINES)->SetWindowText(sTemp);

	//show code lines
	if(m_nTotalLines!=0)
		sprintf(sTemp, "%d(%2.1f)", m_nCodeLines, m_nCodeLines*100./m_nTotalLines);
	else
		sprintf(sTemp, "0(0%)");
	GetDlgItem(IDC_CODELINES)->SetWindowText(sTemp);

	//show comment lines
	if(m_nTotalLines!=0)
		sprintf(sTemp, "%d(%2.1f)", m_nCommentLines, m_nCommentLines*100./m_nTotalLines);
	else
		sprintf(sTemp, "0(0%)");
	GetDlgItem(IDC_COMMENTLINES)->SetWindowText(sTemp);

	//show blank lines
	if(m_nTotalLines!=0)
		sprintf(sTemp, "%d(%2.1f)", m_nBlankLines, m_nBlankLines*100./m_nTotalLines);
	else
		sprintf(sTemp, "0(0%)");
	GetDlgItem(IDC_BLANKLINES)->SetWindowText(sTemp);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久电影| 中文字幕亚洲视频| 国产精品久久久久久久久果冻传媒| 国产精品白丝在线| 久久精品国产亚洲一区二区三区| 91香蕉视频黄| 国产夜色精品一区二区av| 视频一区二区国产| 色婷婷久久综合| 国产精品五月天| 久久99国产精品久久| 欧美精品久久久久久久多人混战| 国产精品视频麻豆| 极品少妇xxxx偷拍精品少妇| 欧美日韩精品是欧美日韩精品| 亚洲欧洲日本在线| 国产很黄免费观看久久| 日韩欧美在线影院| 日韩国产欧美三级| 欧美日韩一级二级三级| 最新国产成人在线观看| 国产成人超碰人人澡人人澡| 精品国产亚洲一区二区三区在线观看| 亚洲成人免费av| 欧美午夜精品一区| 亚洲自拍欧美精品| 欧美午夜精品免费| 午夜欧美电影在线观看| 欧美吞精做爰啪啪高潮| 五月激情六月综合| 67194成人在线观看| 日韩精品成人一区二区在线| 欧美精品久久99| 六月丁香综合在线视频| 日韩欧美一区在线观看| 人人爽香蕉精品| 精品美女被调教视频大全网站| 日本三级亚洲精品| 精品国产123| 国产99久久久精品| 1区2区3区欧美| 在线观看欧美日本| 人妖欧美一区二区| 精品成人佐山爱一区二区| 国产成人一级电影| 综合亚洲深深色噜噜狠狠网站| 色久优优欧美色久优优| 午夜精品久久久久久久蜜桃app| 欧美日韩精品三区| 国内一区二区在线| 国产精品乱码一区二区三区软件 | 久久爱www久久做| 337p日本欧洲亚洲大胆色噜噜| 国产一区二区三区四区五区入口 | 99久久99久久精品免费看蜜桃| 国产精品美女久久久久久久网站| 91麻豆精品秘密| 性做久久久久久免费观看| 日韩欧美一区二区视频| 国产盗摄一区二区| 亚洲一二三四在线观看| 日韩一卡二卡三卡四卡| 成人福利在线看| 日精品一区二区| 国产偷国产偷亚洲高清人白洁| 91色|porny| 蜜桃91丨九色丨蝌蚪91桃色| 国产三区在线成人av| 色婷婷久久久亚洲一区二区三区| 日韩av在线免费观看不卡| 国产日韩欧美一区二区三区综合| 在线观看日韩国产| 国产电影精品久久禁18| 婷婷夜色潮精品综合在线| 国产清纯在线一区二区www| 欧美日韩成人激情| 91在线观看免费视频| 久久9热精品视频| 夜夜嗨av一区二区三区网页| 欧美精品一区二区在线观看| 91黄色激情网站| 国产高清在线精品| 日韩精品欧美精品| 亚洲黄色片在线观看| 欧美激情一区不卡| 欧美成人激情免费网| 欧美日韩视频不卡| 一本一本大道香蕉久在线精品| 久88久久88久久久| 亚洲国产美女搞黄色| 亚洲国产成人在线| 欧美mv日韩mv国产网站app| 欧美影院精品一区| 91网址在线看| www.亚洲免费av| 国产.欧美.日韩| 精品一区二区三区久久久| 亚洲第四色夜色| 一区二区不卡在线播放 | www国产成人| 欧美日韩一级二级三级| 91网上在线视频| 91性感美女视频| 波多野结衣一区二区三区| 国产成人亚洲综合a∨猫咪| 蜜桃免费网站一区二区三区| 亚洲成av人影院| 亚洲成人综合在线| 亚洲愉拍自拍另类高清精品| 亚洲精品自拍动漫在线| 日韩码欧中文字| 亚洲精品中文在线影院| 亚洲黄色免费电影| 亚洲一区二区四区蜜桃| 亚洲成人手机在线| 午夜伦欧美伦电影理论片| 午夜亚洲福利老司机| 亚洲午夜激情网站| 日韩av一区二区三区四区| 日韩中文字幕一区二区三区| 亚洲国产成人tv| 日韩精品亚洲专区| 蜜桃免费网站一区二区三区| 蜜臀精品久久久久久蜜臀 | 国产亚洲精品久| 国产欧美日韩在线视频| 国产精品久久影院| 亚洲一区在线观看网站| 首页综合国产亚洲丝袜| 日韩1区2区日韩1区2区| 精品中文字幕一区二区| 成人在线综合网站| 97精品视频在线观看自产线路二| 色哟哟亚洲精品| 欧美日本一区二区三区| 精品电影一区二区三区| 国产人久久人人人人爽| 亚洲精品久久嫩草网站秘色| 偷拍亚洲欧洲综合| 韩国女主播成人在线观看| 成人黄色免费短视频| 欧美午夜宅男影院| 久久久午夜精品理论片中文字幕| 国产精品久久免费看| 亚洲国产欧美在线人成| 麻豆精品在线看| 成人h精品动漫一区二区三区| 一本色道**综合亚洲精品蜜桃冫 | 午夜日韩在线电影| 国内精品视频一区二区三区八戒 | 欧美久久婷婷综合色| 久久视频一区二区| 亚洲欧美日韩国产中文在线| 热久久一区二区| 91欧美一区二区| 日韩一区二区视频在线观看| 国产精品人妖ts系列视频| 亚洲国产精品麻豆| 成人aaaa免费全部观看| 欧美一二三区精品| 亚洲少妇屁股交4| 精品一区二区在线看| 色综合久久综合网| 久久久久久久网| 手机精品视频在线观看| 99久久综合精品| 久久综合九色综合欧美就去吻| 亚洲国产精品视频| 99久久精品国产导航| 久久久精品日韩欧美| 亚洲成a人片综合在线| 99久久婷婷国产综合精品 | 亚洲男人的天堂在线aⅴ视频| 久久精品国产亚洲aⅴ| 欧美亚洲一区二区三区四区| 国产免费久久精品| 国产综合久久久久久鬼色| 欧美日韩国产一区二区三区地区| 国产精品久久久久aaaa| 国内精品伊人久久久久影院对白| 在线亚洲免费视频| 欧美激情一区在线| 国产精品影视在线| 精品少妇一区二区三区 | 国产尤物一区二区在线| 欧美电影在线免费观看| 一区二区三区四区激情| 99久久国产免费看| 中文子幕无线码一区tr| 粉嫩av亚洲一区二区图片| 26uuu精品一区二区| 毛片不卡一区二区| 日韩免费一区二区三区在线播放| 婷婷综合五月天| 欧美日韩成人综合天天影院 | 国产视频亚洲色图| 国产精品一二三四五| 精品久久久久一区二区国产| 美女视频黄免费的久久 | 99久久精品久久久久久清纯|