WxListCtrl --> pb avec majuscule en premier caractere (trés bizzarre)
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 2006
-
29 août 2005 à 15:55
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 2006
-
3 sept. 2005 à 15:42
Bonjour,
je crée un wxListCtrl avec plusieurs colonnes qui prends comme items le listage d' un repertoire sur un serveur ftp, mon probleme c'est que lorsque le premier caractere de la premiere colonne est en majuscule ca buggue severe , a savoir que ca zappe toutes les autres colonnes sur toutes les lignes du listctrl qui se situent en dessus de l' item concerné; en + ca ne liste plus correctement aprés, c a d que ca erronne les infos.
if (!ftp->Connect(adresse))
{
result();
Commandes->AppendText("impossible de se connecter au serveur\n\nVeuillez vérifier l' adresse du serveur et"
" vos identifiants\nmerci\n");
return;
}
Commandes->AppendText(wxString::Format("Connecté à ")+adresse+(" dans ")+directory);
Commandes->AppendText("\n:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<:<<:<:<:<:<:<:<:<:<:<:<:<:<:<:<\n");
Commandes->AppendText("Commande : USER ");
Commandes->AppendText(utilisateur);
Commandes->AppendText("\n");
result();
StatusBar1->SetStatusText(wxString::Format("vous etes connecté à 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(' '));
En fait, je crois bien que ca buggue uniquement avec les serveurs unix mais bon, ac reste a vérifier;
+Sérieusement j' ai vraiment a coeur de réler ce pb car c'est un projet d'études que je fais en avance pour etre plus trankil dans l' année donc il faut que ca marche nikel et que je comprenne bien le pkoi du comment de ce pb mystique.
Merci pour votre aide;
A+
Recherche entreprise développement à Montpellier pour BTS Informatique de Gestion en alternance............
A voir également:
WxListCtrl --> pb avec majuscule en premier caractere (trés bizzarre)
fredcl
Messages postés547Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 7 octobre 20071 29 août 2005 à 17:31
Bonjour,
si à la place de ça :
DistantSite->SetItem(m_count, 1, dirs.Item(i).AfterFirst(' ').substr(0, 13));
DistantSite->SetItem(m_count, 2, dirs.Item(i).AfterFirst(' ').substr(14, 8));
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));
Mais de toutes facons , ca ne pouvait que faire pareil;
Je suis sous wxDevCpp 6.7, je vais essayer avec 6.8 , on sait jamais, mais c'est pareil , je suis convaincu que ca va faire le meme probleme, logiquement;
Doit y avoir une erreur dans mon code ou un oubli.....
Hum, la, y a du cassage de [mailto:cr@ne cr@ne] pour pas grand chose;
mdr;
A+
Recherche entreprise développement à Montpellier pour BTS Informatique de Gestion en alternance............
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 20061 30 août 2005 à 00:32
Bon ben je viens de tester avec 6.8 et alors la , c'est panique à bord!!!!!
je met bien 26 a la place de 25 dans l'editeur de liens mais rien n'y fait, y a des erreurs a tous les endroits du fichier, pourtant je copie les options du projet venant du template wx, c'est ce que j'ai fait avec mon player avi mais la, avec ce code, ca ne marche pas;; hum, c'est bien mystique tt ca!
@+
Cherche projets à réaliser en communauté en wxWIDGETS............
fredcl
Messages postés547Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 7 octobre 20071 30 août 2005 à 09:09
J'ai pas le temps de regarder ça maintenant (je bosse), mais je regarderais ça ce soir.
Si tu pouvais me poster quelques lignes complètes que te renvois le FTP ce serais super.
Vous n’avez pas trouvé la réponse que vous recherchez ?
fredcl
Messages postés547Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 7 octobre 20071 30 août 2005 à 11:58
Bonjour,
Je crois que ton problème viens de ta façon de découper les chaines.
Voici un exemple qui reprends le type de chaines que tu reçois d'un serveur Unix :
[DEBUT FICHIER mainframe.h]
/////////////////////////////////////////////////////////////////////////////
// Name: mainframe.h
// Purpose:
// Author: Fred Cailleau-Lepetit
// Modified by:
// Created: 08/30/05 10:33:05
// RCS-ID:
// Copyright: Copyright (c) 2005 Fred Cailleau-Lepetit.
// Licence:
/////////////////////////////////////////////////////////////////////////////
void wxMainFrame::OnButtonClick(wxCommandEvent& event)
{
// pour ne pas envoyer toujours la même chaine de caractères pour le test
// on prend parmis 6 chaines différentes
static int index = 0;
wxString str;
switch (index)
{
case 0 : str = "-r--r--r-- 1 guilhem lavaux 12738 Jan 16 20:17 cmndata.cpp";
break;
case 1 : str = "-r--r--r-- 1 guilhem lavaux 10866 Jan 24 16:41 Config.cpp";
break;
case 2 : str = "-rw-rw-rw- 1 guilhem lavaux 29967 Dec 21 19:17 cwlex_yy.c";
break;
case 3 : str = "-rw-rw-rw- 1 guilhem lavaux 14342 Jan 22 19:51 Cwy_tab.c";
break;
case 4 : str = "-r--r--r-- 1 guilhem lavaux 13890 Jan 29 19:18 date.cpp";
break;
default : str = "-r--r--r-- 1 guilhem lavaux 3989 Feb 8 19:18 Datstrm.cpp";
}
#if defined(__WXMSW__)
static bool pass = true; // Astuce pour MS Windows uniquement
// Attention dans une wxFrame deux évènement EVT_BUTTON sont générés
// Ce qui n'est pas le cas dans un wxDialog (voir remarque dans source wxWidgets)
if (pass)
{
#endif
AddElement(str);
index++; // Incrémentation de l'index des chaines pour le test
if (index > 5) index = 0; // Remise à zéro pour bouclage
#if defined(__WXMSW__)
}
pass = !pass;
#endif
event.Skip();
}
void wxMainFrame::AddElement(const wxString& element)
{
long index = TheListCtrl->GetItemCount();
TheListCtrl->InsertItem(index, element.Mid(55)); // Name
TheListCtrl->SetItem(index, 1, element.Mid(11, 3)); // Type
TheListCtrl->SetItem(index, 2, element.Mid(31, 10)); // Size
TheListCtrl->SetItem(index, 3, element.Mid(42, 6)); // Date
TheListCtrl->SetItem(index, 4, element.Mid(49, 5)); // Time
TheListCtrl->SetItem(index, 5, element.Mid(0, 10)); // Right
}
[FIN FICHIER mainframe.cpp]
Regardes bien la fonction wxMainFrame::AddElement c'est elle qui fait la découpe de la chaine passée en argument
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 20061 30 août 2005 à 20:37
Bonsoir,
Je viens d' essayer avec la méthode mid et j' arrive a un résultat identique c'est à dire qu' il y a toujours ce probleme de majuscule.
Sinon, j'ai réussi à passer mon projet sous 6.8 (j'avais oublié d'effacer les objets;hihi), mais rien n'y fait;
En + c'est clair que ca vient de mon programme car free me balance la meme chaine (sans buggues) avec ou sans majuscule en 1er caractere;
Ca commence à devenir vraiment mysthique comme probleme car j' ai découpé mes chaines de pleins de facons pendant tte la journée mais rien n' y fait.
AU SECOURS !!!!!
@+
Cherche projets à réaliser en communauté en wxWIDGETS............
fredcl
Messages postés547Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 7 octobre 20071 31 août 2005 à 08:56
Bonjour,
vérifie si les pointeurs que tu utilise sont bien alloué correctement. Que tu n'écraserait pas un espace mémoire en manipulant une mauvaise adresse.
As-tu essayer ton programme en mode DEBUG avec GDB? Je sais que l'interface de Dev-Cpp pour GDB n'est pas terrible, mais faut essayer ça peut aider!
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 20061 3 sept. 2005 à 15:42
bonjour,
erf, la ca va un peu trop loin pour moi, on utilise GDB de quelle maniere pour faire ce que tu dis???
Sinon, bah, je pense avoir essayé ttes les facons de découper cette satannée chaine;
Si t' a un tit moment, pour regarder ma source http://satellitesound.free.fr/Clientftp.rar Voila, sinon, vraiment j' aimerai qu' on m' explique le pkoi du comment car je ne comprends vraiment pas la cause de ce pb;