Programming Forums
User Name Password Register
 

RSS Feed
FORUM INDEX | TODAY'S POSTS | UNANSWERED THREADS | ADVANCED SEARCH

Reply
 
Thread Tools Display Modes
Old May 8th, 2007, 4:41 AM   #1
rsnd
Hobbyist Programmer
 
rsnd's Avatar
 
Join Date: Jun 2005
Location: Helltown
Posts: 162
Rep Power: 4 rsnd is on a distinguished road
my personal cd indexer :D

Well, makes a list of all the file names in a cd and then saves them as a text file in a folder so I can use windows text search option to determine where a particular file is

#include "D:\n\n\nWindow\nwindows.h"
#include <windows.h>

nEdit name_textbox;

char tb[5000];
char tx[5000];

class MainWindow: public nWindow {
public:
	void on_open();
	void on_close(){
		terminate();
	}
}main;

#define CONTROL(p,x,y,dx,dy)\
	p.set_dimentions(dx,dy);\
	p.set_position(x,y);\
	controls.add(&p);

nListView file_list;


int i = 0;
void PopulateList(char * dir){

	//MessageBox(0,dir,0,0);

	WIN32_FIND_DATA FindFileData;
	HANDLE hFind = INVALID_HANDLE_VALUE;
	char DirSpec[5000];  // directory specification
	DWORD dwError;


	strncpy (DirSpec, dir, strlen(dir)+1);
	strncat (DirSpec, "\\*", 3);
	


	hFind = FindFirstFile(DirSpec, &FindFileData);

	

	if (hFind == INVALID_HANDLE_VALUE)    {
		char xxx[555];

		wsprintf(xxx, "Error %i", GetLastError());
		MessageBox(0,xxx,dir,0);

		//N_WINDOW_DEBUG();
     
	} else {

		if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){
			if (strcmp(FindFileData.cFileName,".")!=0 && strcmp(FindFileData.cFileName,"..")!=0){
				file_list.add_row(FindFileData.cFileName,i++);
				
				char child[500];
				wsprintf(child, "%s\\%s", dir,FindFileData.cFileName);
				
				//GetFullPathName(FindFileData.cFileName, 5000, tb, (char**)&tx);
				//MessageBox(0,child,dir,0);
				PopulateList(child);
				//PopulateList(FindFileData.cFileName);
			}
		} else {
			file_list.add_row(FindFileData.cFileName,i++);	
		}
		
			

		while (FindNextFile(hFind, &FindFileData) != 0)       {
			
			if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){
				if (strcmp(FindFileData.cFileName,".")==0 || strcmp(FindFileData.cFileName,"..")==0)
					continue;
				char child[500];
				wsprintf(child, "%s\\%s", dir,FindFileData.cFileName);
				
				//GetFullPathName(FindFileData.cFileName, 5000, tb, (char**)&tx);
				
				//MessageBox(0,child,dir,0);
				PopulateList(child);

				//PopulateList(FindFileData.cFileName);
			}

			file_list.add_row(FindFileData.cFileName,i++);
			
		}
    
      dwError = GetLastError();
      FindClose(hFind);
      if (dwError != ERROR_NO_MORE_FILES) 
      {
         N_WINDOW_DEBUG();
      }
   }

}





	  void WriteList(){
		  char fname[500] = "D:\\n\\CDIndexer\\library\\";
		  char buf[500];
		  name_textbox.get_text(buf, 500);
		  strcat(fname, buf);
		  strcat(fname, ".txt");
		  //MessageBox(0,fname,0,0);
		  _lclose(_lcreat(fname, OF_CREATE));
		  HFILE h = _lopen(fname, OF_WRITE);

		  for (int x = 0; x<file_list.length();x++){
			  file_list.get_row(buf, 500, 0, x);
			  strcat(buf, "\r\n");
			  _lwrite(h, buf, strlen(buf));

		  }
		  _lclose(h);

		  //HANDLE h = CreateFile(fname, OF_WRITE, FILE_SHARE_READ, 0, CREATE_NEW|OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
		  //CloseHandle(h);
  }





class asdfasjkdhaksjdhk:public nButton{
	void on_click(){
		char buffer[5000];
		OPENFILENAME ofn;

		ofn.lStructSize = sizeof(ofn);
		ofn.hwndOwner = (HWND)main.get_handle();
		ofn.lpstrFile = buffer;

		ofn.lpstrFile[0] = '\0';
		ofn.nMaxFile = sizeof(buffer);

		ofn.lpstrFilter = "All\0*.*\0";
		ofn.nFilterIndex = 1;
		ofn.lpstrFileTitle = NULL;
		ofn.nMaxFileTitle = 0;
		ofn.lpstrInitialDir = NULL;

		ofn.Flags = OFN_PATHMUSTEXIST | OFN_EXPLORER;

		if (GetOpenFileName(&ofn)==TRUE) {
			//N_WINDOW_DEBUG();

			GetCurrentDirectory(5000, buffer);
			//if (strlen(buffer)==3)
				buffer[2] = 0;
			
			PopulateList(buffer);
			//PopulateList("H:");
			


		}
	}
	
} browse_button;
class asdsdfasdf234: public nButton{
	void on_click(){
		file_list.rows_delete();
	}
} clear_button;

class asdasdasd:public nButton {

	void on_click(){

		WriteList();

	}

	
} add_button;


class asdsdfasdf: public nButton{
	void on_click(){
		main.on_close();
	}		
} quit_button;


void MainWindow::on_open(){

	CONTROL(file_list, 0,150,800,410);

	CONTROL(browse_button, 0,20,200,130);
	CONTROL(add_button, 200,20,200,130);
	CONTROL(clear_button, 400,20,200,130);
	CONTROL(quit_button, 600,20,200,130);

	CONTROL(name_textbox, 0,0,800,20);

	name_textbox.set_text("insert CD title here");
	browse_button.set_text("Browse");
	add_button.set_text("Add");
	clear_button.set_text("Clear");
	quit_button.set_text("Quit");

	file_list.add_column("Filename", 400);
	file_list.add_column("Size", 100);

}

int WinMain(          HINSTANCE hInstance,
			HINSTANCE hPrevInstance,
			LPSTR lpCmdLine,
			int nCmdShow
			){


				main.set_position(0,0);
				main.set_dimentions(800,600);
				main.set_parent(0);
				main.create();
				main.animate();
				return 0;
}
__________________
Spread your wings and fly! Chicken!
rsnd is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread in Forum | Next Thread in Forum »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Selling Personal Projects King Coder's Corner Lounge 6 Jun 12th, 2006 2:54 PM
Protect your personal info peace_of_mind Coder's Corner Lounge 15 Oct 21st, 2005 1:23 AM




DaniWeb IT Discussion Community
All times are GMT -5. The time now is 10:57 PM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC