Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Mały program backup'ujący foldery / kopiowanie plików co tydzień

Ostatnio zmodyfikowano 2014-06-30 19:22
Autor Wiadomość
kafus
Temat założony przez niniejszego użytkownika
[C++] Mały program backup'ujący foldery / kopiowanie plików co tydzień
» 2014-06-30 17:45:06
Witam,

Próbuje napisać mały program, który ma za zadanie kopiować określone foldery (pliki) do innej lokacji co tydzień ( w tym przypadku wybrałem wtorek).

C/C++
//#include <stdafx.h>
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <fstream>


using namespace std;


//tablica z nazwami dni tygodnia
string tydzien[] =
{ "Poniedzialek", "Wtorek", "Sroda", "Czwartek", "Piatek", "Sobota", "Niedziela" };

//tablica z liczba dni od pocz¹tku roku (nieprzestepnego) dla kolejnych miesiecy
int liczbaDni[] =
{ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };

//1 jezeli podany rok jest przestepny,
//0 w przeciwnym wypadku
int przestepny( int rok ) {
    return(( rok % 4 == 0 && rok % 100 != 0 ) || rok % 400 == 0 );
}

//dla podanej daty wyznacza dzien tygodnia
//0 - poniedzia³ek, 1 - wtorek, ... 6 - niedziela
int dzienTygodnia( int dzien, int miesiac, int rok ) {
    int dzienRoku;
    int yy, c, g;
    int wynik;
   
    dzienRoku = dzien + liczbaDni[ miesiac - 1 ];
    if(( miesiac > 2 ) &&( przestepny( rok ) == 1 ) )
         dzienRoku++;
   
    yy =( rok - 1 ) % 100;
    c =( rok - 1 ) - yy;
    g = yy +( yy / 4 );
    wynik =((((( c / 100 ) % 4 ) * 5 ) + g ) % 7 );
    wynik += dzienRoku - 1;
    wynik %= 7;
   
    return wynik;
   
}



int main()
{
    SYSTEMTIME st;
    GetLocalTime( & st );
    int dzienLAST = st.wDay;
    int miesiacLAST = st.wMonth;
    int rokLAST = st.wYear;
   
   
    cout << "Dzisiaj jest: " << dzienLAST << "-" << miesiacLAST << "-" << rokLAST << endl << endl;
   
   
    string tydzien;
    //int m, r, d, wynik;
    /*cout <<"Podaj dzien: ";
    cin >> d;
    cout <<"Podaj miesiac: ";
    cin >> m;
    cout <<"Podaj rok: ";
    cin >> r;
    wynik = dzienTygodnia(d, m, r);
    cout <<endl <<tydzien[wynik]<<endl;
    cin.sync();
    cin.get();
    */
    if( dzienLAST == tydzien[ 1 ] )
    {
        cout << "Dzisiaj jest wtorek- dzien na kopie danych. Prosze czekac." << endl;
       
       
       
       
        cout << "Tworzenie nowego katalogu" << endl;
       
        system( "Mkdir e:\\backup_%date%\\test" );
        cout << "utowrzono nowy katalog" << endl;
       
        system( "xcopy c:\\test e:\\backup_%date%\\test /e" );
       
       
       
        cout << "Tworzenie nowego katalogu" << endl;
       
        system( "Mkdir e:\\backup_%date%\\test2" );
        cout << "utowrzono nowy katalog" << endl;
       
        system( "xcopy c:\\test2 e:\\backup_%date%\\test2 /e" );
       
       
       
       
       
       
       
       
       
        cout << "Gotowe. Mozna zamknac to okno. Milego dnia" << endl;
    }
    else
    {
        cout << "Kopie danych wykonywane sa tylko we wtorki. Mozna zamknac to okno.";
        return 0;
    }
   
    return 0;
}


Zmieniłem kod, który znalazłem gdzieś w internetach.

Problem jest (chyba) tutaj:

C/C++
if( dzienLAST == tydzien[ 1 ] )

Nie umiem ustalić gdzie jest ten Wtorek :) zawsze program odpowiada mi:

C/C++
cout << "Kopie danych wykonywane sa tylko we wtorki. Mozna zamknac to okno.";
P-112995
pekfos
» 2014-06-30 17:53:43
Problem jest (chyba) tutaj:

C/C++
if( dzienLAST == tydzien[ 1 ] )
Ta linia nie ma żadnego sensu. Kompiluje się przez zbieg okoliczności.
P-112997
kafus
Temat założony przez niniejszego użytkownika
» 2014-06-30 18:13:01
Ok. Tak też podejrzewam, ale w takim razie jak "wyciagnąć" Wtorki?
P-113000
pekfos
» 2014-06-30 18:25:30
dzienTygodnia() zwraca 1 dla wtorku.
P-113001
kafus
Temat założony przez niniejszego użytkownika
» 2014-06-30 19:07:09
hmmm... Kombinuje z tym dzienTygodnia(), ale dalej nie wychodzi tak jak bym chciał.
Mógłbyś napisać rozwiązanie?
P-113003
pekfos
» 2014-06-30 19:22:20
C/C++
wynik = dzienTygodnia( d, m, r );
P-113004
« 1 »
  Strona 1 z 1