WxFTP --> lister le répertoire distant dans les collonnes d' un wxListCtrl .....

cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 - 11 août 2005 à 15:58
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 - 12 août 2005 à 15:57
Bonjour,

Je développe actuellement un petit client FTP (pour mes études).
Donc, mon probléme c'est que j' arrive bien a lister le répertoire du site distant mais pas à afficher celui-ci, dans chacune des colonnes correspondantes.
A savoir que j' ai 6 colonnes : permissions, type, taille, date, heure, nom.
Avec mon code actuel, je récupere le repertoire dans une seule collonne;

Comment allouer par exemple -rw-r--r-- à la colonne permission, formulaire.htm à nom, 2 à type etc... ?
Voila le code ou DistantSite est un wxListCtrl , Commandes est un wxTextCtrl et result() une fonction qui affiche le résultat de la derniere commande:

void FTPclientFrm::connect()
{
if(!m_timer.IsRunning())
{
m_timer.Start(1000);
}
wxString adresse = EditAddress->GetValue();
wxString utilisateur = EditUser->GetValue();
wxString passe = EditPassword->GetValue();
wxString directory = EditDir->GetValue();

ftp->SetUser(utilisateur);
ftp->SetPassword(passe);

Commandes->AppendText("Connection..............................Wait a second\n");

if (!ftp->Connect(adresse))
{
Commandes->AppendText("impossible de se connecter au serveur\n\nVeuillez vérifier l' adresse du serveur et vos identifiants\nmerci\n");
return;
}
StatusBar1->SetStatusText(wxString::Format("vous etes connectés sur ")+utilisateur+("@")+adresse,0);
Commandes->AppendText("***************************Connecté sur ");
Commandes->AppendText(adresse);
Commandes->AppendText("***************************\n");

Commandes->AppendText("Commande : USER ");
Commandes->AppendText(utilisateur);
Commandes->AppendText("\n");
result();

ftp->ChDir(directory);
Commandes->AppendText("Commande : CWD ");
Commandes->AppendText(directory);
Commandes->AppendText("\n");
result();

ftp->SendCommand("TYPE I");
Commandes->AppendText("Commande : TYPE I");
Commandes->AppendText("\n");
result();

ftp->SetBinary();

wxArrayString files;
if(!ftp->GetDirList(files, ""))
{
Commandes->AppendText("impossible de récuperer la liste\n");
return;
}
size_t numFiles = files.GetCount();

DistantSite->DeleteAllItems();
for (size_t i =0; i<numFiles; i++)
{
int column_count = DistantSite->GetColumnCount()-1; //la g essayé de faire un truk mais ca marxhe pas
long m_count = DistantSite->GetItemCount();
DistantSite->SetItem(m_count, column_count, files.Item(i), -1); //pareil...., c'est la que j'ai un soucis
DistantSite->InsertItem(m_count, files.Item(i));
}
result();
}
Au secours!
Merci beaucoup pour votre aide.
2+


Recherche entreprise développement à Montpellier pour BTS Informatique de Gestion en alternance............

4 réponses

fredcl Messages postés 547 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 7 octobre 2007 1
12 août 2005 à 09:28
Bonjour,

Je n'ai pas trop le temps de te faire un exemple sur mesure,
mais dans ma source "Chat In The Box" que tu trouveras ici
ou sur mon site (http://cfred.free.fr) dans le fichier chanlistdlg.cpp
tu trouveras un exemple d'utilisation d'un contrôle wxListCtrl.


Bonne Chance


Cordialement


FredCL
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
12 août 2005 à 14:33
Merci fredcl, quand je serai bon, je te revaudrai ca;


En fait, y a que toi qui m' aide sur ce site ! lol


2+


Sat


Recherche entreprise développement à Montpellier pour BTS Informatique de Gestion en alternance............
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
12 août 2005 à 15:54
OK, donc, j' ai regardé ta source chanlistdlg.dlg, mais j' ai dut mal tourner ma question. désolé (-;

Je reformule:

En fait, j' arrive déja a choisir dans quelle collonne je veux inserer mon item, mais le truk c'est que wxFTP, quand j' appelle GetDirList me retourne une ligne de la forme suivante :

-rw-r--r-- 1 web site 935 Jun 19 02:00 index.htm
Donc, ce que je veux faire, c'est récupérer dans des variables , uniquement -rw-r--r--, uniquement 1 web site, uniquement 935 etc....
Bon, je me doute que ca doit etre un truc bateau, désolé pour mon innexperience (ref . ma fiche : date d'arrivée).Mais bon, faut bien apprendre un jour!



allé merci;
2+Sat


Recherche entreprise développement à Montpellier pour BTS Informatique de Gestion en alternance............
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
12 août 2005 à 15:57
Oups, du code :
wxArrayString files;
if(!ftp->GetFilesList(files, ""))
{
Commandes->AppendText("impossible de récuperer la liste\n");
return;
}

wxArrayString dirs;
if(!ftp->GetDirList(dirs, ""))
{
Commandes->AppendText("impossible de récuperer la liste\n");
return;
}

size_t numFiles = files.GetCount();

DistantSite->DeleteAllItems();

for (size_t i =0; i<numFiles; i++)
{
long m_count = DistantSite->GetItemCount();
DistantSite->InsertItem(m_count, 0);

DistantSite->SetItem(m_count, 5, files.Item(i)); //la, je récupere le nom du fichier dans la collonne 5
DistantSite->SetItem(m_count, 0, dirs.Item(i)); //mais la, il me sort toute la ligne dans la collone 0
}
result();
}

muerci

Recherche entreprise développement à Montpellier pour BTS Informatique de Gestion en alternance............
0
Rejoignez-nous