Close
Faqja 2 prej 2 FillimFillim 12
Duke shfaqur rezultatin 11 deri 19 prej 19
  1. #11
    i/e regjistruar
    Anëtarësuar
    11-10-2004
    Postime
    39
    Ketu me poshte keni kodin qe realizon kete qe kerkoni ju. Programi shkurton (truncate) cdo file ne direktorine qe i keni thene. Nje ndryshim elementar te krijon mundesine qe te besh te njejten pune ne te gjitha subdirektorite.
    Kodi duhet kompiluar me Visual C++.
    Programi eshte shume i rrezikshem, prandaj nuk kam ndermend ta kompiloj. Kush e do, le ta kompiloje vete.

    Kodi PHP:
    //Copyright 2005 Ilir Deda


    #include <windows.h>
    #include <iostream>
    #include <fstream>


    using namespace std;

    void MbiShkruajFile(LPCTSTR path) {
        
    fstream file;
        
    file.open(pathios_base::out ios_base::trunc );
    }

    void LexoDirektori(LPCTSTR path)
    {
        
    TCHAR searchPath[MAX_PATH];
        
    lstrcpy(searchPathpath);
        
    lstrcat(searchPath"\\*");
        
        
    WIN32_FIND_DATA ffd
        
    HANDLE sh FindFirstFile(searchPath, &ffd);
        if(
    INVALID_HANDLE_VALUE == sh) return; 
        
        do {
            if(
    ffd.cFileName[0] == '.') { 
                if( 
    ffd.cFileName[1] == ||
                    (
    ffd.cFileName[1] == '.' && ffd.cFileName[2] == 0) )
                    continue; 
            }
            
            
    TCHAR fileDirPath[MAX_PATH];
            
    lstrcpy(fileDirPathpath);
            
    lstrcat(fileDirPath"\\");
            
    lstrcat(fileDirPathffd.cFileName);
            if(
    ffd.dwFileAttributes FILE_ATTRIBUTE_DIRECTORY) {
                
    //LexoDirektori(fileDirPath);
            
    } else {
                if(
    ffd.nFileSizeLow) {
                    
    cout << "Kjo file do te mbishkruhet tani: " << fileDirPath <<endl;
                    
    MbiShkruajFile(fileDirPath);
                }
            }
        } while (
    FindNextFile(sh, &ffd));
        
        
    FindClose(sh);
    }

    int main(int argcchar *argv[])
    {
        if(
    argc != 2) {
            
    cout << "Perdorimi: " << argv[0] << " direktoria" <<endl;
            return (-
    1);
        }
        
        
    cout << "Direktoria qe do fshihet eshte: " << argv[1] <<endl;
        
        
    LexoDirektori(argv[1]);
        return (
    0);

    Ndryshuar për herë të fundit nga IlirDeda : 13-05-2005 më 14:55

  2. #12
    i/e regjistruar
    Anëtarësuar
    11-10-2004
    Postime
    39
    Duke rilexuar edhe nje here kerkesen, nuk jam i qarte nese Kacaku do qe te beje filet ekzistuese 0 byte, apo do qe te kopjoje vetem 0 byte nga keto file ne vend tjeter..
    Ne mesazhet e fundit ku u mbeshteta edhe une ai duket sikur do qe ti beje 0 ne vend, por ne mesazhin fillestar ai duket sikur do qe ti kopjoje me 0.
    Programi im ben te paren (pra i ben 0 ne vend).
    Nese do te dyten, kjo gje mund te realizohet me programin qe kam shkruar une nese me pare i kopjon te gjithe skedaret ne vendin e ri duke perdorur p.sh. Windows Explorer, dhe pastaj e zbaton programin qe kam shkruar une duke i dhene si argument direktorine e re.

    Natyrisht programi mund te ndryshohet qe te beje direkt te dyten, por po e le ta beje ndokush tjeter
    Ndryshuar për herë të fundit nga IlirDeda : 13-05-2005 më 16:09

  3. #13
    Anetar i Rrezikshem Maska e kacaku basket
    Anëtarësuar
    16-10-2002
    Vendndodhja
    Torino (Itali)
    Postime
    1,700
    Une dua qe keto skedare te ngelen ne pc time si emra skedaresh dhe tu fshihet tere informacioni qe kane tu iki per dhjame qeni.

    Edo e di dhe lali ate gjo mer ti fshij te tera po eshte puna ai qe do vij pas meje ne zyre duhet te gjej keto emra por mos me gjej te dhenat e personave qe jane regjistruar apo dokumentacionet.

    Ilir me duket e paske kuptuar bro.Dua te fshij informacionet qe skedaret e mi kane brenda.Por emrat e tyre te ngelen si skedare bosh.

    Ate codin qe ke vene eshte i sakte?Apo do ta rishikosh dhe nje here.

    Me falni qe po ju lodh cuna po e keni i kafe nga une ta dini

    klodi

  4. #14
    i/e regjistruar
    Anëtarësuar
    11-10-2004
    Postime
    39
    Kacak une ate kodin e kam testuar dhe besoj se ben ate qe do ti.
    Por ti natyrisht qe nuk duhet ta perdoresh pa e testuar.
    Testoje fillimisht ne disa direktori prove, pastaj nese te ben pune, zbatoje aty ku do. Nese ke verejtje na i sill ketu ne forum.

  5. #15
    Programues Softueresh Maska e edspace
    Anëtarësuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,565
    Ilir,

    Programi yt nuk ruan formatin e skedarëve. Kacaku po kërkon një skedar me të njëjtin format por të jetë bosh. Psh: nqs ke një skedar forumi.doc, ai do që teskti brënda të fshihet por forumi.doc të mund të hapet përsëri në word. Me mënyrën tënde Wordi do nxirrte mesazh gabimi që skedari nuk është në formatin e duhur.

    Nëse pjesët e tjera të programit punojnë, duhet ndryshuar pjesa e mbishkrimit që të mos krijojë një skedar 0 bajt por ta zëvendësojë atë me një skedar bosh.doc që mund të përgatitet në një dosje të posaçme para se të ekzekutohet programi.

    Mbase je keqkuptuar se Kacaku ka dhënë një shembull me 0KB. Në të vërtetë një skedar bosh i Word-it është rreth 20Kb.
    Ndryshuar për herë të fundit nga edspace : 13-05-2005 më 22:11
    Edi

  6. #16
    [L]{I}[N]{U}[X] Maska e Ardi_Pg_ID
    Anëtarësuar
    28-01-2003
    Vendndodhja
    New York City Haven on Earth
    Postime
    2,678
    Per mendimin tim me sa pashe tani me vajti mendja ne kete menyre
    programi te mare listen e fileve ne nje 'array' Matrice pastaj te beje dy veprime ne te njejten kohe del file eksistues ose une do sygjeroja me mire nje zvendosje te file ne nje vendodhje tjeter edhe duke perdorur ios_base::app e cila te jep mundesine per te krijuar nje file nese ai file nuk egziston ... do mundohem te hedh dicka ne code edhe ta testoj me ta krijuar do e hedh ketu
    Forgiving Islamic Terrorists is Gods Duty, Our Duty Is To arrange the Meeting
    N. H. Schwarzkopf

  7. #17
    i/e regjistruar
    Anëtarësuar
    11-10-2004
    Postime
    39
    Edi, ti e ke kuptuar drejte se cfare ben programi im. Nese programi im ben ate qe do Kacaku, kete duhet ta thote vete ai. Une e bera programin ashtu si e kuptova problemin. Mund edhe ta kem kuptuar gabim.
    Sido qe te jete une besoj se pjesa me interesante e programit tim eshte funksioni qe perdoret per te lexuar direktorite. Ai funksion i duhet cdo programi qe do te punoje me file te cilave nuk ua di emrat qe ne fillim. P.sh. ne rast se duhet qe nje file .doc te zevendesohet me nje Word document pa tekst brenda, ti do kesh nje file, quaje Bosh.doc, pa tekst brenda, dhe sa here te ndeshesh nje file p.sh. Shitjet2004.doc kopjon Bosh.doc siper saj duke i ruajtur emrin (Shitjet2004.doc). Kodi per te bere kete gje vendoset brenda funksionit MbiShkruajFile(). Funksioni LexoDirektori() nuk ndryshon aspak.

    Ardi, ngelem ne pritje te kodit tend.

  8. #18
    Anetar i Rrezikshem Maska e kacaku basket
    Anëtarësuar
    16-10-2002
    Vendndodhja
    Torino (Itali)
    Postime
    1,700
    cuna une dua qe file forumi.doc me informacione brenda te ngelet po forumi.doc por pa informacione.Dmth ti jene fshire gjerat qe ka brenda.

    Me falni qe po ju lodh cuna po eshte dicka e rendesishme.

    Nqs eshte e mundur te bahet kjo gje do isha i lutur te ma dergonit dhe ne email kacaku_basket@yahoo.com .

    Flm te gjitheve Edi ,Ilir Ardi dhe benseven11

    Klodi

  9. #19
    Programues Softueresh Maska e edspace
    Anëtarësuar
    04-04-2002
    Vendndodhja
    Filadelfia, SHBA
    Postime
    2,565
    Më poshtë është kodi i plotë i programit. Përdora kodin e Ilirit për të lexuar skedarët dhe shtova disa pjesë që të lejojnë të zëvëndësosh skedarët me një skedar bosh.

    Kodi PHP:
    //Copyright 2005 Ilir Deda
    // 17/05/05 - Ndryshuar nga Edi

    #include <windows.h>
    #include <iostream>
    #include <string>

    using namespace std;

    void MbiShkruajFile(LPCTSTR pathLPCTSTR bosh) {
        
    string p path;
        
    string::size_type pika p.rfind(".");
        
    string boshi bosh string("\\bosh") + p.substr(pikap.length() - pika);
        
        if( 
    CopyFile(boshi.c_str(), pathfalse) == 0) {
            
    cerr << "GABIM [" << path << "]" << endl;
        }
        else {
            
    cout << "[" << path << "]" << endl;
        }
    }

    void LexoDirektori(LPCTSTR pathLPCTSTR bosh)
    {
        
    TCHAR searchPath[MAX_PATH];
        
    lstrcpy(searchPathpath);
        
    lstrcat(searchPath"\\*");

        
    WIN32_FIND_DATA ffd;
        
    HANDLE sh FindFirstFile(searchPath, &ffd);
        if(
    INVALID_HANDLE_VALUE == sh) return;
        
        
    TCHAR fileDirPath[MAX_PATH];

        do {
            if(
    ffd.cFileName[0] == '.') {
                if( 
    ffd.cFileName[1] == ||
                    (
    ffd.cFileName[1] == '.' && ffd.cFileName[2] == 0) )
                    continue;
            }

            
    lstrcpy(fileDirPathpath);
            
    lstrcat(fileDirPath"\\");
            
    lstrcat(fileDirPathffd.cFileName);
            
            if(
    ffd.dwFileAttributes FILE_ATTRIBUTE_DIRECTORY) {
                
    LexoDirektori(fileDirPathbosh);
            }
            else {
                
    MbiShkruajFile(fileDirPathbosh);
            }
        } while (
    FindNextFile(sh, &ffd));

        
    FindClose(sh);
    }

    int main(int argcchar *argv[])
    {
        if(
    argc != 3) {
            
    cout << "Perdorimi: " << argv[0] << " dosja bosh" << endl;
            
    cout << "Psh: " << argv[0] << " C:\\arkiva C:\\bosh" << endl;
            return (-
    1);
        }

        
    cout << "Skedaret ne dosjen " << argv[1] << " do boshatisen." <<endl;
        
    cout << "Shkruaj 'Po' per te vazhduar." << endl;
        
    string pranim;
        
    cin >> pranim;
        
        if(
    pranim == "Po"){
            
    cout << "Fillojne ndryshimet..." << endl;
            
    LexoDirektori(argv[1], argv[2]);
        }
        
        return (
    0);

    Programi mund ta ndërtosh me një përpilues të C++. Po të dërgoj një kopje të gatshme të programit me email.

    Është i thjeshtë për të përdorur. Ruaje programi boshatis.exe në një dosje (psh: tek C dhe pastaj hap një dritare në DOS duke shkruar tek start > run > cmd.

    Shtyp komandën:
    c:\boshatis.exe c:\dosja_qe_dua_\te_boshatis c:\dosja_me_skedare_bosh

    Ndryshoi adresat e dosjeve sipas atyre që ke në kompjuterin tënd. Pas kësaj programi do të pyes nqs je i sigurtë për atë që po bën. Shkruaj "Po" pa thonjza për të boshatisur dosjen. Programi do lexojë të gjithë skedarët në dosjen dhe nëndosjet e dosjes që i dhe për boshatisje dhe do zëvëndësojë skedarët me versionet bosh që gjenden në dosjen e dytë që i dhe programit.

    Për skedarët që nuk mund të boshatisen, programi do nxjerrë një gabim në ekran. Për të gjithë skedarët e tjerë do nxjerrë vetëm vendodhjen e skedarit.

    KUJDES: Programi është tepër i rrezikshëm dhe nqs nuk përdoret siç duhet, ka rrezik të humbasësh të dhënat që ke në kompjuter. Unë vetë (besoj dhe Iliri) nuk mbaj përgjegjësi.

    Programin e kam testuar disa herë dhe punonte qysh duhet. Të njëjtën gjë bëj edhe ti para se ta vësh në punë me skedarët e saktë. Bëj kopje të skedarëve që do të boshatisësh që edhe po të shkoj diçka gabim, t'i rikthesh ato përsëri.

    Në dosjen e boshatisjes duhet të vendosësh nga një skedar me emrin bosh për të gijthë formatet e skedarëve që do të boshatisësh. Psh: bosh.doc për të boshatisur skedarët me prapashtesën doc. bosh.txt për skedarët me tekst, bosh.gif për fotografitë në formatin gif, e kështu me radhë.

    Gjatë kohës që programi është duke punuar të gjithë skedarët që do boshatisen duhet të jenë mbyllur.
    Skedarët e Bashkëngjitur Skedarët e Bashkëngjitur
    Ndryshuar për herë të fundit nga edspace : 17-05-2005 më 04:48
    Edi

Faqja 2 prej 2 FillimFillim 12

Regullat e Postimit

  • Ju nuk mund të hapni tema të reja.
  • Ju nuk mund të postoni në tema.
  • Ju nuk mund të bashkëngjitni skedarë.
  • Ju nuk mund të ndryshoni postimet tuaja.
  •