Re: lignes d'un fichier en C ou C++

Page principale

Répondre à ce message
Auteur: anne.guilde@free.fr
Date:  
À: ML Guilde
Sujet: Re: lignes d'un fichier en C ou C++
Le 01/04/2018 à 13:14, anne.guilde@??? a écrit :
> 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
>


suite de mes questions

- Comment faire pour faire du pas à pas (mode debug)?
Il faut recompiler?
Si oui, comment et quel paquet installer?

- C'est du c++ si j'ai bien vu
Le source se trouve ici
https://sourceforge.net/projects/vvvapp/files/VVV/1.3/

J'ai fait des recherches avec ' sql ' dans VVV-1.3-src.
J'en suis arrivée qu'il faut que je modifie dans
VVV-1.3-src/src/data_interface/fb_files.cpp.

Il faudrait tester FILE_DATETIME avant de faire le sql.
Mais comment faire cela en c++

merci
Anne