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 ?
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.
Cevapla
#3
(09-12-2017, Saat: 11:30)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: 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.
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.
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.
kisisel_logo_dark.png
WWW
Cevapla
#5
(09-12-2017, Saat: 11:49)BY-HAYALET Adlı Kullanıcıdan Alıntı:
(09-12-2017, Saat: 11:30)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı: 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.
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;
Cevapla
#6
(09-12-2017, Saat: 12:07)Abdullah ILGAZ Adlı Kullanıcıdan Alıntı:
(09-12-2017, Saat: 11:49)BY-HAYALET Adlı Kullanıcıdan Alıntı: 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;


ç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ı: 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.

bilgilendirme için saol. bunu bilmek iyi oldu .
Cevapla
#7
(09-12-2017, Saat: 12:17)BY-HAYALET Adlı Kullanıcıdan Alıntı: ç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ı: ...
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.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 15 617 08-03-2024, Saat: 00:06
Son Yorum: TuncayDelphi
  [ÇÖZÜLDÜ] macos işletim sistemine program yazmak shooterman 5 451 02-02-2024, Saat: 09:54
Son Yorum: shooterman
  program exe icon sorunu cvheneburi 9 2.724 19-10-2023, Saat: 15:04
Son Yorum: harunyl
  WebBrowser Pdf Kayıt Etme sadoal351 1 552 11-07-2023, Saat: 12:39
Son Yorum: delphiman
  DBGrid de Birden Fazla Kayıt Seçmek. OZCANK 12 3.258 07-07-2023, Saat: 15:31
Son Yorum: emre



Konuyu Okuyanlar: 1 Ziyaretçi