Click here to Skip to main content
15,895,084 members
Articles / Desktop Programming / MFC

Counting Lines in a MS VC++ 6.0 project

Rate me:
Please Sign up or sign in to vote.
4.33/5 (15 votes)
4 Aug 2001 152.5K   1.9K   33  
A program that counts the lines (source, comments, blank) in every file included in a MS VC++ 6.0 project
// THIS FILE IS PROVIDED FOR INFORMATIONAL PURPOSE ONLY.
// NO COMERCIAL USE!!!
// Information: decl_spec@yahoo.com

#if !defined(AFX_LINECOUNTERDLG_H__05DA685B_0FAC_4317_B64D_85BC97DADAA0__INCLUDED_)
#define AFX_LINECOUNTERDLG_H__05DA685B_0FAC_4317_B64D_85BC97DADAA0__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/////////////////////////////////////////////////////////////////////////////
// CLineCounterDlg dialog

struct compare_struct
{
	compare_struct() : m_filename(NULL), m_total(0), m_source(0), m_comment(0), m_blank(0) {}
	~compare_struct() { delete [] m_filename; m_filename = NULL; }
	char	*m_filename;
	int		m_total;
	int		m_source;
	float	m_source_percent;
	int		m_comment;
	float	m_comment_percent;
	int		m_blank;
	float	m_blank_percent;
};

class CLineCounterDlg : public CDialog
{
public:
	int				m_sorting_column;
	compare_struct	*m_compare_struct;
	int				m_compare_order[5];
private:
	CString m_project;
	CImageList *m_imagelist;

	void OnOK();
	void OnCancel();

	static int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);

// Construction
public:
	CLineCounterDlg(CWnd* pParent = NULL);	// standard constructor
	virtual ~CLineCounterDlg();

// Dialog Data
	//{{AFX_DATA(CLineCounterDlg)
	enum { IDD = IDR_MAINFRAME };
	CEdit	m_LinesTotal;
	CEdit	m_LinesSource;
	CEdit	m_LinesComment;
	CEdit	m_LinesBlank;
	CStatic	m_ProgressLabel;
	CProgressCtrl	m_Progress;
	CEdit	m_ProjectName;
	CListCtrl	m_FileList;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CLineCounterDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	HICON m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CLineCounterDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnFileExit();
	afx_msg void OnColumnclickFilelist(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnFileSelectproject();
	afx_msg void OnFileCount();
	afx_msg void OnClose();
	afx_msg void OnRclickFilelist(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnSourceView();
	afx_msg void OnHelpAbout();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_LINECOUNTERDLG_H__05DA685B_0FAC_4317_B64D_85BC97DADAA0__INCLUDED_)

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions