salut je suis entrain d'essayer de faire une filebox (pour choisir un
fichier) qui doit etre multiOS (au moins win macOS et linux)
Et je ne sais pas du tout comment faire pour naviguer dans les
arborescences des différents systemes.
Qu'est ce qu'il y a comme specificité a chacun?
Est ce que les fonctions findfirst et findnext fonctionnent pour tous
ces systemes?
si non est ce qu'il existe des fonction qui marchent pour tous?
Enfin si vous avez des infos, tutoriels, ou mieux si quelqu'un a déja
fait ca et aurais un code a me montrer je suis preneur :-)
Merci d'avance
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
|> >>> Tous les linux utilisent les memes fonctions pour parcourir |> >>> l'arboréscence?
|> >>> et heu c quoi ces fonctions?
|> > Autant que je sache, Linux essaie d'être Posix conforme ici. Selon |> > Posix, les fonctions s'appellent opendir, readdir, rewinddir et |> > closedir. Voir à http://www.unix.org/single_unix_specification/, |> > ou démander dans un groupe Unix pour plus de détails.
|> > Il y a aussi une fonction ftw() (file tree walk), qui pourrait |> > être utile dans certains cas.
|> et pour macOSX ? c pareil non ?
Pour macOSX, je n'ai aucune idée. Je sais que c'est un « Unix », mais je ne sais pas si c'est Open System ou non.
|> Donc j'aurais que deux versions a faire?
À ta place, je chercherais aussi chez Windows. Comme j'ai dit, ça ne m'étonnerait pas qu'il ait aussi des fonctions équivalentes dans une bibliothèque quelque part.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
3dsman <3dsman@free.fr> writes:
|> > 3dsman <3dsman@free.fr> writes:
|> >>> heu g une question subsidiaire:
|> >>> Tous les linux utilisent les memes fonctions pour parcourir
|> >>> l'arboréscence?
|> >>> et heu c quoi ces fonctions?
|> > Autant que je sache, Linux essaie d'être Posix conforme ici. Selon
|> > Posix, les fonctions s'appellent opendir, readdir, rewinddir et
|> > closedir. Voir à http://www.unix.org/single_unix_specification/,
|> > ou démander dans un groupe Unix pour plus de détails.
|> > Il y a aussi une fonction ftw() (file tree walk), qui pourrait
|> > être utile dans certains cas.
|> et pour macOSX ? c pareil non ?
Pour macOSX, je n'ai aucune idée. Je sais que c'est un « Unix », mais je
ne sais pas si c'est Open System ou non.
|> Donc j'aurais que deux versions a faire?
À ta place, je chercherais aussi chez Windows. Comme j'ai dit, ça ne
m'étonnerait pas qu'il ait aussi des fonctions équivalentes dans une
bibliothèque quelque part.
--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
|> >>> Tous les linux utilisent les memes fonctions pour parcourir |> >>> l'arboréscence?
|> >>> et heu c quoi ces fonctions?
|> > Autant que je sache, Linux essaie d'être Posix conforme ici. Selon |> > Posix, les fonctions s'appellent opendir, readdir, rewinddir et |> > closedir. Voir à http://www.unix.org/single_unix_specification/, |> > ou démander dans un groupe Unix pour plus de détails.
|> > Il y a aussi une fonction ftw() (file tree walk), qui pourrait |> > être utile dans certains cas.
|> et pour macOSX ? c pareil non ?
Pour macOSX, je n'ai aucune idée. Je sais que c'est un « Unix », mais je ne sais pas si c'est Open System ou non.
|> Donc j'aurais que deux versions a faire?
À ta place, je chercherais aussi chez Windows. Comme j'ai dit, ça ne m'étonnerait pas qu'il ait aussi des fonctions équivalentes dans une bibliothèque quelque part.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
3dsman
Donc j'aurais que deux versions a faire?
À ta place, je chercherais aussi chez Windows. Comme j'ai dit, ça ne m'étonnerait pas qu'il ait aussi des fonctions équivalentes dans une bibliothèque quelque part.
tu veux dire un truc plus proche de readdir, opendir et closedir que findfirst et findnext?
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
Donc j'aurais que deux versions a faire?
À ta place, je chercherais aussi chez Windows. Comme j'ai dit, ça ne
m'étonnerait pas qu'il ait aussi des fonctions équivalentes dans une
bibliothèque quelque part.
tu veux dire un truc plus proche de readdir, opendir et closedir que
findfirst et findnext?
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
À ta place, je chercherais aussi chez Windows. Comme j'ai dit, ça ne m'étonnerait pas qu'il ait aussi des fonctions équivalentes dans une bibliothèque quelque part.
tu veux dire un truc plus proche de readdir, opendir et closedir que findfirst et findnext?
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
kanze
3dsman wrote in message news:...
Donc j'aurais que deux versions a faire?
À ta place, je chercherais aussi chez Windows. Comme j'ai dit, ça ne m'étonnerait pas qu'il ait aussi des fonctions équivalentes dans une bibliothèque quelque part.
tu veux dire un truc plus proche de readdir, opendir et closedir que findfirst et findnext?
C'est ce que je m'attendais. Mais je crois que je me suis trompé. En fait, Windows supporte bien opendir, readdir et closedir, mais seulement à travers l'Interix sous-système, et non natif.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
3dsman <3dsman@free.fr> wrote in message
news:<mn.90147d4a6182b4dd.9781@free.fr>...
Donc j'aurais que deux versions a faire?
À ta place, je chercherais aussi chez Windows. Comme j'ai dit, ça ne
m'étonnerait pas qu'il ait aussi des fonctions équivalentes dans une
bibliothèque quelque part.
tu veux dire un truc plus proche de readdir, opendir et closedir que
findfirst et findnext?
C'est ce que je m'attendais. Mais je crois que je me suis trompé. En
fait, Windows supporte bien opendir, readdir et closedir, mais seulement
à travers l'Interix sous-système, et non natif.
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
À ta place, je chercherais aussi chez Windows. Comme j'ai dit, ça ne m'étonnerait pas qu'il ait aussi des fonctions équivalentes dans une bibliothèque quelque part.
tu veux dire un truc plus proche de readdir, opendir et closedir que findfirst et findnext?
C'est ce que je m'attendais. Mais je crois que je me suis trompé. En fait, Windows supporte bien opendir, readdir et closedir, mais seulement à travers l'Interix sous-système, et non natif.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
3dsman
vient de nous annoncer :
3dsman wrote in message news:...
Donc j'aurais que deux versions a faire?
À ta place, je chercherais aussi chez Windows. Comme j'ai dit, ça ne m'étonnerait pas qu'il ait aussi des fonctions équivalentes dans une bibliothèque quelque part.
tu veux dire un truc plus proche de readdir, opendir et closedir que findfirst et findnext?
C'est ce que je m'attendais. Mais je crois que je me suis trompé. En fait, Windows supporte bien opendir, readdir et closedir, mais seulement à travers l'Interix sous-système, et non natif.
ok donc a priori c'est le plus simple de faire des fonction avec des #ifdef et readdir, opendir, closedir / findfirst, findnext?! Bon ben je crois que je vais faire ca. en plus c'est pas mal documenté ces apels
Par contre si quelqu'un peut confirmer ou infirmer que macOSX est compatible posx ca m'arrangerais :-)
Merci encore a tout le monde
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
kanze@gabi-soft.fr vient de nous annoncer :
3dsman <3dsman@free.fr> wrote in message
news:<mn.90147d4a6182b4dd.9781@free.fr>...
Donc j'aurais que deux versions a faire?
À ta place, je chercherais aussi chez Windows. Comme j'ai dit, ça ne
m'étonnerait pas qu'il ait aussi des fonctions équivalentes dans une
bibliothèque quelque part.
tu veux dire un truc plus proche de readdir, opendir et closedir que
findfirst et findnext?
C'est ce que je m'attendais. Mais je crois que je me suis trompé. En
fait, Windows supporte bien opendir, readdir et closedir, mais seulement
à travers l'Interix sous-système, et non natif.
ok donc a priori c'est le plus simple de faire des fonction avec des
#ifdef et readdir, opendir, closedir / findfirst, findnext?!
Bon ben je crois que je vais faire ca. en plus c'est pas mal documenté
ces apels
Par contre si quelqu'un peut confirmer ou infirmer que macOSX est
compatible posx ca m'arrangerais :-)
Merci encore a tout le monde
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
À ta place, je chercherais aussi chez Windows. Comme j'ai dit, ça ne m'étonnerait pas qu'il ait aussi des fonctions équivalentes dans une bibliothèque quelque part.
tu veux dire un truc plus proche de readdir, opendir et closedir que findfirst et findnext?
C'est ce que je m'attendais. Mais je crois que je me suis trompé. En fait, Windows supporte bien opendir, readdir et closedir, mais seulement à travers l'Interix sous-système, et non natif.
ok donc a priori c'est le plus simple de faire des fonction avec des #ifdef et readdir, opendir, closedir / findfirst, findnext?! Bon ben je crois que je vais faire ca. en plus c'est pas mal documenté ces apels
Par contre si quelqu'un peut confirmer ou infirmer que macOSX est compatible posx ca m'arrangerais :-)
Merci encore a tout le monde
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
James Kanze
3dsman writes:
|> vient de nous annoncer :
|> ok donc a priori c'est le plus simple de faire des fonction avec des |> #ifdef et readdir, opendir, closedir / findfirst, findnext?!
Seulement si le but est l'obfuscation. Tu fais un fichier .hh avec la définition de la classe, en te servant de l'idiome du pare-feu de compilation, pour que rien de l'implémentation n'y apparaît, et tu fais deux fichiers .cc d'implémentation, un pour Windows, et un pour les Unix. Tu compiles le fichier .cc qui convient au système.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
3dsman <3dsman@free.fr> writes:
|> kanze@gabi-soft.fr vient de nous annoncer :
|> ok donc a priori c'est le plus simple de faire des fonction avec des
|> #ifdef et readdir, opendir, closedir / findfirst, findnext?!
Seulement si le but est l'obfuscation. Tu fais un fichier .hh avec la
définition de la classe, en te servant de l'idiome du pare-feu de
compilation, pour que rien de l'implémentation n'y apparaît, et tu fais
deux fichiers .cc d'implémentation, un pour Windows, et un pour les
Unix. Tu compiles le fichier .cc qui convient au système.
--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
|> ok donc a priori c'est le plus simple de faire des fonction avec des |> #ifdef et readdir, opendir, closedir / findfirst, findnext?!
Seulement si le but est l'obfuscation. Tu fais un fichier .hh avec la définition de la classe, en te servant de l'idiome du pare-feu de compilation, pour que rien de l'implémentation n'y apparaît, et tu fais deux fichiers .cc d'implémentation, un pour Windows, et un pour les Unix. Tu compiles le fichier .cc qui convient au système.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
3dsman
3dsman writes:
vient de nous annoncer :
ok donc a priori c'est le plus simple de faire des fonction avec des #ifdef et readdir, opendir, closedir / findfirst, findnext?!
Seulement si le but est l'obfuscation.
heu ca veux dire quoi? :-)
Tu fais un fichier .hh avec la définition de la classe, en te servant de l'idiome du pare-feu de compilation, pour que rien de l'implémentation n'y apparaît
heu et ca? Un pare feu de compilation ca veux dire quoi? que je fait une classe avec deux implementations différentes (une pour chaque systeme) pour des fonctions qui font la meme chose pour que tout le reste du prog n'ais pas besoin de changer?
et tu fais deux fichiers .cc d'implémentation, un pour Windows, et un pour les Unix. Tu compiles le fichier .cc qui convient au système.
ouaip ca g compris :-)
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
3dsman <3dsman@free.fr> writes:
kanze@gabi-soft.fr vient de nous annoncer :
ok donc a priori c'est le plus simple de faire des fonction avec des
#ifdef et readdir, opendir, closedir / findfirst, findnext?!
Seulement si le but est l'obfuscation.
heu ca veux dire quoi? :-)
Tu fais un fichier .hh avec la
définition de la classe, en te servant de l'idiome du pare-feu de
compilation, pour que rien de l'implémentation n'y apparaît
heu et ca?
Un pare feu de compilation ca veux dire quoi?
que je fait une classe avec deux implementations différentes (une pour
chaque systeme) pour des fonctions qui font la meme chose pour que tout
le reste du prog n'ais pas besoin de changer?
et tu fais
deux fichiers .cc d'implémentation, un pour Windows, et un pour les
Unix. Tu compiles le fichier .cc qui convient au système.
ouaip ca g compris :-)
--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
ok donc a priori c'est le plus simple de faire des fonction avec des #ifdef et readdir, opendir, closedir / findfirst, findnext?!
Seulement si le but est l'obfuscation.
heu ca veux dire quoi? :-)
Tu fais un fichier .hh avec la définition de la classe, en te servant de l'idiome du pare-feu de compilation, pour que rien de l'implémentation n'y apparaît
heu et ca? Un pare feu de compilation ca veux dire quoi? que je fait une classe avec deux implementations différentes (une pour chaque systeme) pour des fonctions qui font la meme chose pour que tout le reste du prog n'ais pas besoin de changer?
et tu fais deux fichiers .cc d'implémentation, un pour Windows, et un pour les Unix. Tu compiles le fichier .cc qui convient au système.
ouaip ca g compris :-)
-- Ceci est une signature automatique de MesNews. Site : http://mesnews.no-ip.com
kanze
3dsman wrote in message news:...
3dsman writes:
vient de nous annoncer :
ok donc a priori c'est le plus simple de faire des fonction avec des #ifdef et readdir, opendir, closedir / findfirst, findnext?!
Seulement si le but est l'obfuscation.
heu ca veux dire quoi? :-)
Que les #ifdef, c'est un bon moyen d'obfuscation, mais ne sont pas en général très intéressant pour gérer des différences qui dépend du système.
Tu fais un fichier .hh avec la définition de la classe, en te servant de l'idiome du pare-feu de compilation, pour que rien de l'implémentation n'y apparaît
heu et ca? Un pare feu de compilation ca veux dire quoi?
L'idiome de « compilation firewall », aussi connu sous le nom de « pimpl » ou de « Cheshire cat ».
que je fait une classe avec deux implementations différentes (une pour chaque systeme) pour des fonctions qui font la meme chose pour que tout le reste du prog n'ais pas besoin de changer?
C'est le concepte même d'une interface. Tu as un .hh qui définit la classe (ton interface). Dans ce .hh, il n'y a rien qui dépend de l'implémentation -- que des déclarations de fonctions et une déclaration d'un pointeur vers les données de la classe (parce que les données risquent de dépendre de l'implémentation).
L'idiome du pare-feu de compilation, c'est précisement celui de ne pas mettre les données directement dans la classe, mais dans une classe à part, qui n'est connue que de l'implémentation :
class Dir { class Impl ; public: // L'intérface que tu veux...
private: Impl* myImpl ; } ;
Dans le .cc, tu définis Impl et les fonctions.
L'idiome a été conçu au départ pour limiter des dépendances de compilation ; si j'inclus Dir.hh, je n'inclus pas indirectement tout ce qu'utilise Dir. (Dans de gros projects, son utilisation systèmatique peut réduire le temps d'un build d'une facteur 10 ou plus.)
Ici, évidemment, ce n'est pas tellement les temps de build qui nous motivent, mais le désir de garder tout ce qui dépend du système le plus loin possible de la reste du code.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
3dsman <3dsman@free.fr> wrote in message
news:<mn.95527d4ae0a5688c.9781@free.fr>...
3dsman <3dsman@free.fr> writes:
kanze@gabi-soft.fr vient de nous annoncer :
ok donc a priori c'est le plus simple de faire des fonction avec
des #ifdef et readdir, opendir, closedir / findfirst, findnext?!
Seulement si le but est l'obfuscation.
heu ca veux dire quoi? :-)
Que les #ifdef, c'est un bon moyen d'obfuscation, mais ne sont pas en
général très intéressant pour gérer des différences qui dépend du
système.
Tu fais un fichier .hh avec la définition de la classe, en te
servant de l'idiome du pare-feu de compilation, pour que rien de
l'implémentation n'y apparaît
heu et ca?
Un pare feu de compilation ca veux dire quoi?
L'idiome de « compilation firewall », aussi connu sous le nom de
« pimpl » ou de « Cheshire cat ».
que je fait une classe avec deux implementations différentes (une pour
chaque systeme) pour des fonctions qui font la meme chose pour que
tout le reste du prog n'ais pas besoin de changer?
C'est le concepte même d'une interface. Tu as un .hh qui définit la
classe (ton interface). Dans ce .hh, il n'y a rien qui dépend de
l'implémentation -- que des déclarations de fonctions et une déclaration
d'un pointeur vers les données de la classe (parce que les données
risquent de dépendre de l'implémentation).
L'idiome du pare-feu de compilation, c'est précisement celui de ne pas
mettre les données directement dans la classe, mais dans une classe à
part, qui n'est connue que de l'implémentation :
class Dir
{
class Impl ;
public:
// L'intérface que tu veux...
private:
Impl* myImpl ;
} ;
Dans le .cc, tu définis Impl et les fonctions.
L'idiome a été conçu au départ pour limiter des dépendances de
compilation ; si j'inclus Dir.hh, je n'inclus pas indirectement tout ce
qu'utilise Dir. (Dans de gros projects, son utilisation systèmatique
peut réduire le temps d'un build d'une facteur 10 ou plus.)
Ici, évidemment, ce n'est pas tellement les temps de build qui nous
motivent, mais le désir de garder tout ce qui dépend du système le plus
loin possible de la reste du code.
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
ok donc a priori c'est le plus simple de faire des fonction avec des #ifdef et readdir, opendir, closedir / findfirst, findnext?!
Seulement si le but est l'obfuscation.
heu ca veux dire quoi? :-)
Que les #ifdef, c'est un bon moyen d'obfuscation, mais ne sont pas en général très intéressant pour gérer des différences qui dépend du système.
Tu fais un fichier .hh avec la définition de la classe, en te servant de l'idiome du pare-feu de compilation, pour que rien de l'implémentation n'y apparaît
heu et ca? Un pare feu de compilation ca veux dire quoi?
L'idiome de « compilation firewall », aussi connu sous le nom de « pimpl » ou de « Cheshire cat ».
que je fait une classe avec deux implementations différentes (une pour chaque systeme) pour des fonctions qui font la meme chose pour que tout le reste du prog n'ais pas besoin de changer?
C'est le concepte même d'une interface. Tu as un .hh qui définit la classe (ton interface). Dans ce .hh, il n'y a rien qui dépend de l'implémentation -- que des déclarations de fonctions et une déclaration d'un pointeur vers les données de la classe (parce que les données risquent de dépendre de l'implémentation).
L'idiome du pare-feu de compilation, c'est précisement celui de ne pas mettre les données directement dans la classe, mais dans une classe à part, qui n'est connue que de l'implémentation :
class Dir { class Impl ; public: // L'intérface que tu veux...
private: Impl* myImpl ; } ;
Dans le .cc, tu définis Impl et les fonctions.
L'idiome a été conçu au départ pour limiter des dépendances de compilation ; si j'inclus Dir.hh, je n'inclus pas indirectement tout ce qu'utilise Dir. (Dans de gros projects, son utilisation systèmatique peut réduire le temps d'un build d'une facteur 10 ou plus.)
Ici, évidemment, ce n'est pas tellement les temps de build qui nous motivent, mais le désir de garder tout ce qui dépend du système le plus loin possible de la reste du code.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34