begin process at 2012 05 30 03:54:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

Manipuler une chaine de caractere wxString ..................


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Manipuler une chaine de caractere wxString ..................

samedi 13 août 2005 à 03:05:27 | Manipuler une chaine de caractere wxString ..................

satellite34

Bonjour,

Je développe une application comprenant un wxListCtrl qui est composé de 6 colonnes : nom, type, taille, date, heure et permissions.Vous l' aurai compris il s'agit d' une chaine de caractere représentant un fichier.

Par exemple : -rw-r--r--   1 web site      864 Aug 11 14:20 formulaire.htm
Je récupere cette chaine et je l' ecrit dans mon wxListCtrl avec :

    wxArrayString dirs;
    if(!ftp->GetDirList(dirs, ""))
    {
        Commandes->AppendText("impossible de récuperer la liste\n");
        return;
    }
    wxArrayString files;
    if(!ftp->GetFilesList(files,""))
    {
        Commandes->AppendText("impossible de récuperer la liste\n");
        return;
    }
//aidé par fredcl : http://www.cppfrance.com/forum.v2.aspx?ID=530582
    size_t numFiles = dirs.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));
       DistantSite->SetItem(m_count, 0, dirs.Item(i));
    }

Donc, mon souhait serai de récuperer dans des variables , que -rw-r--r--   ,que 1 web site, que 864 etc......

Mais voila, aucune fonction ne permet de recuperer par exemple les permissions et puis j' ai essayé avec le calcul de la taille de fichier mais ca rend le listage super lent vu qu' il calcule dans la boucle for;Donc , vu qu' il y a toutes les infos dans une seule chaine de caractere j' aimerai n' utiliser que celle ci et la manipuler.

j' ai regardé dans la librairie standart les fonctions qui manipule des chaines de caracteres mais je n' ai pas trouvé ce qu' il me fallait ou alors j' y suis passé dessus sans me rendre compte, ou alors ca fait partie de ce que je capte pas encore(ce qui est fort possible) ;lol.

Je me rends un peu fou avec ce probleme....Merci pour votre aide     ;-)

2+Sat = Dieu ;
Recherche entreprise développement à Montpellier pour BTS Informatique de Gestion en alternance............

samedi 13 août 2005 à 09:33:56 | Re : Manipuler une chaine de caractere wxString ..................

xterminhate

Membre Club
Tu veux décomposer la réponse d'un serveur FTP à la commande LIST (ou autre) ?...

Cordialement,
Xterminhate.
samedi 13 août 2005 à 15:22:22 | Re : Manipuler une chaine de caractere wxString ..................

fredcl

Tu as largement le choix de fonctions pour manipuler des wxString

Left, Right, Mid, Find, BeforeFisrt, BeforeLast, AfterFisrt, AfterLast

Le tout est de bien savoir ce qu'il faut faire.

A+

FredCL

samedi 13 août 2005 à 16:06:18 | Re : Manipuler une chaine de caractere wxString ..................

satellite34

voila, xterminate c'est exactement ca mais fredcl a donné la réponse qu' il mefaut, en effet j' avais deja vu ces AfterFirst, AfterLast et tutiquanti mais je ne savais pos trop ou les utiliser marci a vous deux , je vais essayer....

De toute facon, ca fait partie de wxWIG+DGETS ces mots clés donc je vais me référer a la doc.

 marci a vous deux , je vais essayer....

2+Sat = Dieu ;
Recherche entreprise développement à Montpellier pour BTS Informatique de Gestion en alternance............

mardi 23 août 2005 à 14:47:48 | Re : Manipuler une chaine de caractere wxString ..................

satellite34

Re,
j'arrive donc maintenant a récuperer des parties de ma chaine (cool), mais je bloque depuis quelques jours sur un truk;

je m'explique :

-rw-r--r--   1 web site      864 Aug 11 14:20 formulaire.htm
j' ai cette chaine et je veux recuperer 1 web site, j' arrive a "isoler" -rw-r--r-- et formulaire.htm mais pas un nombre défini de caracteres a partir de tel caractere;

mon code :



//aidé par fredcl : http://www.cppfrance.com/forum.v2.aspx?ID=530582      
    wxArrayString dirs;
    if(!ftp->GetDirList(dirs, ""))
    {
        Commandes->AppendText("impossible de récuperer la liste\n");
        return;
    }
    size_t numFiles = dirs.GetCount();
          
    DistantSite->DeleteAllItems();
     
    for (size_t i =0; i<numFiles; i++)
    {
       long m_count = DistantSite->GetItemCount();
       DistantSite->InsertItem(m_count, dirs.Item(i).AfterLast(' '));
       wxString msg1;
       msg1.Printf(wxString::Format(dirs.Item(i).AfterFirst(' ')));
       DistantSite->SetItem(m_count, 1, msg1.Alloc(size_t = 10));   //ca pose probleme
       DistantSite->SetItem(m_count, 5, dirs.Item(i).Left(10));
    }
//fin de l' aide
    result();

avec ca j' arrive bien a recuperer les caracteres aprés le premier espace et dans la collonne 1 mais pas a limiter cette "sous-chaine" a 10 caracteres;
J' ai essayé avec un tablo dynamique mais ca ne marche pas , ou je m' y prends mal;


merci pour votre aide

A+

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

mardi 23 août 2005 à 15:29:03 | Re : Manipuler une chaine de caractere wxString ..................

satellite34

Réponse acceptée !
Bon, ben désolé pour le dérangement mais je viens d'arriver a mes fins avec :

wxArrayString dirs;
    if(!ftp->GetDirList(dirs, ""))
    {
        Commandes->AppendText("impossible de récuperer la liste\n");
        return;
    }
    size_t numFiles = dirs.GetCount();
        
    DistantSite->DeleteAllItems();
     
    for (size_t i =0; i<numFiles; i++)
    {
       long m_count = DistantSite->GetItemCount();
       DistantSite->InsertItem(m_count, dirs.Item(i).AfterLast(' '));
      
       DistantSite->SetItem(m_count, 1, dirs.Item(i).AfterFirst(' ').substr(0, 15));
       DistantSite->SetItem(m_count, 2, dirs.Item(i).AfterFirst(' ').substr(16, 6));
       DistantSite->SetItem(m_count, 3, dirs.Item(i).AfterFirst(' ').substr(22, 6));
       DistantSite->SetItem(m_count, 4, dirs.Item(i).AfterFirst(' ').substr(28, 6));
       DistantSite->SetItem(m_count, 5, dirs.Item(i).Left(10));
    }

A+

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

mercredi 24 août 2005 à 09:11:20 | Re : Manipuler une chaine de caractere wxString ..................

fredcl

Bonjour,

As-tu vérifié que le format des chaines fourni par le serveur FTP est le même sur d'autres système (Windows par exemple)?

Si ce n'était pas le cas il faudrait modifier ta fonction afin qu'elle détermine quel format est fourni afin d'employer le découpage adéquate.

A+

FredCL
mercredi 24 août 2005 à 15:59:04 | Re : Manipuler une chaine de caractere wxString ..................

satellite34

Oui, en effet, il ne retourne pas la meme chaine sous unix que sous windows.
Quelle condition utiliser?
un truk du styler:

if(unix)
ma_chaine
else
ma nu_chaine_pour_windows

Bon, ben je vais me mettre a ca alors
merci.

A+

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



Cette discussion est classée dans : count, chaine, caractere, distantsite, dirs


Répondre à ce message

Sujets en rapport avec ce message

Convertir une chaine de caractere en Float [ par Johjo ] Bon, voilà, j'ai encore un probleme.Je dois maintenant convertir un chaine de caractere en float, et je ne trouve pas de fonctions, j'ai regardé dans PB DE CHAINE DE CARACTERE [ par Orkblutt ] pkoi ceci me genere t'il une erreur a l'execution??#include void main(){ int o; o=2000; char* O=new char; itoa(o,O,10); char* ch="Fichier"; strcat(ch, PB DE CHAINE DE CARACTERE [ par Orkblutt ] pkoi ceci me genere t'il une erreur a l'execution??#include void main(){ int o; o=2000; char* O=new char; itoa(o,O,10); char* ch="Fichier"; strcat(ch, Convertir chaine de caractere -> decimal [ par LordBob ] Salut a tous, en fait je voudrai juste savoir comment est-ce ke l'on pouver convertir une chaine de caractère (ex: salut) en decimal... Voila, m Rechercher une chaine de caractere [ par Johjo ] Il n'y aurait pas une fonction qui me permette de retrouver une chaine de caractere dans une autreparce moi, je trouve rien du tout :(Si quelqu'un pou Ajouter des slash [ par Mike ] SAlut,je recupere une chaine de caractere qui correspond au PATH d'un fichier, ensuite je souhaite l'utiliser comme variable, mais le probleme c que l Exploitation de fichier en C ?!?!?! [ par GazGaz ] lu allalors voila le truc c'est que je voudrais aller chercher des infos dans un fichier qui est structuré de la meme maniere lignes apres lignes. Je [VC++ 6.0] Extraire une chaine d'une CListBox [ par fredcpp ] Bonjour, j'essaye d'extraire une chaine de caractere ( ou plutot un item qui est une chaine de caractere ) d'une CListBox.Cette CList est bien remplie chaine de caractere [ par zincben ] Bonjour je comprend pas tres bien pourquoi ce code passe bien #include void main() { FILE *fp; char nom[10]; fp = fopen("barre.txt", "r+"); if (fp) { comparation chaine de caractere [ par SfyLer ] prise de tête j'arrive pas a comparer de chaine de caractere:#include #include char main(void){ char login[6]; cout cin >> login; cout << "\n";<b


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales