Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version

Counting Lines in a MS VC++ 6.0 project

, 4 Aug 2001
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

Share

About the Author

_declspec

United States United States
No Biography provided

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.1411023.1 | Last Updated 5 Aug 2001
Article Copyright 2001 by _declspec
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid