lignes d'un fichier en C ou C++

トップ ページ

このメッセージに返信
著者: anne.guilde@free.fr
日付:  
To: ML Guilde
題目: lignes d'un fichier en C ou C++
bonjour,

j'ai le message suivant
----
10:43:06: Échec de la récupération de la date du fichier
« /media/anne/e63b0852-e3c8-4690-b779-28a6f785210c/initrd.img » (erreur
2 : Aucun fichier ou dossier de ce type)
10:43:06: Une erreur inattendue est intervenue. En voici la description :

*** IBPP::SQLException ***
Context: Statement::Execute( INSERT INTO FILES (FILE_ID, FILE_NAME,
FILE_EXT, FILE_SIZE, FILE_DATETIME, PATH_FILE_ID, PATH_ID,
FILE_DESCRIPTION) VALUES (941562, 'initrd.img', 'img', 0,
'292278994-08-16 17:47:04', NULL, 70288, NULL) )
Message: isc_dsql_execute2 failed

SQL Message : -413
Overflow occurred during data type conversion.

Engine Code    : 335544334
Engine Message :
conversion error from string "292278994-08-16 17:47:04"
----


Pourquoi cette date "292278994-08-16 17:47:04"?

La date de ce fichier est

lrwxrwxrwx    1 root root    29 juin  21  2017 initrd.img -> 
boot/initrd.img-4.9.0-3-amd64
=> 21 juin 2017


J'ai le source des programmes.

J'ai fait une recherche avec grep sur FILE_DATETIME
----
# grep -ir 'FILE_DATETIME' ../vvv/VVV-1.3-src/
Fichier binaire ../vvv/VVV-1.3-src/VVV.fbk correspondant
../vvv/VVV-1.3-src/src/data_interface/fb_virtual_files.cpp:     
FB_st->Get("FILE_DATETIME", ts);
../vvv/VVV-1.3-src/src/data_interface/fb_files.cpp:    sql += 
wxT("FILE_NAME, FILE_EXT, FILE_SIZE, FILE_DATETIME, PATH_FILE_ID, 
PATH_ID, FILE_DESCRIPTION) VALUES (");
../vvv/VVV-1.3-src/src/data_interface/fb_files.cpp:    sql += 
wxT("FILE_DATETIME = ") + DateTime.Format( wxT("'%Y-%m-%d %H:%M:%S'") ) 
+ wxT(", ") +
../vvv/VVV-1.3-src/src/data_interface/fb_files.cpp:     
FB_st->Get("FILE_DATETIME", ts);
../vvv/VVV-1.3-src/src/data_interface/fb_files.cpp:    sql = wxT("UPDATE 
FILES SET FILE_DATETIME = ") + fdt.Format( wxT("'%Y-%m-%d %H:%M:%S'") ) 
+ wxT(", ");
../vvv/VVV-1.3-src/src/data_interface/virtual_files.cpp:    wxString sql = 
wxT("select virtual_files.file_id, virtual_files.virtual_path_id, 
virtual_files.physical_file_id, virtual_files.virtual_path_file_id, 
files.file_name, files.file_size, files.file_ext, files.file_datetime, 
files.path_id, files.path_file_id, files.file_description ");
../vvv/VVV-1.3-src/src/convert_db_unicode.cpp:     
stIn->Get("FILE_DATETIME", ts);
../vvv/VVV-1.3-src/src/convert_db_unicode.cpp:        sql += wxT("FILE_NAME, 
FILE_EXT, FILE_SIZE, FILE_DATETIME, PATH_FILE_ID, PATH_ID, 
FILE_DESCRIPTION) VALUES (");
../vvv/VVV-1.3-src/VVV.sql:    FILE_DATETIME     TIMESTAMP,
../vvv/VVV-1.3-src/VVV.sql:                insert into FILES( FILE_ID, 
FILE_NAME, FILE_SIZE, FILE_EXT, FILE_DATETIME, PATH_ID )
----


J'ai une recherche dans ce fichier
/vvv/VVV-1.3-src/src/data_interface/fb_files.cpp:
...
        FB_st->Get("FILE_DATETIME", ts);


        DateTime.Set( ts.Day(), (wxDateTime::Month) (wxDateTime::Jan + 
ts.Month() - 1), ts.Year(), ts.Hours(), ts.Minutes(),  ts.Seconds() );
...


Je ne comprends pas vraiment cette syntaxe.

Si quelqu'un pouvait me décortiquer

Merci
Anne