ListView içeriğini Dosyaya Kaydetmek ve Açmak
| ||||
// 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.
administrator2009-08-30 15:32:43
Benzer Yazılar:
- Metin İçerisinden Bir Karakter Silmek
- Listbox İtemlerinin Sırasını Mause ile sürükleyerek Değiştirmek
- Dataset ten XML e aktarım
- İnternet Adresi Aktifmi Kontrol Etmek
- Sayılara Binde Ayracı Eklemek
- Çalışma anında .db veya .mdb uzantılı veri tabanı oluşturmak
- Tüm Dosya ve Klasörlerin Listesini Almak
- Metnin İçerisindeki Kelime Sayısını Bulan Kod
- Delphide Yazılmış Kaynak Kodlar
- Yazılan Fiyatı Metine Çevirmek
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.




















