folder Tahribat.com Forumları
linefolder C - C++
linefolder Ve İlk Proje Gelir...



Ve İlk Proje Gelir...

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    elfkrc
    elfkrc's avatar
    Kayıt Tarihi: 26/Ocak/2010
    Dişi

    NmC bunu yazdı:
    -----------------------------

    bilmece bunu yazdı:
    -----------------------------
    altindaki tum dizin ve dosyalar taranacak
    yeni biri için bu işlem biraz zor gibi.

    -----------------------------

    http://stackoverflow.com/questions/12489/how-do-you-get-a-directory-listing-in-c

    recursive'in ne olduğunu da biliyosa olay çözülür..

    FireX görse şimdi gene dalga geçcek benle :D Ama en temiz yol bu :P


    -----------------------------

    evet evet recursive in mantığını biliyorum hatta geçen sene final sorumuzun biri recursive ile alakalıydı.

    neyse, sağol..

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    bilmece
    bilmece's avatar
    Kayıt Tarihi: 29/Aralık/2009
    Erkek

    NmC bunu yazdı:
    -----------------------------

    bilmece bunu yazdı:
    -----------------------------
    altindaki tum dizin ve dosyalar taranacak
    yeni biri için bu işlem biraz zor gibi.

    -----------------------------

    http://stackoverflow.com/questions/12489/how-do-you-get-a-directory-listing-in-c

    recursive'in ne olduğunu da biliyosa olay çözülür..

    FireX görse şimdi gene dalga geçcek benle :D Ama en temiz yol bu :P


    -----------------------------

    haci bu alt klasörlere inmez ama netten bulduğum bi fonksiyonu veriyim amacı farklıydı biraz değişiklik yaptım büyük küçük harf duyarlı arama işlemi yapabilirsin

    [CODE]

    #include
    #include
    const char *mystristr(const char *haystack, const char *needle)
    {
       if ( !*needle )
       {
          return haystack;
       }
       for ( ; *haystack; ++haystack )
       {
          if ( toupper(*haystack) == toupper(*needle) )
          {
             /*
              * Matched starting char -- loop through remaining chars.
              */
             const char *h, *n;
             for ( h = haystack, n = needle; *h && *n; ++h, ++n )
             {
                if ( toupper(*h) != toupper(*n) )
                {
                   break;
                }
             }
             if ( !*n ) /* matched all of 'needle' to null termination */
             {
                return haystack; /* return the start of the match */
             }
          }
       }
       return 0;
    }
    //--------------------------------------------------------------------------------
    BOOL IsDots(const TCHAR* str)
    {
       if(strcmp(str,".") && strcmp(str,"..")) return FALSE;
       return TRUE;
    }
    //------------------------------------------------------
    BOOL SearchFile_(const TCHAR* sPath,char *SearchName)
    {
       HANDLE hFind;    // file handle
       WIN32_FIND_DATA FindFileData;

       TCHAR DirPath[MAX_PATH];
       TCHAR FileName[MAX_PATH];

       strcpy(DirPath,sPath);
       strcat(DirPath,"\\*");    // searching all files
       strcpy(FileName,sPath);
       strcat(FileName,"\\");

       // find the first file
       hFind = FindFirstFile(DirPath,&FindFileData);
       if(hFind == INVALID_HANDLE_VALUE) return FALSE;
       strcpy(DirPath,FileName);

       bool bSearch = true;
       while(bSearch)
        {    // until we find an entry
          if(FindNextFile(hFind,&FindFileData))
           {
             if(IsDots(FindFileData.cFileName))
                continue;
             strcat(FileName,FindFileData.cFileName);
             if((FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
              { // we have found a directory, recurse
                if(mystristr(FindFileData.cFileName,SearchName)) //duyarli arama mystristr
                   printf("klasor %s\n",FileName);
                SearchFile_(FileName,SearchName);
                strcpy(FileName,DirPath);
              }
             else
              {
                if(mystristr(FindFileData.cFileName,SearchName))  //duyarli arama mystristr
                   printf("Dosya %s\n",FileName);
                strcpy(FileName,DirPath);
              }
           }
          else
           { // no more files there
             if(GetLastError() == ERROR_NO_MORE_FILES)
                bSearch = false;
             else
              {  // some error occurred; close the handle and return FALSE
                FindClose(hFind);
                return FALSE;
              }
             
           }
           
        } 
       FindClose(hFind);                  // close the file handle
       return 0;// RemoveDirectory(sPath);     // remove the empty directory
    }

    int main()
    {
       SearchFile_("C:\\Windows","DosyaAdi.exe");
       getchar();
       return 0;
    }
    [/CODE]

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    guru
    guru's avatar
    Kayıt Tarihi: 30/Mart/2007
    Erkek

    yazdim biseyler. devaminida sen getir. getiremezsen yazarim. acayip canim sklyo zaten :-)

     

    find_replace.h

     

    #ifndef FIND_REPLACE_000
    #define FIND_REPLACE_000
    
    #pragma once
    
    #include 
    #include 
    #include 
    #include 
    
    struct find_replace
    {
    	const _TCHAR *fr_path;
    	const _TCHAR *fr_find;
    	const _TCHAR *fr_replace;
    };
    
    #endif 

     

    stdafx.h

     

    #pragma once
    
    
    #include "find_replace.h"

     

    find_replace.cpp

     

    // find_replace.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    
    #define PRIVATE static
    #define PUBLIC
    #undef MAX_PATH
    #define MAX_PATH 4096
    
    PRIVATE void walk_dir_rec(int (*)(struct find_replace *), struct find_replace *);
    PRIVATE void walk_dir(const _TCHAR *, int (*)(struct find_replace *), struct find_replace *);
    PRIVATE int find_text(struct find_replace *);
    PRIVATE int replace_text(struct find_replace *);
    PRIVATE BOOL check_ext(const _TCHAR *);
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	struct find_replace fr;
    	if (argc < 2) /*parametresiz olmaz.*/
    		return 0;
    	if (!_tcscmp(argv[1], _T("-f")) && argc > 3)/*bul ;-)*/
    	{
    		fr.fr_find = argv[3];
    		walk_dir(argv[2], find_text, &fr);
    	}
    	else if (!_tcscmp(argv[1], _T("-r")) && argc > 4)/*degistir.*/
    	{
    		fr.fr_find = argv[3];
    		fr.fr_replace = argv[4];
    		walk_dir(argv[2], replace_text, &fr);
    	}
    	_getch();
    	return 0;
    }
    
    
    PRIVATE void 
    	walk_dir(const _TCHAR *p, int (*pfn)(struct find_replace *), struct find_replace *pfr)
    {
    	SetCurrentDirectory(p);
    	walk_dir_rec(pfn, pfr);
    }
    
    
    PRIVATE void 
    	walk_dir_rec(int (*pfn)(struct find_replace *), struct find_replace *pfr)
    {
    	HANDLE hWlk;
    	_TCHAR pwCurrent[MAX_PATH];
    	WIN32_FIND_DATA wfd;
    
    	if (GetCurrentDirectory(2048, pwCurrent) < 0)
    		return;
    	
    	if ((hWlk = FindFirstFile(_T("*.*"), &wfd)) == INVALID_HANDLE_VALUE)
    		return;
    
    	do
    	{
    		if ((wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))/*eger giris, bir dizinse*/
    		{
    			if ( /*'.' veya '..' dizin'in kendisine ve bir ustune linkidir;-)*/
    				!_tcscmp(_T("."), wfd.cFileName) ||
    				!_tcscmp(_T(".."), wfd.cFileName)
    				)
    				continue;
    			SetCurrentDirectory(wfd.cFileName);
    			walk_dir_rec(pfn, pfr);
    			SetCurrentDirectory(pwCurrent);
    		}
    		else
    		{
    			if (!check_ext(wfd.cFileName)) /*sadece *.txt uzanti*/
    				continue;
    			pfr->fr_path = wfd.cFileName;
    			pfn(pfr);
    			_tcprintf(_T("%s\n"), wfd.cFileName);
    		}
    
    	} while (FindNextFile(hWlk, &wfd));
    
    	FindClose(hWlk);
    	SetCurrentDirectory(pwCurrent);
    }
    
    
    PRIVATE int find_text(struct find_replace *pfr)
    {
    	FILE *f;
    	if (!(f = _tfopen(pfr->fr_path, _T("r"))))
    		return -1;
    	/********************************************
    	 * burda dosya icinde pfr->fr_find aranicak *
    	 * eger bulunursa ekrana yazdiriilicak.		*
    	 ********************************************/
    
    	fclose(f);
    	return 0;
    }
    
    
    PRIVATE int replace_text(struct find_replace *pfr)
    {
    	FILE *f;
    
    	if (!(f = _tfopen(pfr->fr_path, _T("r"))))
    		return -1;
    	/****************************************************
    	 * burda dosya icinde pfr->fr_find aranicak			*
    	 * eger bulunursa pfr->fr_replace ile degistirilip	*
    	 * dosyaya yazilicak ;-)							*
    	 ****************************************************/
    	fclose(f);
    	return 0;
    }
    
    /*uzanti kontrolu, yalnizca *.txt */
    PRIVATE BOOL check_ext(const _TCHAR *p)
    {
    	int len;
    	_TCHAR buff[5];
    	len = _tcslen(p);
    
    	if (len < 4)
    		return FALSE;
    
    	buff[0] = towlower(*(p + len - 4));
    	buff[1] = towlower(*(p + len - 3));
    	buff[2] = towlower(*(p + len - 2));
    	buff[3] = towlower(*(p + len - 1));
    	buff[4] = _T('\0');
    
    	return !_tcscmp(buff, _T(".txt"));
    }
    

     


    ..
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    elfkrc
    elfkrc's avatar
    Kayıt Tarihi: 26/Ocak/2010
    Dişi

    bilmece ve GrN , teşekkürler, bunları inceleyeceğim..

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    guru
    guru's avatar
    Kayıt Tarihi: 30/Mart/2007
    Erkek

    programin komut satirindan calisma sekli soyle;

    find_replace -f C:\docume~1\Articles\ "Gurhan Polat"
    find_replace -r C:\docume~1\Articles\ "Gurhan Polat" "Baska Biri"

    yaptigi is ise, C:\docume~1\articles\ klasorunu ve alt klasorleri dolasiyor ve *.txt uzantili dosyalarda "Gurhan Polat" yazisini ariyor.[-f icin gosteriyor, -r icin, "Gurhan Polat" yerine "Baska Biri" yazisini basiyor...]

    dosyalari acmak, veriyi cekmek, karsilastirmak sana kaldi. bos biraktigim yerlere yazabilirsin kodunu ;-) hadi kolay gele


    ..
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    KaptanMagaraAdami
    KaptanMagaraAdami's avatar
    Kayıt Tarihi: 30/Mayıs/2009
    Erkek

    evet arkadaşlar ilk projemi almış bulunmaktayım nasıl yapacağım hakkında pek bi fikrim yok programı da tam anlamış değilim açıkçası.. projeyi okur okumaz buraya koştum:)

    Keşke önce www.google.com'a koşup takıldığın yerleri sorsaydın; anladığım kadarıyla bu bir okul projesi ve okul, bir şeyleri öğrenmen için deneme/yanılma yapacağın yegane yerdir. Okuldan bir kere mezun olduktan sonra geri dönüp en başta öğrenmen gereken yerleri asla öğrenme imkanın olmaz.

    Nacizane önerim yap/boz/kır/değiştir; böylece ne yapacağını/ne yapmak istediğini- bir proje nedir? neresinden başlanır? nasıl planlanır? nasıl sonuca varılır? bunları kavramak bence bu programı yazmaktan daha önemli-  tam anla ve ondan sonra takıldığın yerleri sor.

    Üniversiteye giren herkes zaten bir şekilde diplomasını alıyor; ama diploma her kapıyı açmıyor.

    Olayın bir diğer boyutu da burada: Kısaca, iş görüşmesinde kendisine sorulan soruların cevaplarını ubuntuforum'da isteyen elemana bizzat  iş görüşmesini yapan

    kişinin süper cevabı ...

     

    http://ubuntuforums.org/showthread.php?p=5470051#post5470051

    Gavurların dediği gibi: that's my 2 cents.

     

    Kolay gelsin.

     

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Blackfire
    Blackfire's avatar
    Kayıt Tarihi: 06/Temmuz/2008
    Erkek

    anlaşılan bu müride ya bizim sınıftan ya da 2. öğretimden :) proje hakkında soru sormakta benden önce davranmış

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Jilet_Boris
    Jilet_Boris's avatar
    Kayıt Tarihi: 04/Mart/2009
    Erkek

    bende lisede bilişim bölümüne nasıl 3. girdiğimi merak ediyodum, demek böyle öğrenciler sayesindeymiş :| :)

  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    elfkrc
    elfkrc's avatar
    Kayıt Tarihi: 26/Ocak/2010
    Dişi

    Stargazer bunu yazdı:
    -----------------------------

    bende lisede bilişim bölümüne nasıl 3. girdiğimi merak ediyodum, demek böyle öğrenciler sayesindeymiş :| :)


    -----------------------------

    iyi b.k yedin :|

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Blackfire
    Blackfire's avatar
    Kayıt Tarihi: 06/Temmuz/2008
    Erkek

    elfkrc bunu yazdı:
    -----------------------------

    Stargazer bunu yazdı:
    -----------------------------

    bende lisede bilişim bölümüne nasıl 3. girdiğimi merak ediyodum, demek böyle öğrenciler sayesindeymiş :| :)


    -----------------------------

    iyi b.k yedin :|


    -----------------------------

    tuttum yorumu :D

Toplam Hit: 6129 Toplam Mesaj: 26