SaveToFike(Dosya.Txt);

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
İsmail_ycl
Üye
Mesajlar: 21
Kayıt: 18 Eki 2006 12:56
Konum: çORUM

SaveToFike(Dosya.Txt);

Mesaj gönderen İsmail_ycl »

Selam Arkadaşlar

Listbox içerigini bir dosyaya kaydediyorum
ama Dosya içeriğindeki istedim paragrafa kaydedilmesini istiyorum

Listbox1.Items.add(Kayıtismi);
Listbox2.Items.add(Sahis bilgisi);

ListBox kutuları içindeki bilgileri Dosya içeriğine kaydedilmesini istiyorum ama ikincikez kayıt yapıldığında ilk yapılan kayıt siliniyor yerine yenisi elkleniyor ikincikez yapılan kayıt dosya içerisinde ikinci satıra geçmesini istiyorum
Şismdiden Teşekkürler
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Mesaj gönderen White Rose »

mrh

aşağıdaki kod sanırım işinizi görür

Kod: Tümünü seç

var
  Form1: TForm1;
  Liste:Tstringlist;
  MyPath:String;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
     MyPath:=Extractfilepath(Application.ExeName);
     Liste:=TStringList.Create;
     If FileExists(MyPath+'Dosya.txt') Then
        Liste.LoadFromFile(MyPath+'Dosya.txt');

     ListBox.Items.Clear;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     Liste.Add(ListBox.Items.Text);
     Liste.SaveToFile(MyPath+'Dosya.txt');
     Liste.Free;
end;

procedure TForm1.ButtonClick(Sender: TObject);
begin
     Listbox.Items.Add(Edit.Text);
end;
İsmail_ycl
Üye
Mesajlar: 21
Kayıt: 18 Eki 2006 12:56
Konum: çORUM

Savetofile

Mesaj gönderen İsmail_ycl »

Teşekkürler ben aslında parametreli bir şekilde yapıldığınıu biliyorum

örnek vereyim ama bunungibi bişeydi

save to file('Dosya.Txt'/ Buraya paragraf ,boluk ,satır gibi kodlar yazılıyordu )

LoadFromFile('Dosya.Txt'/Paragraf,boşluk,satır vs)

Sanıyorum böyle bişe olması lazım

Şimdi bunu hatırlayamıyorum
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Standart VCL'de bu özellikte bir kod bulunmamaktadır. Siz bunu başka dilde uğraştıysanız oradan anımsıyor olabilirsiniz.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
İsmail_ycl
Üye
Mesajlar: 21
Kayıt: 18 Eki 2006 12:56
Konum: çORUM

Mesaj gönderen İsmail_ycl »

Peki Dosya içeriğinde İstediğim satıra karektere ulaşa bileceğim bir seçenek yokmu
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

İsmail_ycl yazdı:Peki Dosya içeriğinde İstediğim satıra karektere ulaşa bileceğim bir seçenek yokmu
:shock: Evet ulaşabilirsin. Ama öyle tek satırda değil. Bir dosya açarsın okunacak yere konumlanırsın sonra da okursun. Ayrıca yokmu diye bir soru programlama için söz konusu bile olamaz :) .
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@sabanakman yazdı:Ayrıca yokmu diye bir soru programlama için söz konusu bile olamaz :)
- Sağlam bir söz, katılıyorum...

- Buarada detay, "programcılık mı yapıyoruz ?" yoksa "sipariş veriyoruz, delphi bunu bizim için bir çırpıda yapıyor mu?" sorusunda saklı...

- Bir yere kadar ikincisi sonra asıl ağır tarafı olan birincisi... :idea:
Resim
Resim ....Resim
İsmail_ycl
Üye
Mesajlar: 21
Kayıt: 18 Eki 2006 12:56
Konum: çORUM

Mesaj gönderen İsmail_ycl »

Arkadaşlar güzel teşekkür ederim
Ama Neolur bana bunun nasıl yapıldığını söylermisiniz
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Problemini satır satır ayrıntılarıyla tanımlarsan belki yardımcı olabiliriz. Çünkü yukarıdakilere göre çözüm üretirsek sağlıklı olmayabilir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
İsmail_ycl
Üye
Mesajlar: 21
Kayıt: 18 Eki 2006 12:56
Konum: çORUM

Mesaj gönderen İsmail_ycl »

İlk önce hazırladığım programı yazayım

Kod: Tümünü seç

var
var
UrunFrm:Tform;
SVLst:Tlistbox
Msj:TLable;
Kayfet,Iptal:Tbutton;
procedure Tform1.Button1click(Sender:Topject); //Kaydet
var
Al,Sat,Adet, T_Al,T_Sat,Kar:Real;//Başında T_ (Toplam)dır
Begin
Al:=StrtoFloat(Edit1.text);
Sat:=StrToFloat(Edit2.tex);
Adet:=StrtoFloat(Edit3.tex);
T_al:=Al*Adet;
T_Sat:=Sat*adet;
Kar:=T_Sat-T_T_Al;

urunFrm:=Tform.create(Form1);
SVLst:=SVList.TlistBox.Create(Self);
SVLst.Parent:=UrunForm;
SVLst.Visible:=False;

SVLst.Items.String[0]:='Alım Fiyatı';
SVLst.Items.String[1]:=Format('%m',[Edit1.text]);

SVLst.Items.String[3]:=''Satım Fiyatı';
SVLst.Items.String[4]:=Format('%m',[Edit1.text]);

SVLst.Items.String[6]:='Adet';
SVLst.Items.String[7]:=FloattoStr(Adet);

SVLst.Items.String[9]:='Toplam Alım Fiyatı';
SVLst.Items.String[10]:=Format('%m',[T_al]);

SVLst.Items.String[12]:='Toplam Satım fiyatı';
SVLst.Items.String[13]:=Format('%m',[T_Sat]);

SVLst.Items.String[15]:='Toplam Kar';
SVLst.Items.String[16]:=Format('%m',[Kar]);

SVLst.Items.SaveToFile(Varolan Dosya'.Text');
//Burada Var olan Dosyanın İstediğim Satıra kaydedilmesini 
//İstiyorum Sorunum 

UrnForm.Free
SvLst.Free
end;
Şu anlık kullandığım Şekilse
SVlst.Items.Save(Edeit6.text+'.Text');
Kaydedilen alana bi çok text dosyası atıyor budurmdan hiçkimse hoşlanmaz
Bu nedenle Text dosyasının istenilen Satırına(Satırlarına )Kaydedilsin İstiyorum
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

İsmail_ycl yazdı:Şu anlık kullandığım Şekilse
SVlst.Items.Save(Edeit6.text+'.Text');
Kaydedilen alana bi çok text dosyası atıyor budurmdan hiçkimse hoşlanmaz
Bu nedenle Text dosyasının istenilen Satırına(Satırlarına )Kaydedilsin İstiyorum
Bu SVlst liste nesnesini tek dosyaya kayıt edip o dosyadan tekrar yüklersen daha sağlıklı olmazmı. Mesela SVlst.Items.Save(Edeit6.text+'.Text'); kodunu kullanmışsın, bu da muhtemelen başka yerde çalışan kodlarından dolayı sürekli .text uzantısı ekleyip duruyordur. Bunun yerine direk SVlst.Items.Save(Edeit6.text); kodunu kullansan daha sağlık olmazmı. Listeni program açılışında bir kere yükleyeceksin, program çalışırken bu listeye eklemeler çıkarmalar yapacak ve program kapanırken de listenin o halini komple kayıt edeceksin. Böylelikle dosya ile kısım kısım uğraşmamış olacaksın ve program bir sonraki açılışında son kayıt edileni yükleyecek. Bu yöntem daha pratik olmaz mı?
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
İsmail_ycl
Üye
Mesajlar: 21
Kayıt: 18 Eki 2006 12:56
Konum: çORUM

Mesaj gönderen İsmail_ycl »

Button1 içeriğindeki
SVLst.Item.Save(Dosya); Şeklinde kaydetsin
Bir de Listbox1 ve 2 kutuları olsun her kaydedildilğinde
ListBox1 e Edit kutusunna girilen Ürün ismini kaydetsin
ve ListBox1 e Tıkladımgımda seçili olan isme göre
SVlist in kaydettiği Dosyadan tekrar Listbox2 ye
yüklesin istiyorum
Buda Satırlı satırlı kaydetmek ve satırlı satırlık yüklemek Zorunlu hale geliyor
her kaydedilen bilgi Dosyanın 1den 16ya kadar Satırlara kaydetsin itenildigi zaman yüklensin
eğer bu satırlar dolu ise arada 4 satır farkla 20 satırdan başlayarak ve 20*16 satır kadar yüklesin istenildiği zaman yüklesin
bu şekilde bana uygun varsa böyle bişe ne olur yardım et
Zamanım doluyor kısıtlıyım
İsmail_ycl
Üye
Mesajlar: 21
Kayıt: 18 Eki 2006 12:56
Konum: çORUM

Mesaj gönderen İsmail_ycl »

Yazmayı unutmuşum devamı
SVLst.Items.Save(Edit.tex'.Text');
Bu şekilde yapmamın amacı ürün isimlerine
göre ayrı ayrı Text uzantısında kaydediyor
Text uzantısını vermessam isme göre yine
dosyalar kaydedecektir
Ben ürün bilgilerinin hepsi birden yüklen sin istemiyorum sadece
Listbox1 deki seçilen isme göre yüklesin istiyorum
Gayem bu
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Sanırım eskisi gibi bir yığın dosya oluşturmak daha kolay olacaktır. Eğer illaki tek dosyadan çalışmak istersen de başka bir Memo bileşenini ekle ve belirttiğin işlemi bundan takip et. O zaman Memo.Lines özelliğini kullanarak istediğin konumlar aralığını elde edebilirsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
İsmail_ycl
Üye
Mesajlar: 21
Kayıt: 18 Eki 2006 12:56
Konum: çORUM

Mesaj gönderen İsmail_ycl »

Bunu Hiç düşünememiştim saolasın
Memo Satırlarını konturol edeceğim ve ona göre
yükleme ve kaydetme işlemini yapacağım
Memo ise tüm ürün biligilerini alacak
satırlara göre komut nasıl veririm şimdi bunu yapmaya çalışacağim
Çook teşekkürler

Sorsam Ayıp olurm acaba kaç yaşındasınız?
Size karşı hitap ede bilmem için
Cevapla