ListView içeriğini Dosyaya Kaydetmek ve Açmak

Reklam Alanı

//  Formunuza bir ListView ekleyin. ListView un ViewStyle özelliğini vsReport
//  yapıp, alanları ekleyin. Tetikleyecek bir buton ya da başka bir nesneyle
//  aşağıdaki şekilde kullanabilirsiniz.
//  ____________________________________________________
//  KULLANIMI:
//  ____________________________________________________
//  Dosya açmak için –>
//  ListViewda_Dosya_Ac_Kaydet(Form1, ListView1, False);
//  ____________________________________________________
//  Dosya kaydetmek için –>
//  ListViewda_Dosya_Ac_Kaydet(Form1, ListView1, True);
//  ____________________________________________________

unit Unit_ListView2Text;

interface

uses Windows, SysUtils, ComCtrls, Forms, commdlg;

function ListViewda_Dosya_Ac_Kaydet(hangiForm: TForm;
ListVAdi: TListView;
saveMi: boolean ): boolean;
const
ayirac_Karakteri: char=’;’ ;  //  Alanlari birbirinden ayırmak için dosyada
//  kullanılır.

implementation

procedure ListView_Ac(lvA: TListview; dosyaAdi: string);
var
lvd_Dosya: textFile;
girdi_satir: string;
i: integer;
captionYazildi: boolean;
veri: string;
ListItem: TListitem;
begin
lvA.Clear;
ListItem:=nil;
assignFile(lvd_Dosya, dosyaAdi);
reset(lvd_Dosya);

while not eof(lvd_Dosya) do
begin

girdi_satir:=”;
readln(lvd_Dosya, girdi_satir);
girdi_satir:=trim(girdi_satir);
captionYazildi:=false;
i:=1;
veri:=”;

//Bu bölüm ayirac_Karakteri ile ayrılmış bir satırı okuyup listView daki
//alanlara ekler.
while not (i>length(girdi_Satir)) do
begin
with lvA do
begin
if girdi_Satir=ayirac_Karakteri then
case captionYazildi of //—>
true:
begin
ListItem.SubItems.Add(veri);
veri:=”;
i:=i+1;
end;
false:
begin
ListItem := Items.Add;
ListItem.Caption:=veri;
veri:=”;
captionYazildi:=true;
i:=i+1;
end;               //<—
end
else
begin
veri:=veri+girdi_Satir;
i:=i+1;
end;
end;
end;

end;
CloseFile(lvd_Dosya);
end;


procedure ListView_Kaydet(lvK: TListview; dosyaAdi: string);
var
lvd_Dosya: textFile;
satirNo, sutunNo: integer;
cikti_satir: string;
begin
assignFile(lvd_Dosya, dosyaAdi);
Rewrite(lvd_Dosya);
// Bu bölüm listview daki verileri ayirac_Karakteri (const) ile ayırarak
// kaydeder.
for satirNo:=0 to lvK.Items.Count-1 do
begin
cikti_satir:=”;
cikti_satir:=trim(lvK.Items[satirNo].Caption) + ayirac_Karakteri;
for sutunNo:=0 to lvK.Items[satirno].SubItems.Count-1 do
cikti_satir:=cikti_satir +
trim(lvK.Items[satirno].SubItems[sutunNo]) +
ayirac_Karakteri;
writeln(lvd_dosya, cikti_satir);
end;
CloseFile(lvd_Dosya);
end;


function ListViewda_Dosya_Ac_Kaydet(hangiForm: TForm;
ListVAdi: TListView;
saveMi: boolean ): boolean;
var
ofn: tagOFNa;
szFileName: array[0..MAX_PATH] of char;
begin
//Dosya açma ve kaydetme dialoglari için ayarlar bölümü
ZeroMemory( @ofn, sizeof(ofn) );
szFileName[0] := #0;
ofn.lStructSize := sizeof(ofn);
ofn.hWndOwner := hangiForm.Handle;
ofn.lpstrFilter := pchar(‘ListView Dosyası’+#0+’*.lvd’);
ofn.lpstrFile := szFileName;
ofn.nMaxFile := MAX_PATH;
ofn.lpstrDefExt := pchar(‘*.lvd’);

result:=False;
if (saveMi) then
begin
ofn.Flags := OFN_EXPLORER + OFN_PATHMUSTEXIST +
OFN_HIDEREADONLY + OFN_OVERWRITEPROMPT;

if GetSaveFileName(ofn) then  //commdlg unit inden
begin
ListView_Kaydet(ListVAdi, szFileName);
result:=True;
end;
end
else
begin
ofn.Flags := OFN_EXPLORER + OFN_FILEMUSTEXIST + OFN_HIDEREADONLY;

if GetOpenFileName(ofn) then  //commdlg unit inden
begin
ListView_Ac(ListVAdi, szFileName);
result:=True;
end;
end;

end;

end.

Alıntıdır.
Etiketler : Listview i dosyaya kaydetmek, listview i kaydetmek, listview i kaydetmek ve açmak, listview içeriğini kaydetmek, listview içeriğini kaydetmek ve açmak

administrator2009-08-30 15:32:43

Benzer Yazılar:

  1. Metin İçerisinden Bir Karakter Silmek
  2. Listbox İtemlerinin Sırasını Mause ile sürükleyerek Değiştirmek
  3. Dataset ten XML e aktarım
  4. İnternet Adresi Aktifmi Kontrol Etmek
  5. Sayılara Binde Ayracı Eklemek
  6. Çalışma anında .db veya .mdb uzantılı veri tabanı oluşturmak
  7. Tüm Dosya ve Klasörlerin Listesini Almak
  8. Metnin İçerisindeki Kelime Sayısını Bulan Kod
  9. Delphide Yazılmış Kaynak Kodlar
  10. Yazılan Fiyatı Metine Çevirmek
Etiketler:

Eğer yazıyı beğendiyseniz ya da ekleyecekleriniz varsa, lütfen yorumunuz yazın veya RSS aboneliği ile yeni yazılardan anında haberdar olun.

Yorum yapın

*

Gizlilik Politikası