Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
program içerisine veritabansız kayıt
#1
Question 
herhangi bir veritabanı olmadan program içerisinde nasıl kayıt yapabilirim ? örneğin ; not defteri tarzında bir program yapıp yazılan metni program içerisinde nasıl saklayabilirim ?
pek çok din vardır ama ahlak tektir...
Cevapla
#2
Merhaba,

Bu tarz geçici bilgi muhafaza etmek üzere ini dosyaları oluşturulabilir. Bununla ilgili IniFiles kütüphanesini incelemenizi öneririm. Dilerseniz kod örneği aktarabilirim. Tek oturum süresi boyunca eğer VCL kütüphanesini kullanıyorsanız, Mem tabloları ClientDataSet ile muhafaza edebilirsiniz. Her koşulda verilerin depolanması gerekeceği için kaydetme ve uygulamadan çıkış aşamasında bu bilgilerin bir txt yada talep ettiğiniz uzantıda muhafazası söz konusu olmalı. Windows'un bu tarz işler için ayırdığı AppData klasörüne doğrudan uygulamanın ismi ile tek dosya, veya OpenDialog komponentleri yardımı ile kişinin talep ettiği dizine dosyayı kaydedebilir, kaydedeceğiniz dosyayı aktif edebilirsiniz.

Dipnot: Yürütmekte olduğum Delphi ile programlamayı öğren eğitim serisinde anlatımını gerçekleştirdiğim örnek proje not defteriydi. Önümüzdeki hafta içerisinde yayında olacak. Oradan da görsel olarak takip edebilirsiniz.
{ talk is cheap show me the code. }
Cevapla
#3
(09-12-2017, Saat: 11:30)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,

Bu tarz geçici bilgi muhafaza etmek üzere ini dosyaları oluşturulabilir. Bununla ilgili IniFiles kütüphanesini incelemenizi öneririm. Dilerseniz kod örneği aktarabilirim. Tek oturum süresi boyunca eğer VCL kütüphanesini kullanıyorsanız, Mem tabloları ClientDataSet ile muhafaza edebilirsiniz. Her koşulda verilerin depolanması gerekeceği için kaydetme ve uygulamadan çıkış aşamasında bu bilgilerin bir txt yada talep ettiğiniz uzantıda muhafazası söz konusu olmalı. Windows'un bu tarz işler için ayırdığı AppData klasörüne doğrudan uygulamanın ismi ile tek dosya, veya OpenDialog komponentleri yardımı ile kişinin talep ettiği dizine dosyayı kaydedebilir, kaydedeceğiniz dosyayı aktif edebilirsiniz.

Dipnot: Yürütmekte olduğum Delphi ile programlamayı öğren eğitim serisinde anlatımını gerçekleştirdiğim örnek proje not defteriydi. Önümüzdeki hafta içerisinde yayında olacak. Oradan da görsel olarak takip edebilirsiniz.
yani yine bi nevi txt uzantılı veri tabanı oluşturmak gibi bi durum söz konusu . veriyi kaydettirip geri çağırma işlevi yapmam gerekiyor anladığım kadarıyla. ve bunu windows platformunda değil android'de yapmak istiyorum. ve kod örneği ile daha da açıklık getirirseniz çok sevinirim.

( android'de yapmamın herhangi bir fazla işlevi varmıdır yoksa aynı windows'daki gibi yaptığımda da olur mu )

dipnot cvp : ilgi , alaka ve öneriniz için teşşekkür ederim. takipte kalacağım.
pek çok din vardır ama ahlak tektir...
Cevapla
#4
Windows için Registry kullanabilirsiniz. Android için ise text uzantılı bir dosya ile işinizi görebilirsiniz(Abdullah hocanın da dediği gibi). Tüm kodlar Windows ile aynı olduğu için işlemleri aynıdır.

Saygılarımla,
İyi Çalışmalar.
Eski dos'tan windows olmaz.
Cevapla
#5
(09-12-2017, Saat: 11:49)BY-HAYALET Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(09-12-2017, Saat: 11:30)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,

Bu tarz geçici bilgi muhafaza etmek üzere ini dosyaları oluşturulabilir. Bununla ilgili IniFiles kütüphanesini incelemenizi öneririm. Dilerseniz kod örneği aktarabilirim. Tek oturum süresi boyunca eğer VCL kütüphanesini kullanıyorsanız, Mem tabloları ClientDataSet ile muhafaza edebilirsiniz. Her koşulda verilerin depolanması gerekeceği için kaydetme ve uygulamadan çıkış aşamasında bu bilgilerin bir txt yada talep ettiğiniz uzantıda muhafazası söz konusu olmalı. Windows'un bu tarz işler için ayırdığı AppData klasörüne doğrudan uygulamanın ismi ile tek dosya, veya OpenDialog komponentleri yardımı ile kişinin talep ettiği dizine dosyayı kaydedebilir, kaydedeceğiniz dosyayı aktif edebilirsiniz.

Dipnot: Yürütmekte olduğum Delphi ile programlamayı öğren eğitim serisinde anlatımını gerçekleştirdiğim örnek proje not defteriydi. Önümüzdeki hafta içerisinde yayında olacak. Oradan da görsel olarak takip edebilirsiniz.
yani yine bi nevi txt uzantılı veri tabanı oluşturmak gibi bi durum söz konusu . veriyi kaydettirip geri çağırma işlevi yapmam gerekiyor anladığım kadarıyla. ve bunu windows platformunda değil android'de yapmak istiyorum. ve kod örneği ile daha da açıklık getirirseniz çok sevinirim.

( android'de yapmamın herhangi bir fazla işlevi varmıdır yoksa aynı windows'daki gibi yaptığımda da olur mu )

dipnot cvp : ilgi , alaka ve öneriniz için teşşekkür ederim. takipte kalacağım.

Merhaba,

Txt uzantılı bir dosya olacaktır. Veritabanı olarak adlandırmak yanlış olur. Veriyi kaydetme ve geri okuma işlemi için size örnek bir kod yazayım. Bu konu Windows tabanında AppData, Android tabanında da Src klasörlerinin altında muhafaza eder. Android'de kullanıcı doğrudan bu verilere ulaşamaz. Windows'ta ise C:\Users\KULLANICIADINIZ\AppData\ ve C:\Users\KULLANICIADINIZ\AppData\Roaming klasörleri içinde muhafaza edilir.


Ini kütüphanesi ile dosyadan veri okuma
Açıklama: veri size string olarak döner. Eğer farklı bir tip ise içeride değişken tipinize göre convert edip kullanabilirsiniz.
Mesela bir CheckBox kullanıyorsanız, işaretli olma durumunu string olarak true-false şeklinde tutabilir ve StrToBool(inidengelenveri) yaparak nesne.IsChecked özelliğine atayabilirsiniz (FormOnCreate yada DataModule içinde).

function IniDosyadanOku(Sec, Ident, DefVeri: string): string;
var
 aFile: TIniFile;
 DosyaAdi: string;
begin
 DosyaAdi := GetHomePath + '/DOSYAADI.ini'; // Dosya adını da parametrik yapabilir, fonksiyona bir parametre olarak geçebilirsiniz. Aynı şekilde ek bir klasör ataması da olabilir AA/BB.txt gibi.
 aFile := TIniFile.Create(DosyaAdi);
 Result := aFile.ReadString(Sec, Ident, DefVeri);
 aFile.Free;
end;


Ini kütüphanesi ile dosyaya veri yazma
Açıklama: Dosya yoksa oluşturacağı için kendinize Key-Value (Yada section-identification) belirtin. String olarak veriyi götürüp yazın.


procedure IniDosyayaYaz(Sec, Ident, Veri: string);
var
 aFile: TIniFile;
 DosyaAdi: string;
begin
 DosyaAdi := GetHomePath + '/DOSYAADI.ini'; // Dosya adını da parametrik yapabilir, fonksiyona bir parametre olarak geçebilirsiniz. Aynı şekilde ek bir klasör ataması da olabilir AA/BB.txt gibi.
 aFile := TIniFile.Create(DosyaAdi);
 aFile.WriteString(Sec, Ident, Veri);
 aFile.Free;
end;



Örnek Kullanım (Veri Yazma-Kaydetme)

if txUsername.Text <> '' then
  begin
    IniDosyayaYaz('AYARLAR', 'KullaniciAdi', txUsername.Text);
    IniDosyayaYaz('AYARLAR', 'Sifre', txUserpwd.Text);
 end;

Örnek Kullanım (Veri Okuma)

procedure TGirisFormunuz.FormCreate(Sender: TObject);
begin
  txUsername.Text := IniDosyadanOku('AYARLAR', 'KullaniciAdi', ''); // eğer ini yada txt dosyanızda böyle bir veri yoksa 3. parametre varsayılan dönüşü verir. Yoksa boş getiriyor burada.
  txUserpwd.Text := IniDosyadanOku('AYARLAR','Sifre','');
end;
{ talk is cheap show me the code. }
Cevapla
#6
(09-12-2017, Saat: 12:07)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(09-12-2017, Saat: 11:49)BY-HAYALET Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olyani yine bi nevi txt uzantılı veri tabanı oluşturmak gibi bi durum söz konusu . veriyi kaydettirip geri çağırma işlevi yapmam gerekiyor anladığım kadarıyla. ve bunu windows platformunda değil android'de yapmak istiyorum. ve kod örneği ile daha da açıklık getirirseniz çok sevinirim.

( android'de yapmamın herhangi bir fazla işlevi varmıdır yoksa aynı windows'daki gibi yaptığımda da olur mu )

dipnot cvp : ilgi , alaka ve öneriniz için teşşekkür ederim. takipte kalacağım.

Merhaba,

Txt uzantılı bir dosya olacaktır. Veritabanı olarak adlandırmak yanlış olur. Veriyi kaydetme ve geri okuma işlemi için size örnek bir kod yazayım. Bu konu Windows tabanında AppData, Android tabanında da Src klasörlerinin altında muhafaza eder. Android'de kullanıcı doğrudan bu verilere ulaşamaz. Windows'ta ise C:\Users\KULLANICIADINIZ\AppData\ ve C:\Users\KULLANICIADINIZ\AppData\Roaming klasörleri içinde muhafaza edilir.


Ini kütüphanesi ile dosyadan veri okuma
Açıklama: veri size string olarak döner. Eğer farklı bir tip ise içeride değişken tipinize göre convert edip kullanabilirsiniz.
Mesela bir CheckBox kullanıyorsanız, işaretli olma durumunu string olarak true-false şeklinde tutabilir ve StrToBool(inidengelenveri) yaparak nesne.IsChecked özelliğine atayabilirsiniz (FormOnCreate yada DataModule içinde).

function IniDosyadanOku(Sec, Ident, DefVeri: string): string;
var
 aFile: TIniFile;
 DosyaAdi: string;
begin
 DosyaAdi := GetHomePath + '/DOSYAADI.ini'; // Dosya adını da parametrik yapabilir, fonksiyona bir parametre olarak geçebilirsiniz. Aynı şekilde ek bir klasör ataması da olabilir AA/BB.txt gibi.
 aFile := TIniFile.Create(DosyaAdi);
 Result := aFile.ReadString(Sec, Ident, DefVeri);
 aFile.Free;
end;


Ini kütüphanesi ile dosyaya veri yazma
Açıklama: Dosya yoksa oluşturacağı için kendinize Key-Value (Yada section-identification) belirtin. String olarak veriyi götürüp yazın.


procedure IniDosyayaYaz(Sec, Ident, Veri: string);
var
 aFile: TIniFile;
 DosyaAdi: string;
begin
 DosyaAdi := GetHomePath + '/DOSYAADI.ini'; // Dosya adını da parametrik yapabilir, fonksiyona bir parametre olarak geçebilirsiniz. Aynı şekilde ek bir klasör ataması da olabilir AA/BB.txt gibi.
 aFile := TIniFile.Create(DosyaAdi);
 aFile.WriteString(Sec, Ident, Veri);
 aFile.Free;
end;



Örnek Kullanım (Veri Yazma-Kaydetme)

if txUsername.Text <> '' then
  begin
    IniDosyayaYaz('AYARLAR', 'KullaniciAdi', txUsername.Text);
    IniDosyayaYaz('AYARLAR', 'Sifre', txUserpwd.Text);
 end;

Örnek Kullanım (Veri Okuma)

procedure TGirisFormunuz.FormCreate(Sender: TObject);
begin
  txUsername.Text := IniDosyadanOku('AYARLAR', 'KullaniciAdi', ''); // eğer ini yada txt dosyanızda böyle bir veri yoksa 3. parametre varsayılan dönüşü verir. Yoksa boş getiriyor burada.
  txUserpwd.Text := IniDosyadanOku('AYARLAR','Sifre','');
end;


çok teşşekkür ederim. aynısı gibi uygulayacağım . kodu örneklediğiniz için saolun .

(09-12-2017, Saat: 12:02)hyperxman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlWindows için Registry kullanabilirsiniz. Android için ise text uzantılı bir dosya ile işinizi görebilirsiniz(Abdullah hocanın da dediği gibi). Tüm kodlar Windows ile aynı olduğu için işlemleri aynıdır.

Saygılarımla,
İyi Çalışmalar.

bilgilendirme için saol. bunu bilmek iyi oldu .
pek çok din vardır ama ahlak tektir...
Cevapla
#7
(09-12-2017, Saat: 12:17)BY-HAYALET Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olçok teşşekkür ederim. aynısı gibi uygulayacağım . kodu örneklediğiniz için saolun .

(09-12-2017, Saat: 12:02)hyperxman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol...
bilgilendirme için saol. bunu bilmek iyi oldu .

Ben teşekkür ederim.

Not: DelphiCan içerisinde sormuş olduğunuz tüm sorulara verilen cevap ve açıkalamalardan faydalı bulduklarınıza "Puan Ver" butonunu basarak ek cevap yazmadan durumu belirtebilirsiniz.
{ talk is cheap show me the code. }
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Uzak masaüstünde çalışan program, bağlantı kesildiğinde hata veriyor canbir 0 111 16-03-2018, Saat: 18:50
Son Yorum: canbir
  save dialog kayıt yeri sorunu erdogan 3 141 09-03-2018, Saat: 18:05
Son Yorum: narkotik
  Program Files Yetki Sorunu narkotik 9 313 18-01-2018, Saat: 17:45
Son Yorum: SimaWB
  Hal Kayıt Sistemi Web Servis eyln 37 1.579 29-12-2017, Saat: 13:54
Son Yorum: eyln
  Kayıt silme Dostk 5 372 21-12-2017, Saat: 15:03
Son Yorum: witalihakko



Konuyu Okuyanlar: 1 Ziyaretçi