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

Data modyfikacji pliku

Ostatnio zmodyfikowano 2017-05-24 12:13
Autor Wiadomość
AJOT74
Temat założony przez niniejszego użytkownika
Data modyfikacji pliku
» 2017-05-23 10:57:16
Mam coś takiego:

pliczek="test.txt";
int dane;
ifstream plik;
plik.open( pliczek.c_str() );
GetFileTime( plik, NULL, NULL, dane );
plik.close();

Chcę odczytać datę modyfikacji pliku i z tego co mi się wydaje źle deklaruję zmienną "dane".
Ma ktoś pomysł lub wiedzę jak to ogarnąć?
P-161462
karambaHZP
» 2017-05-23 11:53:03
P-161465
AJOT74
Temat założony przez niniejszego użytkownika
» 2017-05-23 13:08:23
Tyle, że wsDEV C++ oraz Code::Blocks rozsypuje się przy:
#include <strsafe.h>

Pogryzłem to tal:

C/C++
string pliczek, rok, mies, dzien;

FILETIME dane;
SYSTEMTIME danex, daney;
HANDLE hPlik;

pliczek = "test.txt";

hPlik = CreateFile( pliczek.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL );
GetFileTime( hPlik, NULL, NULL, & dane );
CloseHandle( hPlik );
FileTimeToSystemTime( & dane, & daney );
SystemTimeToTzSpecificLocalTime( NULL, & daney, & danex );

printf( "Rok  %d,  Mies.  %d,  Dzien  %d\n", danex.wYear, danex.wMonth, danex.wDay );


/* Dalej chciałem aby ROK, MIESIĄC i DZIEŃ wylądował w oddzielnych zmiennych typu String */
rok =( danex.wYear );

/* I tutaj nastąpił kolejny problem który nawet nie wiem jak zagryść: */

printf( rok.c_str() );

No i wyświetlają się jakieś znaczki zamiast roku w zapisie cyfrowym.

Jak to zrobić, aby pojawił się zapis cyfrowy?
P-161467
karambaHZP
» 2017-05-24 10:47:53
C/C++
#include <Windows.h>
#include <string>
#include <cstdio>
using namespace std;

int main()
{
    wstring pliczek, rok, mies, dzien;
   
    FILETIME dane;
    SYSTEMTIME danex, daney;
    HANDLE hPlik;
   
    pliczek = L"test.txt";
   
    hPlik = CreateFile( pliczek.c_str(), GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL );
    GetFileTime( hPlik, NULL, NULL, & dane );
    CloseHandle( hPlik );
    FileTimeToSystemTime( & dane, & daney );
    SystemTimeToTzSpecificLocalTime( NULL, & daney, & danex );
   
    printf( "Rok  %d,  Mies.  %d,  Dzien  %d\n", danex.wYear, danex.wMonth, danex.wDay );
   
   
    /* Dalej chciałem aby ROK, MIESIĄC i DZIEŃ wylądował w oddzielnych zmiennych typu String */
    rok = std::to_wstring(( danex.wYear ) );
   
    /* I tutaj nastąpił kolejny problem który nawet nie wiem jak zagryść: */
   
    wprintf( rok.c_str() );
}

output:
Rok  2017,  Mies.  5,  Dzien  24
Kompilacja na Visual Studio. Niestety nie znam Dev.
Na temat, różnic w implementacji kompilatora w devie musi wypowiedzieć się ktoś,
kto zna to IDE.

edit: edytowany kod.
P-161508
AJOT74
Temat założony przez niniejszego użytkownika
» 2017-05-24 11:34:39
To mi nie wchodzi, zrobiłem tak:

C/C++
sprintf(( char * ) rok.c_str(), "%d", danex.wYear );
sprintf(( char * ) mies.c_str(), "%d", danex.wMonth );
sprintf(( char * ) dzien.c_str(), "%d", danex.wDay );

-niby działa, ale jak program się kończy to Windows zgłasza błąd.
P-161509
karambaHZP
» 2017-05-24 11:48:02
jak program się kończy to Windows zgłasza błąd.
Komunikat + google.
P-161511
AJOT74
Temat założony przez niniejszego użytkownika
» 2017-05-24 12:13:52
OK, chory Windows 10
P-161515
« 1 »
  Strona 1 z 1