Aide pour enregistrer une ListView dans un fichier
GoodStuf
Messages postés1Date d'inscriptionjeudi 11 septembre 2003StatutMembreDernière intervention 8 avril 2004
-
8 avril 2004 à 04:00
JJack_9999
Messages postés2Date d'inscriptionmardi 29 mai 2007StatutMembreDernière intervention19 février 2008
-
19 févr. 2008 à 09:01
C'est quoi le code pour pouvoir enregistrer dans un fichier Binaire ou autre toute les donné contenue dans une ListView.
Ps, ma listView est incrémenter comme cela:
Var ListItem : TListItem;
begin
With ListItem Do
Begin
ListItem := Carnet.List.Items.Add;
ListItem.Caption := ED_Nom.text + ', ' + ED_Prenom.Text;
ListItem.SubItems.Add(ED_TelMaison.Text);
ListItem.SubItems.Add(ED_Nom.text);
ListItem.SubItems.Add(ED_Prenom.Text);
End;
et sa marche, mais je veut enregistrer tout sa dans un fichier par la suite.
Merci de m'aider!
:)
A voir également:
Aide pour enregistrer une ListView dans un fichier
JJack_9999
Messages postés2Date d'inscriptionmardi 29 mai 2007StatutMembreDernière intervention19 février 2008 19 févr. 2008 à 09:01
voila 2 exemples que j'utilise pour charger une liste dans Word ou Excel, si cela peut aider
procedure TFTools.SaveBackupList_RTF(Title,FName: String;Md:boolean);
Var FTxt : TextFile;
i,N,L,j : integer;
Op: Set Of Char;
Spl:Char;
FStrsize : String;
const
MaxNameL=64;
MaxSizeL=9;
{****************************************************}
function EXFormat:String;
var i :byte;
begin
Result:='';
for i:= 1 to N do
Result:=Result+' ';
end;
{****************************************************}
begin
if NOT (ListViewBackup.Items.Count >0) then begin
ShowMessage(' List empty ');
Exit;
end;
Op:=['-','+','*','/'];
Spl:=#9; //tab = 6 char
try
AssignFile(FTxt,FName);
Rewrite(FTxt);
MessageBoxTimeOut(' Report files progress . . .',FName);
WriteLn(FTxt,Format('[%s] %s',[DateToStr(now),Title]));
WriteLn(FTxt,'');
WriteLn(FTxt,Format(' %s [%s]',[MainStatusBar.Panels[3].Text,FilterEdit.text]));
WriteLn(FTxt,'');
WriteLn(FTxt,Format('%d%Sfiles in %d directory%S%s%S%.3n MB',[FTFiles,spl,FTDir,spl,'',spl,FTSize/1024]));
WriteLn(FTxt,'');
with ListViewBackup do
for i:= 0 to Items.Count-1 do begin
if (Items[i].Caption ='<>') then
WriteLn(FTxt,Format('[Dir]-->%S%s%S%s%S%s%S%s files'
,[spl,Items[i].SubItems[0],spl,'',spl,Items[i].SubItems[2],spl,Items[i].SubItems[4]]))
else if NOT Md then begin // files and dir
FName:=Items[i].SubItems[0];
for j:= 1 to Length(FName) do if FName[j] in Op then FName[j]:='_';
L:=Length(FName);
if L <= MaxNameL then N:=MaxNameL-L;
if N >0 then FName:=FName+EXFormat+'|';
FStrsize:=Items[i].SubItems[2];
L:=Length(FStrsize);
if L <= MaxSizeL then N:=MaxSizeL-L;
if N >0 then FStrsize:='|'+EXFormat+FStrsize;
WriteLn(FTxt,Format('%s%S%s%S%s%S%s',[Items[i].Caption,spl,FName,spl,
Items[i].SubItems[1],spl,FStrsize]));
end;
end;
finally
Closefile(FTxt);
end;
end;
{-----------------------------------------------------------}
procedure TFTools.SaveBackupList_CSV(Title,FName: String;Md:boolean);
Var FTxt : TextFile;
LCID, i,j: Integer;
Fst:TFormatSettings;
Op: Set Of Char;
Spl:Char;
begin
if NOT (ListViewBackup.Items.Count >0) then begin
ShowMessage(' List empty ');
Exit;
end;
Op:=['-','+','*','/']; // substitution du first char pour excel
GetLocaleFormatSettings(LCID,Fst); // separator list
Spl:=Fst.ListSeparator;
try
AssignFile(FTxt,FName);
Rewrite(FTxt);
MessageBoxTimeOut(' Report files progress . . .',FName);
WriteLn(FTxt,Format('[%s] %s',[DateToStr(now),Title]));
WriteLn(FTxt,Format('%d%S files in %d directory %S%s%S%.3n MB',[FTFiles,spl,FTDir,spl,'',spl,FTSize/1024]));
with ListViewBackup do
for i:= 0 to Items.Count-1 do begin
if (Items[i].Caption ='<>') then // Dir
WriteLn(FTxt,Format('[Dir]%S%s%S%s%S%s',[spl,Items[i].SubItems[0],spl,'',spl,Items[i].SubItems[2]]))
else if NOT Md then begin // Files
FName:=Items[i].SubItems[0];
for j:= 1 to Length(FName) do if FName[j] in Op then FName[j]:='_';
WriteLn(FTxt,Format('%s%S%s%S%s%S%s',[Items[i].Caption,spl,FName,spl,
Items[i].SubItems[1],spl,Items[i].SubItems[2]]));
end;
end;
finally
Closefile(FTxt);
end;
end;
{-------------------------------------------------------------------------}
Cordialement
JJo