Je bute sur un problème de méthode... et comme il est récurrent, je
préfère avoir l'avis d'éminents spécialistes...
Je n'arrive pas à me représenter - en Perl - l'équivalent d'un fichier
CSV dont les colonnes seraient nommées et dont on pourrait aussi
manipuler les lignes...
Je m'explique :
col.1 col.2 col.3 col.4 col.5
ligne 1 A B C D F
ligne 2 B C D E G
ligne 3 T Z A C X
ligne 4 Z Z Q V B
Les lettres capitales sont des données quelconques, sans dépendances
particulières entre elles, pouvant se répéter.
Je veux pouvoir faire l'équivalent de mettre tout cela dans une table
SQL et manipuler les colonnes ou les lignes...
Par exemple, si la col.1 s'appelle « toto », je veux pouvoir dire
« dans la colonne toto, cherche les motifs truc et sors-moi les lignes
correspondantes ». Bien sûr, on pourrait faire l'équivalent d'une
jointure aussi cela va de soit...
À chaque fois, je pars dans des structures alambiquées (genre hash de
hash) et je m'y perds souvent...
donc deux questions :
1) quelle est la bonne structure ?
2) quel est la démarche intellectuelle pour trouver la solution à tous
les coups ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Mark Clements
Patrice Karatchentzeff wrote:
Salut,
Je bute sur un problème de méthode... et comme il est récurrent, je préfère avoir l'avis d'éminents spécialistes...
Je n'arrive pas à me représenter - en Perl - l'équivalent d'un fichier CSV dont les colonnes seraient nommées et dont on pourrait aussi manipuler les lignes...
Je m'explique :
col.1 col.2 col.3 col.4 col.5
ligne 1 A B C D F ligne 2 B C D E G ligne 3 T Z A C X ligne 4 Z Z Q V B
Les lettres capitales sont des données quelconques, sans dépendances particulières entre elles, pouvant se répéter.
Je veux pouvoir faire l'équivalent de mettre tout cela dans une table SQL et manipuler les colonnes ou les lignes...
Par exemple, si la col.1 s'appelle « toto », je veux pouvoir dire « dans la colonne toto, cherche les motifs truc et sors-moi les lignes correspondantes ». Bien sûr, on pourrait faire l'équivalent d'une jointure aussi cela va de soit...
À chaque fois, je pars dans des structures alambiquées (genre hash de hash) et je m'y perds souvent...
donc deux questions :
1) quelle est la bonne structure ?
2) quel est la démarche intellectuelle pour trouver la solution à tous les coups ?
Ceci n'est pas une réponse directe à ton question, mais:
tu pourrais mettre les données dans une structure "normale", ça veux dire
my $data = [ [ qw( A B C D F ) ], [ qw( B C D E G ) ], [ qw( T Z A C X ) ], [ qw( Z Z Q V B ) ],
]
et utiliser DBD::Sponge pour faire des requêtes.
my $sponge = DBI->connect("dbi:Sponge:","","",{ RaiseError => 1 }); my $sth = $sponge->prepare( $statement, { rows => $data, NAME => qw( toto col2 col3 ) }, );
Moi, je pense que je mettrais les données dans une base SQLite et utiliser DBD::SQLite.
Mark
Patrice Karatchentzeff wrote:
Salut,
Je bute sur un problème de méthode... et comme il est récurrent, je
préfère avoir l'avis d'éminents spécialistes...
Je n'arrive pas à me représenter - en Perl - l'équivalent d'un fichier
CSV dont les colonnes seraient nommées et dont on pourrait aussi
manipuler les lignes...
Je m'explique :
col.1 col.2 col.3 col.4 col.5
ligne 1 A B C D F
ligne 2 B C D E G
ligne 3 T Z A C X
ligne 4 Z Z Q V B
Les lettres capitales sont des données quelconques, sans dépendances
particulières entre elles, pouvant se répéter.
Je veux pouvoir faire l'équivalent de mettre tout cela dans une table
SQL et manipuler les colonnes ou les lignes...
Par exemple, si la col.1 s'appelle « toto », je veux pouvoir dire
« dans la colonne toto, cherche les motifs truc et sors-moi les lignes
correspondantes ». Bien sûr, on pourrait faire l'équivalent d'une
jointure aussi cela va de soit...
À chaque fois, je pars dans des structures alambiquées (genre hash de
hash) et je m'y perds souvent...
donc deux questions :
1) quelle est la bonne structure ?
2) quel est la démarche intellectuelle pour trouver la solution à tous
les coups ?
Ceci n'est pas une réponse directe à ton question, mais:
tu pourrais mettre les données dans une structure "normale", ça veux dire
my $data = [
[ qw( A B C D F ) ],
[ qw( B C D E G ) ],
[ qw( T Z A C X ) ],
[ qw( Z Z Q V B ) ],
]
et utiliser DBD::Sponge pour faire des requêtes.
my $sponge = DBI->connect("dbi:Sponge:","","",{ RaiseError => 1 });
my $sth = $sponge->prepare( $statement,
{ rows => $data,
NAME => qw( toto col2 col3 )
},
);
Moi, je pense que je mettrais les données dans une base SQLite et
utiliser DBD::SQLite.
Je bute sur un problème de méthode... et comme il est récurrent, je préfère avoir l'avis d'éminents spécialistes...
Je n'arrive pas à me représenter - en Perl - l'équivalent d'un fichier CSV dont les colonnes seraient nommées et dont on pourrait aussi manipuler les lignes...
Je m'explique :
col.1 col.2 col.3 col.4 col.5
ligne 1 A B C D F ligne 2 B C D E G ligne 3 T Z A C X ligne 4 Z Z Q V B
Les lettres capitales sont des données quelconques, sans dépendances particulières entre elles, pouvant se répéter.
Je veux pouvoir faire l'équivalent de mettre tout cela dans une table SQL et manipuler les colonnes ou les lignes...
Par exemple, si la col.1 s'appelle « toto », je veux pouvoir dire « dans la colonne toto, cherche les motifs truc et sors-moi les lignes correspondantes ». Bien sûr, on pourrait faire l'équivalent d'une jointure aussi cela va de soit...
À chaque fois, je pars dans des structures alambiquées (genre hash de hash) et je m'y perds souvent...
donc deux questions :
1) quelle est la bonne structure ?
2) quel est la démarche intellectuelle pour trouver la solution à tous les coups ?
Ceci n'est pas une réponse directe à ton question, mais:
tu pourrais mettre les données dans une structure "normale", ça veux dire
my $data = [ [ qw( A B C D F ) ], [ qw( B C D E G ) ], [ qw( T Z A C X ) ], [ qw( Z Z Q V B ) ],
]
et utiliser DBD::Sponge pour faire des requêtes.
my $sponge = DBI->connect("dbi:Sponge:","","",{ RaiseError => 1 }); my $sth = $sponge->prepare( $statement, { rows => $data, NAME => qw( toto col2 col3 ) }, );
Moi, je pense que je mettrais les données dans une base SQLite et utiliser DBD::SQLite.
Mark
Patrice Karatchentzeff
Mark Clements writes:
Patrice Karatchentzeff wrote:
[...]
tu pourrais mettre les données dans une structure "normale", ça veux dire
my $data = [ [ qw( A B C D F ) ], [ qw( B C D E G ) ], [ qw( T Z A C X ) ], [ qw( Z Z Q V B ) ],
]
et utiliser DBD::Sponge pour faire des requêtes.
my $sponge = DBI->connect("dbi:Sponge:","","",{ RaiseError => 1 }); my $sth = $sponge->prepare( $statement, { rows => $data, NAME => qw( toto col2 col3 ) }, );
Moi, je pense que je mettrais les données dans une base SQLite et utiliser DBD::SQLite.
J'y ai songé mais je voudrai plutôt n'utiliser que Perl...
Le module DBD::CSV pourrait répondre à tes besoins : il permet de voir un fichier CSV comme une table et donc d'effectuer des requête SQL dessus. Tu peux également regarder le module DBD::AnyData.
Stéphane
"Patrice Karatchentzeff" a écrit dans le message de news:
Salut,
Je bute sur un problème de méthode... et comme il est récurrent, je préfère avoir l'avis d'éminents spécialistes...
Je n'arrive pas à me représenter - en Perl - l'équivalent d'un fichier CSV dont les colonnes seraient nommées et dont on pourrait aussi manipuler les lignes...
Je m'explique :
col.1 col.2 col.3 col.4 col.5
ligne 1 A B C D F ligne 2 B C D E G ligne 3 T Z A C X ligne 4 Z Z Q V B
Les lettres capitales sont des données quelconques, sans dépendances particulières entre elles, pouvant se répéter.
Je veux pouvoir faire l'équivalent de mettre tout cela dans une table SQL et manipuler les colonnes ou les lignes...
Par exemple, si la col.1 s'appelle « toto », je veux pouvoir dire « dans la colonne toto, cherche les motifs truc et sors-moi les lignes correspondantes ». Bien sûr, on pourrait faire l'équivalent d'une jointure aussi cela va de soit...
À chaque fois, je pars dans des structures alambiquées (genre hash de hash) et je m'y perds souvent...
donc deux questions :
1) quelle est la bonne structure ?
2) quel est la démarche intellectuelle pour trouver la solution à tous les coups ?
Le module DBD::CSV pourrait répondre à tes besoins : il permet de voir un fichier CSV comme une
table et donc d'effectuer des requête SQL dessus. Tu peux également regarder le module DBD::AnyData.
Stéphane
"Patrice Karatchentzeff" <p.karatchentzeff@free.fr> a écrit dans le message de news:
87lkrxywjx.fsf@belledonne.chartreuse.fr...
Salut,
Je bute sur un problème de méthode... et comme il est récurrent, je
préfère avoir l'avis d'éminents spécialistes...
Je n'arrive pas à me représenter - en Perl - l'équivalent d'un fichier
CSV dont les colonnes seraient nommées et dont on pourrait aussi
manipuler les lignes...
Je m'explique :
col.1 col.2 col.3 col.4 col.5
ligne 1 A B C D F
ligne 2 B C D E G
ligne 3 T Z A C X
ligne 4 Z Z Q V B
Les lettres capitales sont des données quelconques, sans dépendances
particulières entre elles, pouvant se répéter.
Je veux pouvoir faire l'équivalent de mettre tout cela dans une table
SQL et manipuler les colonnes ou les lignes...
Par exemple, si la col.1 s'appelle « toto », je veux pouvoir dire
« dans la colonne toto, cherche les motifs truc et sors-moi les lignes
correspondantes ». Bien sûr, on pourrait faire l'équivalent d'une
jointure aussi cela va de soit...
À chaque fois, je pars dans des structures alambiquées (genre hash de
hash) et je m'y perds souvent...
donc deux questions :
1) quelle est la bonne structure ?
2) quel est la démarche intellectuelle pour trouver la solution à tous
les coups ?
Le module DBD::CSV pourrait répondre à tes besoins : il permet de voir un fichier CSV comme une table et donc d'effectuer des requête SQL dessus. Tu peux également regarder le module DBD::AnyData.
Stéphane
"Patrice Karatchentzeff" a écrit dans le message de news:
Salut,
Je bute sur un problème de méthode... et comme il est récurrent, je préfère avoir l'avis d'éminents spécialistes...
Je n'arrive pas à me représenter - en Perl - l'équivalent d'un fichier CSV dont les colonnes seraient nommées et dont on pourrait aussi manipuler les lignes...
Je m'explique :
col.1 col.2 col.3 col.4 col.5
ligne 1 A B C D F ligne 2 B C D E G ligne 3 T Z A C X ligne 4 Z Z Q V B
Les lettres capitales sont des données quelconques, sans dépendances particulières entre elles, pouvant se répéter.
Je veux pouvoir faire l'équivalent de mettre tout cela dans une table SQL et manipuler les colonnes ou les lignes...
Par exemple, si la col.1 s'appelle « toto », je veux pouvoir dire « dans la colonne toto, cherche les motifs truc et sors-moi les lignes correspondantes ». Bien sûr, on pourrait faire l'équivalent d'une jointure aussi cela va de soit...
À chaque fois, je pars dans des structures alambiquées (genre hash de hash) et je m'y perds souvent...
donc deux questions :
1) quelle est la bonne structure ?
2) quel est la démarche intellectuelle pour trouver la solution à tous les coups ?
tu pourrais mettre les données dans une structure "normale", ça veux dire
my $data = [ [ qw( A B C D F ) ], [ qw( B C D E G ) ], [ qw( T Z A C X ) ], [ qw( Z Z Q V B ) ],
]
et utiliser DBD::Sponge pour faire des requêtes.
my $sponge = DBI->connect("dbi:Sponge:","","",{ RaiseError => 1 }); my $sth = $sponge->prepare( $statement, { rows => $data, NAME => qw( toto col2 col3 ) }, );
Moi, je pense que je mettrais les données dans une base SQLite et utiliser DBD::SQLite.
J'y ai songé mais je voudrai plutôt n'utiliser que Perl...
En fait, c'est plutot dans l'esprit perl d'eviter de reinventer la roue, et donc d'utiliser des modules standard.
En terme de fonctionnalite, tu es bien parti pour reinventer un bout de SQL plus les structures de donnees sous-jacentes.
Soit tu ne separes pas representation des donnees et manipulation, et tu vas reinventer certains modules antiques peu employes ces jours-ci.
Soit tu separes, et vas immanquablement reinventer DBI + une base de donnees. DBD::Sponge etant sans doute l'exemple le plus leger (pas forcement approprie).
Si tu veux vraiment faire du CSV, DBD::CSV existe.
Pour la lecture des CSV, DBI-like, il y a Text-RecordParser, qui est relativement simple et comprehensible...
In article <878xnvye0a.fsf@belledonne.chartreuse.fr>,
Patrice Karatchentzeff <p.karatchentzeff@free.fr> wrote:
Mark Clements <mark.clementsREMOVETHIS@wanadoo.fr> writes:
Patrice Karatchentzeff wrote:
[...]
tu pourrais mettre les données dans une structure "normale", ça veux dire
my $data = [
[ qw( A B C D F ) ],
[ qw( B C D E G ) ],
[ qw( T Z A C X ) ],
[ qw( Z Z Q V B ) ],
]
et utiliser DBD::Sponge pour faire des requêtes.
my $sponge = DBI->connect("dbi:Sponge:","","",{ RaiseError => 1 });
my $sth = $sponge->prepare( $statement,
{ rows => $data,
NAME => qw( toto col2 col3 )
},
);
Moi, je pense que je mettrais les données dans une base SQLite et
utiliser DBD::SQLite.
J'y ai songé mais je voudrai plutôt n'utiliser que Perl...
En fait, c'est plutot dans l'esprit perl d'eviter de reinventer la roue,
et donc d'utiliser des modules standard.
En terme de fonctionnalite, tu es bien parti pour reinventer un bout de
SQL plus les structures de donnees sous-jacentes.
Soit tu ne separes pas representation des donnees et manipulation, et
tu vas reinventer certains modules antiques peu employes ces jours-ci.
Soit tu separes, et vas immanquablement reinventer DBI + une base de donnees.
DBD::Sponge etant sans doute l'exemple le plus leger (pas forcement approprie).
Si tu veux vraiment faire du CSV, DBD::CSV existe.
Pour la lecture des CSV, DBI-like, il y a Text-RecordParser, qui est
relativement simple et comprehensible...
tu pourrais mettre les données dans une structure "normale", ça veux dire
my $data = [ [ qw( A B C D F ) ], [ qw( B C D E G ) ], [ qw( T Z A C X ) ], [ qw( Z Z Q V B ) ],
]
et utiliser DBD::Sponge pour faire des requêtes.
my $sponge = DBI->connect("dbi:Sponge:","","",{ RaiseError => 1 }); my $sth = $sponge->prepare( $statement, { rows => $data, NAME => qw( toto col2 col3 ) }, );
Moi, je pense que je mettrais les données dans une base SQLite et utiliser DBD::SQLite.
J'y ai songé mais je voudrai plutôt n'utiliser que Perl...
En fait, c'est plutot dans l'esprit perl d'eviter de reinventer la roue, et donc d'utiliser des modules standard.
En terme de fonctionnalite, tu es bien parti pour reinventer un bout de SQL plus les structures de donnees sous-jacentes.
Soit tu ne separes pas representation des donnees et manipulation, et tu vas reinventer certains modules antiques peu employes ces jours-ci.
Soit tu separes, et vas immanquablement reinventer DBI + une base de donnees. DBD::Sponge etant sans doute l'exemple le plus leger (pas forcement approprie).
Si tu veux vraiment faire du CSV, DBD::CSV existe.
Pour la lecture des CSV, DBI-like, il y a Text-RecordParser, qui est relativement simple et comprehensible...