IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[Fichiers] Lire une ligne spécifique dans un (gros) csv


Sujet :

C++

  1. #41
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    l'import d'un fichier CSV peut se faire assez facilement mais avec certaines contraintes. (je viens de tester)

    donc on lance sqlite3

    > sqlite3 ma_db.db

    sqlite> .separator ||
    sqlite> create table MONCSV (field1 text, field2 text, field3 text);
    sqlite> .import monfichier.csv MONCSV

    et voila le tour est joué
    cependant le header est aussi considéré comme une ligne de data

    pour vraiment bien faire, il faudrait l'importer à la main en lisant le fichier CSV, creer la table apres la premiere ligne, puis faire un insert de chaque ligne (en 1 seule transaction si on veut de la performance)

  2. #42
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    un argv serait a definir comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    char ** argv = new char*[number_of_params];
    for(int i=0;i<number_of_params;i++) {
      argv[i] = new char[STRING_LENGTH];
    }
     
    strncpy( argv[i], "myparam" );
    et ne pas oublier de liberer la memoire a la fin :-)

  3. #43
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 113
    Par défaut
    okay ca fonctionne

    1°/ Finalement la personne qui me gere les simulations peut me les fournir sans les headers

    2°/ j'arrive à créer la db avec la méthode que tu décrivais à qqs diff près:
    J'ouvre une fenetre cmd
    je vais dans le repertoire ou se situe le fichier sqlite3.exe
    je tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:\monrepertoiresqlite >sqlite3 Scen.db
    il crée le ficher scen.db
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlite>create table TotRet (sim integer,param text,t0 real,t1 real,t2 real,t3 real,t4 real,t5 real,t6 real,t7 real,t8 real,t9 real,t10 real,t11 real,t12 real,t13 real,t14 real,t15 real,t16 real,t17 real,t18 real,t19 real,t20 real,t21 real,t22 real,t23 real,t24 real,t25 real,t26 real,t27 real,t28 real,t29 real,t30 real,t31 real,t32 real,t33 real,t34 real,t35 real,t36 real,t37 real,t38 real,t39 real,t40 real,t41 real,t42 real,t43 real,t44 real,t45 real,t46 real,t47 real,t48 real,t49 real,t50 real,t51 real,t52 real,t53 real,t54 real,t55 real,t56 real,t57 real,t58 real,t59 real,t60 real,t61 real,t62 real,t63 real,t64 real,t65 real,t66 real,t67 real,t68 real,t69 real,t70 real,t71 real,t72 real,t73 real,t74 real,t75 real,t76 real,t77 real,t78 real,t79 real,t80 real,t81 real,t82 real,t83 real,t84 real,t85 real,t86 real,t87 real,t88 real,t89 real,t90 real,t91 real,t92 real,t93 real,t94 real,t95 real,t96 real,t97 real,t98 real,t99 real,t100 real,t101 real,t102 real,t103 real,t104 real,t105 real,t106 real,t107 real,t108 real,t109 real,t110 real,t111 real,t112 real,t113 real,t114 real,t115 real,t116 real,t117 real,t118 real,t119 real,t120 real,t121 real,t122 real,t123 real,t124 real,t125 real,t126 real,t127 real,t128 real,t129 real,t130 real,t131 real,t132 real,t133 real,t134 real,t135 real,t136 real,t137 real,t138 real,t139 real,t140 real,t141 real,t142 real,t143 real,t144 real,t145 real,t146 real,t147 real,t148 real,t149 real,t150 real,t151 real,t152 real,t153 real,t154 real,t155 real,t156 real,t157 real,t158 real,t159 real,t160 real,t161 real,t162 real,t163 real,t164 real,t165 real,t166 real,t167 real,t168 real,t169 real,t170 real,t171 real,t172 real,t173 real,t174 real,t175 real,t176 real,t177 real,t178 real,t179 real,t180 real,t181 real,t182 real,t183 real,t184 real,t185 real,t186 real,t187 real,t188 real,t189 real,t190 real,t191 real,t192 real,t193 real,t194 real,t195 real,t196 real,t197 real,t198 real,t199 real,t200 real,t201 real,t202 real,t203 real,t204 real,t205 real,t206 real,t207 real,t208 real,t209 real,t210 real,t211 real,t212 real,t213 real,t214 real,t215 real,t216 real,t217 real,t218 real,t219 real,t220 real,t221 real,t222 real,t223 real,t224 real,t225 real,t226 real,t227 real,t228 real,t229 real,t230 real,t231 real,t232 real,t233 real,t234 real,t235 real,t236 real,t237 real,t238 real,t239 real,t240 real);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlite>.import totalReturn.csv TotRet
    Si je fais après un select * from totret il m'affiche un truc à la matrix => ca fonctionne... ;-)


    3°/ dans visual studio je tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include <iostream>
    #include "sqlite3.h"
     
    static int callback(void *NotUsed, int argc, char **argv, char **azColName){
      int i;
      for(i=0; i<argc; i++){
        printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
      }
      printf("\n");
      return 0;
    }
     
    void main()
    {
      sqlite3 *db;
      char *zErrMsg = 0;
      int rc;
     
      //if( argc!=3 ){
      //  fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
      //  exit(1);
      //}
      //rc = sqlite3_open(argv[1], &db);
     
      rc = sqlite3_open("Scen.db", &db);
      if( rc ){
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        sqlite3_close(db);
        //exit(1);
      }
     
      rc = sqlite3_exec(db, "select * from totret", callback, 0, &zErrMsg);
      if( rc!=SQLITE_OK ){
        fprintf(stderr, "SQL error: %s\n", zErrMsg);
        sqlite3_free(zErrMsg);
      }
      sqlite3_close(db);
      //return 0;
     
    	//insert();
    	//select();
    }

    qui compile

    MAIS le résultat de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rc = sqlite3_exec(db, "select * from totret", callback, 0, &zErrMsg);
    donne 1 et donc ca foire...

  4. #44
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par dhoorens Voir le message
    okay ca fonctionne

    1°/ Finalement la personne qui me gere les simulations peut me les fournir sans les headers
    Elle ne pourrait pas fournir une db aussi plutot que de devoir l'importer?

  5. #45
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 113
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Elle ne pourrait pas fournir une db aussi plutot que de devoir l'importer?
    snifff non...Ca sort d'un logiciel spécifique pour lequel on a la main que sur les outputs... style le csv avec la premiere colonne ou avec les headers ou non... Rien de plus...


    Et puis c'aurait été trop simple..:-)

  6. #46
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    ok donc j'ai refais ce que tu as fais, et chez moi ca marche !
    bonne nouvelle donc.

    je pense juste que tu as mis le chemin de la DB en relatif, donc le programme qui est generé par default dans "debug" ou dans "release" ne va pas trouver ta DB... en tous les cas moi j'ai mis le chemin en absolue pour debugger:
    "C:/mydb.db"

    edit: par default je pense que si sqlite ne trouve pas la DB, il la créée automatiquement.

    je pense que tu as bon pour le moment donc :-D

    edit: j'insiste ... tiens nous au courant le plus souvent possible

  7. #47
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 113
    Par défaut
    Citation Envoyé par epsilon68 Voir le message

    edit: j'insiste ... tiens nous au courant le plus souvent possible
    Je n'y manquerai pas

  8. #48
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 113
    Par défaut
    okay ce fut dur mais ca marche...
    Effectivement le coup du chemin est important et surtout le coup du c:/base.db au lieu de c:\base.db


    Ca fonctionne et il m'affiche sur une requete du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select sim, t1 from totret where sim =1
    les résultats en console:

    sim = 1
    t1 = 0.0345

    Donc ca fonctionne et vite en plus :-)

    PAr contre ca passe par la fonction callback qui me semble être assez obscure
    Est ce que je suis obligé de passer par ce truc?

  9. #49
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    tirée de la doc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int sqlite3_exec(
      sqlite3*,                                  /* An open database */
      const char *sql,                           /* SQL to be evaluated */
      int (*callback)(void*,int,char**,char**),  /* Callback function */
      void *,                                    /* 1st argument to callback */
      char **errmsg                              /* Error msg written here */
    );
    tu peux donc passer un objet a ta fonction callback,
    pour recuperer les données puis les traiter par après

  10. #50
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 113
    Par défaut
    Citation Envoyé par epsilon68 Voir le message
    tu peux donc passer un objet a ta fonction callback,
    pour recuperer les données puis les traiter par après
    Tu peux me donner un exemple? je comprends pas comment passer l'objet..
    Je voudrais juste récuperer le double correspondant à argv[i]...

    C'est peut etre con mais je vois pas comment..

  11. #51
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    en gros voila l'idée, le code n'est pas du plus beau, on peut faire beaucoup mieux, surtout avec Boost ou Qt mais voila, ca donnera au moins une base:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    #include <iostream>
    #include <vector>
    #include "sqlite3.h"
     
    using namespace std;
     
    class Row
    {
    public:
    	vector<std::string*> columns;
     
    	~Row() {
    		for( int i=0 ; i<columns.size() ; i++) {
    			delete columns[i];
    		}
    	}
     
    };
     
    class ResultSet
    {
    public:
    	vector<Row*> rows;
     
    	~ResultSet() {
    		for( int i=0 ; i<rows.size() ; i++) {
    			delete rows[i];
    		}
    	}
    };
     
     
     
    static int callback(void *userdata, int argc, char **argv, char **azColName){
     
    	ResultSet *resultSet = static_cast<ResultSet*> (userdata);
    	Row *row = new Row;
     
    	for( int i=0; i<argc; i++){
    		row->columns.push_back( argv[i] ? new string(argv[i]) : 0 );
    	}
     
    	resultSet->rows.push_back(row);
    	return 0;
    }
     
     
     
    void main()
    {
      sqlite3 *db;
      char *zErrMsg = 0;
      int rc;
     
      //if( argc!=3 ){
      //  fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
      //  exit(1);
      //}
      //rc = sqlite3_open(argv[1], &db);
     
      rc = sqlite3_open("C:\\mydb.db", &db);
      if( rc ){
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        sqlite3_close(db);
        //exit(1);
      }
     
      ResultSet resultSet;
     
      rc = sqlite3_exec(db, "select * from mycsv", callback, &resultSet, &zErrMsg);
      if( rc!=SQLITE_OK ){
        fprintf(stderr, "SQL error: %s\n", zErrMsg);
        sqlite3_free(zErrMsg);
      }
     
      for( int i=0; i<resultSet.rows.size() ; i++ ) {
    	cout << "row " << i << endl;
    	Row *row = resultSet.rows[i];
    	for ( int j=0; j<row->columns.size() ; j++ ) {
    		if( j>0 ) cout << "|";
    		string *col = row->columns[j];
    		cout << (col?col->c_str():"null");
    	}
    	cout << "\n";
      }
     
      sqlite3_close(db);
      //return 0;
     
    	//insert();
    	//select();
    }

  12. #52
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 113
    Par défaut
    Voila c'est fait...
    Merci à tous et en particulier à Epsilon68 pour l'aide sur le coup du Sqlite

    Ca fonctionne et j'ai un accès qui a l'air d'être en temps constant que je sois à la simulation 1 ou à la simulation 1000.

    Pour aider ceuces qui auraient comme moi qqs difficultés à obtenir la solution, voici du prémaché :-) (en tout cas par rapport au problème initial)

    1/ On va sur www.sqlite.org
    1a/on télécharge le fichier sqlite3.exe (voir section download)
    1b/on télecharge les sources sqlite3.h et sqlite2.cpp



    2/ On transforme son fichier csv en une table d'une db qu'on va créér avec sqlite:
    2a/On ouvre une fenetre command
    2b/on va sur le repertoire ou se trouve sqlite3.exe
    2c/on tape
    2d/Il affiche sqlite>

    2e/on tape
    (si séparateur = ; :-))
    2f/on tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create table TotRet (sim integer,param text,t0 real,t1 real,t2   real,t3 real,t4 real,t5 real,t6 real,t7 real,t8 real,t9 real,t10 real,t11 real,t12 real,t13 real,t14 real,t15 real,t16 real,t17 real,t18 real,t19 real,t20 real,t21 real,t22 real,t23 real,t24 real,t25 real,t26 real,t27 real,t28 real,t29 real,t30 real,t31 real,t32 real,t33 real,t34 real,t35 real,t36 real,t37 real,t38 real,t39 real,t40 real,t41 real,t42 real,t43 real,t44 real,t45 real,t46 real,t47 real,t48 real,t49 real,t50 real,t51 real,t52 real,t53 real,t54 real,t55 real,t56 real,t57 real,t58 real,t59 real,t60 real,t61 real,t62 real,t63 real,t64 real,t65 real,t66 real,t67 real,t68 real,t69 real,t70 real,t71 real,t72 real,t73 real,t74 real,t75 real,t76 real,t77 real,t78 real,t79 real,t80 real,t81 real,t82 real,t83 real,t84 real,t85 real,t86 real,t87 real,t88 real,t89 real,t90 real,t91 real,t92 real,t93 real,t94 real,t95 real,t96 real,t97 real,t98 real,t99 real,t100 real,t101 real,t102 real,t103 real,t104 real,t105 real,t106 real,t107 real,t108 real,t109 real,t110 real,t111 real,t112 real,t113 real,t114 real,t115 real,t116 real,t117 real,t118 real,t119 real,t120 real,t121 real,t122 real,t123 real,t124 real,t125 real,t126 real,t127 real,t128 real,t129 real,t130 real,t131 real,t132 real,t133 real,t134 real,t135 real,t136 real,t137 real,t138 real,t139 real,t140 real,t141 real,t142 real,t143 real,t144 real,t145 real,t146 real,t147 real,t148 real,t149 real,t150 real,t151 real,t152 real,t153 real,t154 real,t155 real,t156 real,t157 real,t158 real,t159 real,t160 real,t161 real,t162 real,t163 real,t164 real,t165 real,t166 real,t167 real,t168 real,t169 real,t170 real,t171 real,t172 real,t173 real,t174 real,t175 real,t176 real,t177 real,t178 real,t179 real,t180 real,t181 real,t182 real,t183 real,t184 real,t185 real,t186 real,t187 real,t188 real,t189 real,t190 real,t191 real,t192 real,t193 real,t194 real,t195 real,t196 real,t197 real,t198 real,t199 real,t200 real,t201 real,t202 real,t203 real,t204 real,t205 real,t206 real,t207 real,t208 real,t209 real,t210 real,t211 real,t212 real,t213 real,t214 real,t215 real,t216 real,t217 real,t218 real,t219 real,t220 real,t221 real,t222 real,t223 real,t224 real,t225 real,t226 real,t227 real,t228 real,t229 real,t230 real,t231 real,t232 real,t233 real,t234 real,t235 real,t236 real,t237 real,t238 real,t239 real,t240 real);
    si 240 colonnes et 2 "indexs"

    2g/on tape
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .import leNomDuFichierCSV.csv LaTable

    3/voila c'est fait le csv est dans le fichier LeNomDeLaDB.db

    4/On ouvre visual studio et on créé un nouveau projet
    4a/On y ajoute sqlite3.h et sqlite3.cpp
    4b/On rajoute le code suivant:

    Fichier.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    #pragma once
    #include <iostream>
    #include <vector>
    #include <string>
    #include <sstream>  
    #include "sqlite3.h"
     
     
    class Row{
    public:
    	std::vector<std::string*> columns;
     	~Row();
    };
     
    class ResultSet{
    public:
    	std::vector<Row*> rows;
     	~ResultSet();
    };
     
    std::string intToString(int i);
    double stringToDouble(std::string str);
     
    static int callback(void *userdata, int argc, char **argv, char **azColName);
    //std::vector<double> query(std::string dbName, std::string tableName, int sim);
    double query(std::string dbName, std::string tableName, int sim, int time);
     
    void main ();

    et le fichier .cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    #include "Interface.h"
    #include <string>
    #include <sstream>
    #include <iostream>
    #include <stdlib.h>
    #include <stdio.h>
    #include <fstream>
    #include <iostream>
     
     
    std::string intToString(int i){    
        std::ostringstream oss;
        oss << i;
    	return oss.str();
    }
     
    double stringToDouble(std::string str){
    	double d ;
    	size_t found = str.find(",");
    	if (found <= str.size())
    		str.replace(found,1, ".");
    	d=strtod( str.c_str(),0 );
    	return d;
    }
     
     
     
     
     
    Row::~Row(){
    	for( int i=0 ; i<columns.size() ; i++) 
    		delete columns[i];
    }
     
    ResultSet::~ResultSet(){
    	for( int i=0 ; i<rows.size() ; i++) 
    		delete rows[i];
    }
     
    static int callback(void *userdata, int argc, char **argv, char **azColName){
    	ResultSet *resultSet = static_cast<ResultSet*> (userdata);
    	Row *row = new Row;
     
    	for( int i=0; i<argc; i++)
    		row->columns.push_back( argv[i] ? new std::string(argv[i]) : 0 );
     
    	resultSet->rows.push_back(row);
    	return 0;
    }
     
    std::vector<double> query(std::string dbName, std::string tableName, int sim){
    	sqlite3* db;
    	std::string sql = "SELECT * FROM " + tableName + " WHERE sim =" + intToString(sim);
    	char *zErrMsg = 0;
    	ResultSet resultSet;
    	std::vector<double> v;
     
    	if (sqlite3_open(dbName.c_str(), &db))
    		sqlite3_close(db);
    	if (sqlite3_exec(db, sql.c_str(), callback, &resultSet, &zErrMsg))
    		sqlite3_free(zErrMsg);
    	Row *row = resultSet.rows[0];
    	for (int i = 2; i <row->columns.size();i++){
    		std::string *col = row->columns[i];
    		v.push_back(stringToDouble(*col));
    	}
    	sqlite3_close(db);
    	return v;
    }
     
    double query(std::string dbName, std::string tableName, int sim, int time){
    	sqlite3* db;
    	std::string sql = "SELECT t" + intToString(time) + " FROM " + tableName + " WHERE sim =" + intToString(sim);
    	char *zErrMsg = 0;
    	ResultSet resultSet;
     
    	if (sqlite3_open(dbName.c_str(), &db))
    		sqlite3_close(db);
    	if (sqlite3_exec(db, sql.c_str(), callback, &resultSet, &zErrMsg))
    		sqlite3_free(zErrMsg);
    	Row *row = resultSet.rows[0];
    	std::string* col = row->columns[0];
     
    	double value = stringToDouble(*col);
    	sqlite3_close(db);
    	return value;
    }
     
     
    void main (){
    	std::cout << query("c:\\LeNomDeLaDB.db", "LaTable", 1,2) << std::endl;
     
    	std::vector<double> v;
    	v = query("c:\\LeNomDeLaDB.db", "LaTable", 1);
    	for (int i = 0; i < v.size(); i++)
    		std::cout << v[i] << std::endl;
     
    }
    et voila ca fonctionne il affiche à l'execution en mode console le résultat

    Merci beaucoup

  13. #53
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    Cool :-)

    et quel est le temps moyen mesuré?

    ps: tu devrais mettre l'index de la simulation en primary key
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create table TotRet (sim integer primary key, ...

  14. #54
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    tu as du feedback apres quelques temps d'utilisation de cette solution ?
    c'est quoi les temps moyens d'acces alors?

  15. #55
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 113
    Par défaut
    Salut j'ai pas eu le temps de tester actuellement, pcq c'est un peu chaud au boulot pour le moment...
    Mais je n'oublie pas...

  16. #56
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par défaut
    alors toujours pas de feedback?
    en utilisation réel ca donne quoi alors?
    avantages? inconvenients? quoi pour faire mieux?

    du feedback !!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. [WM17] Lire une ligne spécifique d'un fichier.
    Par Papach58 dans le forum Windev Mobile
    Réponses: 3
    Dernier message: 11/03/2014, 23h42
  2. Lire une ligne précise dans un fichier de données
    Par IcArnus dans le forum Débuter
    Réponses: 7
    Dernier message: 05/04/2012, 22h25
  3. [Débutant] Lire une ligne spécifique depuis un fichier
    Par Sperafico dans le forum VB.NET
    Réponses: 7
    Dernier message: 27/01/2012, 13h00
  4. Lire une ligne spécifique dans un fichier texte
    Par ZRemi dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/04/2010, 13h58
  5. Lire une ligne précise dans un tableau
    Par kenru dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/12/2009, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo