Sélectionner et supprimer les fichiers commençant par K

Résolu
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 - 19 nov. 2008 à 23:18
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 - 22 nov. 2008 à 23:06
bonsoir à tous !!
je vous pose le décors : j'ai un FileListBox qui est relié à un DirectoryListBox pour parcourir des fichiers. Les items de mon FileListBox sont copiés sur un CheckListBox, ceci en vue de cocher des fichier pour les supprimer. (accessoiremeent mon

FileListBox

est masqué).

et voici mes petits soucis : j'aimerai ne cocher que les fichiers commençant par la lettre "K", ensuite j'aimerai supprimer que les fichiers cochés.

même si vous ne connaissez qu'une partie des réponses à mes interrogations je suis preneur !!
merci d'avance pour votre aide.

à bientôt

4 réponses

cs_neil Messages postés 67 Date d'inscription lundi 12 mai 2003 Statut Membre Dernière intervention 19 janvier 2009
22 nov. 2008 à 15:26
Bonjour,
pour afficher le contenu du directorylistbox dans ton checklistbox (uniquement les fichiers) :

          dans le onchange du DLB : CLB.Items:=DLB.FileList.Items  ;

pour le reste :

for i := 0 to CLB.items.count-1 do     //coche automatiquement tout les fichiers commencant par K ou k
  CLB.Checked[i] := CLB.items.strings[i][1] = 'K';

//suppression des items cochés
for i := 0 to CLB.items.count-1 do                                         //supprime automatique tout les items de CLB cochés
   if CLB.Checked[i] then
    DeleteFile(DLB.Directory+'\'+CLB.Items.Strings[i] )

Cordiament.
Remarque : dans ce cas les fichiers commencant par K sont cochés automatiquement et non par l'utilisateur
3
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
19 nov. 2008 à 23:58
ca me semble un peu bizare d'utiliser une fileListBox cachée pour lister les fichiers, pourquoi ne pas le faire manuellement?

sinon pour tes soucis, tu peux faire :
<hr size="2" width="100%" />//coche des K*for i :0 to FLB.Lines.count-1 do //CLB CheckListBox
  CLB.Checked[i] := CLB.Lines[i][0] = 'K';
//suppression des items cochés
for i := 0 to CLB.Lines.count-1 do
  
if CLB.Checked[i] then
    DeleteFile(DLB.Path + CLB.Lines[i]);
0
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
20 nov. 2008 à 23:33
bonjour !
merci de ta réponse, j'ai essayé les 2 parties du script et j'obtient 2 messages d'erreur qui sont :
L'unité 'FileCtrl' est propre à une plate-forme
que j'ai résolu en mettant {$warn unit_platform off} en haut de l'Unit concernée.
et
Déclaration attendu(e) mais 'FOR' trouvé(e)
j'ai déclaré " i " avec


var




    I: Integer;




et j'ai enlevé begin (si je le laissai 'Path' et 'Lines' n'était pas reconnus, peut-être parce que c'est un CheckListBox et non un FileListBox...)

Je ne comprend pas pourquoi ça ne marche pas.
il faut dire que je peux être considéré comme débutant ^^

pour ce qui est du filelistbox caché c'est parce que je n'ai pas réussi à afficher le contenu du dossier du

DirectoryListBox directement dans le CheckListBox.
0
cs_JackNUMBER Messages postés 233 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 26 juin 2011 5
22 nov. 2008 à 23:06
haaaaaa !!
génial

merci beaucoup !
toutmarchebienaupoil
0
Rejoignez-nous