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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? cssc.cpp

?? LINUX平臺(tái)上的COBOL源程序的STEP數(shù)統(tǒng)計(jì)
?? CPP
字號(hào):
#include "cssc.h"

int main(int argc, char *argv[])
{
	int intFind;
	char *strFullPath;
	char *strBaseDir;
	char *strFile;
	int nFiles;
	int nDetail;
	CountItem clsCISum;

	LoadCommand();
	nDetail = 0;
	nCMDT = 0;
	if (argc < 2)
	{
		ExportHelpInfo();
		return 1;
	}
	if (strcmp(argv[1],"-s") != 0)
		nDetail = 0;
	else
		nDetail = 1;
	try
	{
		ExportCopyRight();
		nFiles = 0;
		for(int i = 1 + nDetail; i < argc; i++)
		{
			nFiles++;
			strFile = canonicalize_file_name(argv[i]);
			SRCCount scCount(strFile,nFiles);
			scCount.ShowCountInfo(nDetail);
		}
		if (nFiles < 1)
		{
			SetConsoleColor(cscRed);
			cout << "File [" << argv[1] << "] Not Found!" << endl;
			SetConsoleColor(cscNormal);
			return 6;
		}
		if (nFiles > 1)
		{

			ShowSumInfo(nDetail);
		}
	}
	catch (ios_base::failure& var)
	{
		cout << var.what();
	}
	return 0 ;
}


void ExportHelpInfo()
{
		ExportCopyRight();
		SetConsoleColor(cscHelp);
		cout << "Command Format : CSSC [-s] Target-file-name-group" << endl;
		cout << "                 -s                     : Show Detail Information" << endl;
		cout << "                 Target-file-name-group : COBOL Source File(s)" << endl;
//		SetConsoleColor(7);
}

void ExportCopyRight()
{
		SetConsoleColor(cscNormal);
		cout << "==================================================================================" << endl;
		SetConsoleColor(cscCopy);
		cout << "COBOL SOURCE STEP COUNT (ver 0.3)";
		cout << "                  Copyright (c) Sheng Guangli " << endl;
		cout << "                                                    E-MAIL : bullsgl@gmail.com " << endl;
//		cout << "                                                 HP-URL : http://www.clily.net " << endl; 
		SetConsoleColor(cscNormal);
		cout << "----------------------------------------------------------------------------------" << endl;
}

void SetConsoleColor(int nColor)
{
	cout << "\033[" << nColor << "m";
}


CountItem::CountItem()
{
	nALL = 0;
	nVALID = 0;
	nCOMM = 0;
	nCMD =0;
}

SRCCount::SRCCount(char *strFile,int nFiles)
{
	for(int i=0; i < COMMAND_NUM; i++)
	{
		nCMD[i] = 0;
	}
	clsCI.nCMD = 0;
	nFileNo = nFiles;
	ifsSRC.open(strFile,ios_base::in);
	if (!ifsSRC)
	{
		SetConsoleColor(cscRed);
		cout << "Source File [" << strFile << "] Open Failed!" << endl;
		return;
	}
	if (!ifsSRC.is_open())
	{
		SetConsoleColor(cscRed);
		cout << "Source File [" << strFile << "] Open Failed!" << endl;
		return;
	}

	SetConsoleColor(cscName);
	cout << nFileNo << ". Source File : " << strFile << endl;
	blDiv = false;
	blPGID = false;
	strPGID = "";
	CountStep();
	ifsSRC.close();
}

void SRCCount::CountStep()
{
	string strLine;
	int nPos;
	while (std::getline(ifsSRC,strLine))
	{
		clsCI.nALL++;
		if(!blPGID)
		{
			nPos = strLine.find("       PROGRAM-ID.",0);
			if (nPos == 0)
			{
				strPGID = strLine.substr(18,strLine.size() - 18);
				strPGID = TrimSpace(strPGID,8);
				if (strPGID[strPGID.size() - 1] == '.')
				{
					strPGID.erase(strPGID.size() - 1,1);
				}
				blPGID = true;
			}
		}
		if(!blDiv)
		{
			nPos = strLine.find("       PROCEDURE ",0);
			if (nPos == 0)
			{
				strLine = strLine.substr(16,strLine.size() - 16);
				strLine = TrimSpace(strLine,0);
				nPos = strLine.find("DIVISION",0);
				if (nPos == 0)
				{
					blDiv = true;
				}
			}
		}
		if(strLine.size() > 6)
		{
			if(strLine[6] == '*' || strLine[6] == 'D')
			{
				clsCI.nCOMM++;
				if(blDiv)
				{
					clsDivCI.nCOMM++;
				}
			}
			else
			{
				strLine = TrimSpace(strLine,0);
				if(strLine.size() == 0)
				{
					clsCI.nCOMM++;
					if(blDiv)
					{
						clsDivCI.nCOMM++;
					}
				}
				else
				{
					clsCI.nVALID++;
					if(blDiv)
					{
						clsDivCI.nVALID++;
						for(int nIdx = 0; nIdx < COMMAND_NUM; nIdx++)
						{
							nPos = strLine.find(strCMD[nIdx],0);
							if (nPos == 0)			
							{
								if(strLine.size() > strCMD[nIdx].size())
								{
									if(strLine[strCMD[nIdx].size()] == ' ' || strLine[strCMD[nIdx].size()] == '.')
									{
										nCMD[nIdx]++;
										clsCI.nCMD++;
									}
									break;
								}
								else
								{
									nCMD[nIdx]++;
									clsCI.nCMD++;
									break;
								}
							}
						}
					}
				}
			}
		}
		else
		{
			clsCI.nCOMM++;
			if(blDiv)
			{
				clsDivCI.nCOMM++;
			}
		}
		if(clsCI.nALL >= 65535)
		{
			SetConsoleColor(cscRed);
			cout << "File Lines Too Large!" << endl;
			SetConsoleColor(cscNormal);
			break;
		}
	}
}

SRCCount::~SRCCount()
{
	SetConsoleColor(cscNormal);
	cout << "----------------------------------------------------------------------------------" << endl;
}


string TrimSpace(string strValue,int nWidth)
{
	unsigned int nPos, nSize;
	for (nPos = 0; nPos < strValue.size(); nPos++)
	{
		if (strValue[nPos] != ' ')
		{
			break;
		}
	}
	if (nPos > 0)
	{
		strValue = strValue.substr(nPos,strValue.size() - nPos);
	}
	nPos = strValue.size() - 1; 
	while (nPos > 0 || nPos == 0)
	{
		if (strValue[nPos] != ' ')
		{
			break;
		}
		nPos--;
	}
	strValue = strValue.substr(0,nPos + 1);
	while (strValue.size() < nWidth)
	{
		strValue.append(" ");	
	}
	return strValue;
}

string FormatNumber(int nNumber,int nWidth)
{
	char strBuff[20];
	string strValue;
	unsigned int nLoop;
	nLoop = 1;
	sprintf(strBuff,"%d",nNumber);
	strValue = string(strBuff);
	while (strValue.size() > nLoop * 4 - 1)
	{
		strValue.insert(strValue.size() - nLoop * 4 + 1,",");
		nLoop++;
	}
	while (strValue.size() < nWidth)
	{
		strValue.insert(0," ");	
	}
	return strValue;
}

void SRCCount::ShowCountInfo(int nDetail)
{
	int nOut;
	SetConsoleColor(cscName);
	cout << "PG-ID = ";
	SetConsoleColor(cscValue);
	cout << strPGID;
	SetConsoleColor(cscName);
	cout << "  ALL = ";
	SetConsoleColor(cscValue);
	cout << FormatNumber(clsCI.nALL,6);
	SetConsoleColor(cscName);
	cout << "  VALID = ";
	SetConsoleColor(cscValue);
	cout << FormatNumber(clsCI.nVALID,6);
	SetConsoleColor(cscName);
	cout << "  COMMENT = ";
	SetConsoleColor(cscValue);
	cout << FormatNumber(clsCI.nCOMM,6);
	SetConsoleColor(cscName);
	cout << "  COMMAND = ";
	SetConsoleColor(cscValue);
	cout << FormatNumber(clsCI.nCMD,6) << endl;
	clsSum.nALL += clsCI.nALL;
	clsSum.nVALID += clsCI.nVALID;
	clsSum.nCOMM += clsCI.nCOMM;
	clsSum.nCMD += clsCI.nCMD;

	if(nDetail > 0)
	{
		string strSpace = "";
		while (strSpace.size() < strPGID.size() + 4)
			strSpace.append(" ");
		SetConsoleColor(cscName);
		cout << strSpace << "PROCEDURE DIVISION";
		cout << " (VALID = ";
		SetConsoleColor(cscValue);
		cout << FormatNumber(clsDivCI.nVALID,6);
		SetConsoleColor(cscName);
		cout << "  COMMENT = ";
		SetConsoleColor(cscValue);
		cout << FormatNumber(clsDivCI.nCOMM,6);
		SetConsoleColor(cscName);
		cout << ")" << endl;
		clsDivCIs.nVALID += clsDivCI.nVALID;
		clsDivCIs.nCOMM += clsDivCI.nCOMM;
		nOut = 0;
		if(clsCI.nCMD > 0)
		{
			for (int nIdx = 0; nIdx < COMMAND_NUM; nIdx++)
			{
				if(nCMD[nIdx] > 0)
				{
					if(nOut % 4 == 0)
					{
						SetConsoleColor(cscName);
						cout << endl << "    |";
					}
					SetConsoleColor(cscName);
					cout << setfill(' ') << setw(10) << left;
					cout << strCMD[nIdx];
					cout << "- ";
					SetConsoleColor(cscValue);
					cout << FormatNumber(nCMD[nIdx],6);
					SetConsoleColor(cscName);
					cout << "|";
					nOut++;
				}
				nCMDs[nIdx] += nCMD[nIdx];
			}
			cout << endl;
		}
		nCMDT += clsCI.nCMD;
	}
}
void ShowSumInfo(int nDetail)
{
	int nOut;
	SetConsoleColor(cscName + cscRev);
	cout << "All Source Sum :";
	cout << " ALL = ";
	SetConsoleColor(cscValue + cscRev);
	cout << FormatNumber(clsSum.nALL,6);
	SetConsoleColor(cscName + cscRev);
	cout << "  VALID = ";
	SetConsoleColor(cscValue + cscRev);
	cout << FormatNumber(clsSum.nVALID,6);
	SetConsoleColor(cscName + cscRev);
	cout << "  COMMENT = ";
	SetConsoleColor(cscValue + cscRev);
	cout << FormatNumber(clsSum.nCOMM,6);
	SetConsoleColor(cscName + cscRev);
	cout << "  COMMAND = ";
	SetConsoleColor(cscValue + cscRev);
	cout << FormatNumber(clsSum.nCMD,6);
	cout << " ";
	SetConsoleColor(cscNormal);
	cout << endl;
	SetConsoleColor(cscNormal);
	if(nDetail > 0)
	{
		SetConsoleColor(cscName + cscRev);
		cout << "            PROCEDURE DIVISION";
		cout << " (VALID = ";
		SetConsoleColor(cscValue + cscRev);
		cout << FormatNumber(clsDivCIs.nVALID,6);
		SetConsoleColor(cscName + cscRev);
		cout << "  COMMENT = ";
		SetConsoleColor(cscValue + cscRev);
		cout << FormatNumber(clsDivCIs.nCOMM,6);
		SetConsoleColor(cscName + cscRev);
		cout << ")                  ";
		cout << endl;
		SetConsoleColor(cscNormal);
		nOut = 0;
		if(nCMDT > 0)
		{
			for (int nIdx = 0; nIdx < COMMAND_NUM; nIdx++)
			{
				if(nCMDs[nIdx] > 0)
				{
					if(nOut % 4 == 0)
					{
						SetConsoleColor(cscName + cscRev);
						cout << endl << "    |";
					}
					SetConsoleColor(cscName + cscRev);
					cout << setfill(' ') << setw(10) << left;
					cout << strCMD[nIdx];
					cout << "- ";
					SetConsoleColor(cscValue + cscRev);
					cout << FormatNumber(nCMDs[nIdx],6);
					SetConsoleColor(cscName + cscRev);
					cout << "|";
					SetConsoleColor(cscNormal);
					nOut++;
				}
			}
			cout << endl;
		}
	}
	SetConsoleColor(cscNormal);
	cout << "----------------------------------------------------------------------------------" << endl;
}


void LoadCommand()
{
	unsigned int nIndex;
	nIndex = 0;
	strCMD[nIndex] = "ADD";
	nIndex++;
	strCMD[nIndex] = "ALTER";
	nIndex++;
	strCMD[nIndex] = "CALL";
	nIndex++;
	strCMD[nIndex] = "CANCEL";
	nIndex++;
	strCMD[nIndex] = "CLOSE";
	nIndex++;
	strCMD[nIndex] = "COMMIT";
	nIndex++;
	strCMD[nIndex] = "COMPUTE";
	nIndex++;
	strCMD[nIndex] = "CONTINUE";
	nIndex++;
	strCMD[nIndex] = "COPY";
	nIndex++;
	strCMD[nIndex] = "DELETE";
	nIndex++;
	strCMD[nIndex] = "DISABLE";
	nIndex++;
	strCMD[nIndex] = "DISPLAY";
	nIndex++;
	strCMD[nIndex] = "DIVIDE";
	nIndex++;
	strCMD[nIndex] = "ENABLE";
	nIndex++;
	strCMD[nIndex] = "ENTER";
	nIndex++;
	strCMD[nIndex] = "EVALUATE";
	nIndex++;
	strCMD[nIndex] = "EXEC";
	nIndex++;
	strCMD[nIndex] = "EXIT";
	nIndex++;
	strCMD[nIndex] = "GENERATE";
	nIndex++;
	strCMD[nIndex] = "GO";
	nIndex++;
	strCMD[nIndex] = "IF";
	nIndex++;
	strCMD[nIndex] = "INITIATE";
	nIndex++;
	strCMD[nIndex] = "INITIALIZE";
	nIndex++;
	strCMD[nIndex] = "INSPECT";
	nIndex++;
	strCMD[nIndex] = "MERGE";
	nIndex++;
	strCMD[nIndex] = "MOVE";
	nIndex++;
	strCMD[nIndex] = "MULTIPLY";
	nIndex++;
	strCMD[nIndex] = "OPEN";
	nIndex++;
	strCMD[nIndex] = "PERFORM";
	nIndex++;
	strCMD[nIndex] = "READ";
	nIndex++;
	strCMD[nIndex] = "RECEIVE";
	nIndex++;
	strCMD[nIndex] = "RELEASE";
	nIndex++;
	strCMD[nIndex] = "REWRITE";
	nIndex++;
	strCMD[nIndex] = "SEARCH";
	nIndex++;
	strCMD[nIndex] = "SEND";
	nIndex++;
	strCMD[nIndex] = "SET";
	nIndex++;
	strCMD[nIndex] = "SORT";
	nIndex++;
	strCMD[nIndex] = "START";
	nIndex++;
	strCMD[nIndex] = "STOP";
	nIndex++;
	strCMD[nIndex] = "STRING";
	nIndex++;
	strCMD[nIndex] = "SUBTRACT";
	nIndex++;
	strCMD[nIndex] = "TERMINATE";
	nIndex++;
	strCMD[nIndex] = "UNSTRING";
	nIndex++;
	strCMD[nIndex] = "USE";
	nIndex++;
	strCMD[nIndex] = "WRITE";
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线麻豆精品观看| 欧美日韩亚洲另类| 国产精品综合av一区二区国产馆| 亚洲国产精品自拍| 亚洲在线中文字幕| 夜夜爽夜夜爽精品视频| 一区二区三区在线观看网站| 亚洲激情五月婷婷| 亚洲午夜激情网站| 同产精品九九九| 日韩专区中文字幕一区二区| 日本在线播放一区二区三区| 久久精品国产99国产| 久久爱另类一区二区小说| 精品一区二区日韩| 国产精品 欧美精品| 国产精品亚洲午夜一区二区三区| 国产成人精品影院| 北条麻妃一区二区三区| 91捆绑美女网站| 欧洲av一区二区嗯嗯嗯啊| 欧美色综合网站| 欧美大胆一级视频| 国产校园另类小说区| 综合婷婷亚洲小说| 亚洲成人激情自拍| 精品影视av免费| 波波电影院一区二区三区| 在线免费av一区| 日韩欧美一卡二卡| 国产日产欧美一区二区三区| 亚洲免费在线视频| 日本vs亚洲vs韩国一区三区| 国产成人午夜精品影院观看视频| 91网站最新地址| 91麻豆精品国产| 国产网站一区二区| 一个色综合网站| 精油按摩中文字幕久久| a亚洲天堂av| 制服丝袜亚洲播放| 国产欧美日韩不卡免费| 一个色综合网站| 国产一区在线观看视频| 94-欧美-setu| 欧美一级片在线| 中文字幕在线播放不卡一区| 日日骚欧美日韩| 波波电影院一区二区三区| 91.麻豆视频| 国产精品你懂的在线| 日韩精品乱码av一区二区| 国产成人啪午夜精品网站男同| 在线观看一区不卡| 久久综合九色欧美综合狠狠| 一区二区三区在线视频免费 | 午夜视频一区在线观看| 国内精品伊人久久久久av一坑| 日本高清免费不卡视频| 久久综合狠狠综合久久激情| 一区二区三区四区激情| 国产一区二区三区免费看 | 欧美日韩你懂得| 国产日本亚洲高清| 秋霞电影网一区二区| 日本不卡123| 在线影视一区二区三区| 国产蜜臀97一区二区三区| 日韩av一级片| 欧美亚洲禁片免费| 国产精品免费视频观看| 久久精品二区亚洲w码| 欧美日韩免费在线视频| 国产精品久久久久影院老司| 老司机午夜精品99久久| 欧美裸体一区二区三区| 亚洲日本乱码在线观看| 粉嫩高潮美女一区二区三区| 日韩精品一区二区三区在线 | 国产在线精品一区二区 | 亚洲国产精品久久人人爱蜜臀| 懂色av一区二区三区免费观看 | 天天射综合影视| 一本色道a无线码一区v| 国产视频一区二区在线观看| 久久激情五月激情| 欧美老女人在线| 亚洲自拍都市欧美小说| 91浏览器在线视频| 日韩伦理免费电影| 成人久久18免费网站麻豆| 久久精品夜夜夜夜久久| 国内外精品视频| 精品粉嫩超白一线天av| 久久国产夜色精品鲁鲁99| 欧美一级久久久| 免播放器亚洲一区| 欧美一区二区三区男人的天堂| 天天色综合成人网| 9191国产精品| 青娱乐精品在线视频| 538prom精品视频线放| 奇米精品一区二区三区在线观看一| 欧美精品久久一区二区三区 | 欧洲视频一区二区| 亚洲精品视频免费看| 在线免费观看一区| 一区二区三区四区不卡在线| 在线视频亚洲一区| 亚洲视频免费在线观看| 色综合久久精品| 一区二区三区欧美视频| 日本韩国一区二区三区视频| 亚洲一区欧美一区| 欧美日韩精品福利| 日韩国产一二三区| 精品福利av导航| 国产91精品在线观看| 国产精品色哟哟网站| 99精品国产99久久久久久白柏| 中文字幕日本乱码精品影院| 91色porny| 亚洲成av人综合在线观看| 91精品国产免费| 久久成人免费日本黄色| 日本一区二区综合亚洲| 91丨九色丨黑人外教| 亚洲二区视频在线| 日韩一区二区三区电影在线观看| 国产一区二区三区免费看| 国产精品另类一区| 在线观看日韩高清av| 日韩vs国产vs欧美| 久久九九国产精品| 91美女福利视频| 日本va欧美va欧美va精品| 久久久久久久久97黄色工厂| a在线播放不卡| 视频在线观看一区| 欧美大片一区二区| www.成人在线| 五月激情综合婷婷| 久久这里都是精品| 91麻豆精品在线观看| 日本在线播放一区二区三区| 天堂影院一区二区| 久久亚洲一区二区三区明星换脸| 不卡大黄网站免费看| 午夜一区二区三区视频| www欧美成人18+| 色综合久久综合| 精品一区二区三区香蕉蜜桃| 亚洲欧洲日本在线| 91精品国产高清一区二区三区蜜臀| 国产黄色精品视频| 亚洲第四色夜色| 国产欧美一区二区精品久导航| 欧美三区在线观看| 国产成都精品91一区二区三| 亚洲综合网站在线观看| 久久五月婷婷丁香社区| 欧美午夜精品一区二区蜜桃 | 久久综合色8888| 在线亚洲高清视频| 国产精品一二三区| 一级精品视频在线观看宜春院| 久久九九影视网| 欧美一区二区三区色| 色狠狠桃花综合| 国产精品99久| 日韩二区三区四区| 亚洲激情六月丁香| 国产欧美日韩另类视频免费观看| 91精品国产乱| 欧美色精品在线视频| 成人国产精品免费网站| 久久机这里只有精品| 午夜精品久久久久久久蜜桃app | 大胆欧美人体老妇| 热久久久久久久| 亚洲一区二区三区视频在线| 欧美国产精品久久| xvideos.蜜桃一区二区| 欧美一区二区在线观看| 欧美日韩视频专区在线播放| 一本久久精品一区二区| 成人av电影免费在线播放| 国产综合色产在线精品| 美日韩一级片在线观看| 天天影视色香欲综合网老头| 亚洲一区中文在线| 亚洲三级小视频| 国产精品无人区| 国产亚洲成av人在线观看导航 | 国产一区亚洲一区| 精品一区二区三区久久久| 免费人成在线不卡| 五月激情六月综合| 午夜精品福利一区二区三区av| 伊人一区二区三区|