CheckListBox1.Items

Résolu
cs_dugueclin Messages postés 66 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 10 juillet 2012 - 7 juil. 2012 à 11:14
cs_dugueclin Messages postés 66 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 10 juillet 2012 - 10 juil. 2012 à 19:58
Bonjour à tous,

j'aimerai enregistrer mon CheckListBox dans un fichier

CheckListBox1.Items.Strings =
A
B
C
D
j'aimerais l'enregistrer dans mon fichier de cette façon: A B C D
Mais, malgré mes recherches, c'est toujours de cette façon:
A
B
C
D

procedure TForm1.Button2Click(Sender: TObject);
var
f: TextFile;
str: string;
i:integer;
begin
for I := 0 to CheckListBox1.Items.Count - 1 do
begin
if CheckListBox1.Checked[i] = True then
begin
AssignFile(f,'Mon Fichier.txt');
Append(f);
str:= CheckListBox1.Items[i];
StringReplace((CheckListBox1.Items[i]),'#9 ',' ',[rfReplaceAll]);
Writeln(f, str);
CloseFile(f);
end;
end;
end;
j'ai essayé delete, Concat, ...,
mais, rien à faire
Quelqu'un pourrait-il m'aider ??.
je n'arrive pas à résoudre mon problème.
En vous remercient d'avance,
Sincères salutations et bon codding à tous,
Dugueclin.

6 réponses

korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17
7 juil. 2012 à 13:10
Salut,

je ne suis pas sûr d'avoir bien compris le problème, mais ceci y répondra peut-être :

procedure TForm1.Button2Click(Sender: TObject);
var
  sl: TStringList;
  str: string;
  i: integer;
begin
  sl := TStringList.Create;
  try
    for i := 0 to CheckListBox1.Items.Count - 1 do
    begin
      if CheckListBox1.Checked[i] then
      begin
        str:= StringReplace((CheckListBox1.Items[i]), '#9 ', ' ', [rfReplaceAll]);
        sl.Add(str);
      end;
    end;
    sl.SaveToFile('Mon Fichier.txt');
  finally
    sl.Free;
  end;
end;


Plusieurs remarques :

- il est plus commode d'utiliser les propriétés et méthodes de TStringList pour manipuler des lignes de texte, les enregistrer ou les ouvrir depuis un fichier ;
- StringReplace est une fonction qui retourne donc un résultat de type string, et tu n'affectes ce résultat à rien ;
- quand tu joins un bout de code, n'oublie pas d'utiliser la mise en forme (les petite icones au-dessus de la box, tu déroules la 4ème à partir de la droite), c'est plus pratique à lire.

Bon coding.
3
korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17
7 juil. 2012 à 14:17
C'est mieux comme ça ?

procedure TForm1.Button2Click(Sender: TObject);
var
  sl: TStringList;
  str: string;
  i: integer;
begin
  str := '';
  sl := TStringList.Create;
  try
    sl.Text := '';
    for i := 0 to CheckListBox1.Items.Count - 1 do
    begin
      if CheckListBox1.Checked[i] then
      begin
        str := str + StringReplace((CheckListBox1.Items[i]), '#9 ', ' ', [rfReplaceAll]);
      end;
    end;
    sl.Text := str;
    sl.SaveToFile('Mon Fichier.txt');
  finally
    sl.Free;
  end;
end;
3
cs_walidlam Messages postés 107 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 29 avril 2013 1
7 juil. 2012 à 20:25
salut!!
var 
f: TextFile;
str: string;
i:integer;
begin
 try
    AssignFile(f,'mon fichier.txt');
    Rewrite(f); //pour ouvrir le fichier en écriture et écrase le contenu
  except
    on e: exception do
      raise Exception.Create('Erreur pendant la création du fichier :' + 'mon fichier.txt' +
                             sLineBreak + e.message);
//on cas d’erreur pendant la création
  end;
  try
  with  CheckListBox1 do begin
for I := 0 to Items.Count - 1 do
begin
if Checked[i]  then
begin
Append(f);
str:= CheckListBox1.Items[i]+' ';
Write(f, str);
end;
end;
end;
finally
CloseFile(f);
end;

@+
3
cs_dugueclin Messages postés 66 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 10 juillet 2012
7 juil. 2012 à 13:27
bonjour Korgis,
merci de m'avoir répondu, mais c'est pareil dans le fichier
j'aimerais enregistrer de cette façon: A B C D
merci encore et bon codding
Dugueclin
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_dugueclin Messages postés 66 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 10 juillet 2012
7 juil. 2012 à 17:27
Merci Korgis !!!
J'avais bien essayé lors de mes premiers essais, avec un TStirngList,
mais il me manquait:
str:= str + ...
sinon, ça ne fonctionne pas !!!
Un grand merci à toi !!!
Sincères salutations et bon codding
Dugueclin
0
cs_dugueclin Messages postés 66 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 10 juillet 2012
10 juil. 2012 à 19:58
salut Walidam,
Merci de m'avoir répondu et merci pour le code , félicitations
Sincères salutations et bon codding à toi
Dugueclin.
0
Rejoignez-nous