projerin vt yolunu text ten okutma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustam,

sağolasın ini files oluşturuldu, projeyi çalıştırdığımda bildiğiniz gibi yine proje database leri dosya yolunu bulamadı burada anladımki tekrar kod girerek dosya yollarını bu oluşturulan ini files ten almasını sağlamalıyım

sormak istediğim bundan sonrası yukarıda arkadaşların verdiği kodlar lamı olacak yoksa değişik bişilermi olaca.

teşekkürler kolay gelsin
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Mesaj gönderen abdulkadir »

S.A
hocam galiba anlasılmayan bir konu var
bir örnek daha yapayım
publiç kısmına

Kod: Tümünü seç

  public
    { Public declarations }
    function INI_STR_OKU(Agac,Dal: string): string;
// yaz ctr+shift+c  tusla
var bloguna

Kod: Tümünü seç

var
  INI_STR:string ='';
implementation dan

Kod: Tümünü seç

function TForm_Ayarlar.INI_STR_OKU(Agac,Dal: string): string;
var
  IniFile : TIniFile;
begin
 IniFile := TIniFile.Create(ExtractFilePath(Application.Exename) + IniName);
 Result := IniFile.ReadString(Agac,Dal,INI_STR);
 IniFile.Free;
end;


ve herhangi bir yordam ile cagırabilir veya atama yapabilirsin

Kod: Tümünü seç

procedure TForm_Ayarlar.Button2Click(Sender: TObject);
begin
ShowMessage(INI_STR_OKU('DB_Ayarlar','DatabaseName'));
end;
databasen içi ise

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
begin
Database1.DatabaseName:=INI_STR_OKU('DB_Ayarlar','DatabaseName');
end;
Ayarlar.ini de sunu göreceksin
[DB_Ayarlar] // bu agaç :lol:
DatabaseName=secilendb.db //buda dal :lol:

geliştirmek sana kaldı
basarılar
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

bu ini yoöntemini kullanan çok herhalde deplhi2005 de IBX de databaseini diye bir bileşen bağlandığı databasein ayarlarını bir ini dosyadan okuyor ve yazıyor :) adamlar hızlı maşallah :P
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Mesaj gönderen Asri »

Database konusunda pek bir bilgim yok. Bu yüzden bu tür sorulara seyirci olarak katılmayı tercih ediyorum. :)

path olayında şu şekilde kullansan olmazmı

Kod: Tümünü seç

  databaseyolu:='.\data\'+databasedosyasi  gibi 
iyi çalışmalar.
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

tabiki :) lokalde çalışan programları ben anlattığın şekilde yapıyorum extractfilepath(application.name)+'\data\data.gdb'; gibi
ama çok kullanıcılı olunca databasei x makinası üzeinden ulaşıyor olabilir 192:188.0.1:/mylink/data/data.gdb gibi ozaman bu pek iyi olmaz
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustalarım,

bilmem kafamın ne kadar karıştığını anladınız mı, abdulkadir ustam baya açıklayıcı (çünkü neyi nereye yazacağıma varana kadar yazmış) yazmış fakat verdiği ikinci kodları önceki verdiklerine mi birleştireceğim yoksa sıfırdan mı oluşturacağım kestiremedim.

önceki verdiği kodlara birleştirerek yaptığımda

Kod: Tümünü seç

procedure TFormArsiv.FormCreate(Sender: TObject);
begin
  ibDatabase1.DatabaseName:=INI_STR_OKU('DB_Ayarlar','DatabaseName');
  label9.Caption:=datetostr(date);
  statusbar1.Panels[8].Text:=datetostr(date);
end;
INI_STR_OKU nun yanında imleç yanıp sönüyor ve satır kırmızıya yanıp run yapmıyor.

önceki verdiği kodlarda ini dosyasını oluşturmayı ve içine dosya yolunu koymayı yapmıştık sadece ibdatabaselerin databasename lerini bu ini den aldırmayı becerememiştim.

bide belki hatam burada olabilir benim çalışmamda her formda ibdatabase var. biliyorum yanlış hareket ama böle oldu ve bozmadım.

gerçekten üzgünüm bu kadar açık kodlar yazıldıktan sonra başarılı olamamak kötü bişi. Ama fonction oluşturma inifiles ile çalışma ilk defa oluyor ve çuvalladık.

teşekkür ve saygılarımla
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Mesaj gönderen abdulkadir »

S.A
Ben genelde ini ye toplu ayarlar kaydetmek için
procedure kullanırım
ama iniden bir satır okuma veya yazmak için functuion kullanırım Beynim alıştı :lol:

olc arkadasım
mesela sen formun oncreate olayında iniden formun
1top 2with 3height 4left 5caption 6color vs okumak istersen
Functionu 6 kere cagırman gerekecek bunun yerine bir procedur yapıp tek seferde hepsini okursun.koddan tasarruf için :wink:

:eyo: yani sana yazdıklarımı birleştir. :eyo:

iniden neden okuyamıyorsun anlamadım
burda mesajda ne görürsen Database in DatabaseName property sini yazılır
ibDatabase1.DatabaseName:=mesajıniçerigi;

Kod: Tümünü seç

ShowMessage(INI_STR_OKU('DB_Ayarlar','DatabaseName'));
mesaj dogru veriyormu yoksa boşmu ne


işim cıktı birazdan dönmek üzre gidiyorum.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustam,

mesajı görebilmek için exeyi çalıştırdığımda çalışmayı durdurup yukarıda belirttiğim hatayı veriyor. burada bi yanlışlık yaptığımı biliyorum sanırım anlatmayıda beceremiyorum.

fb/ib kullandığımı belirtmiştim ve her formumda ibdatabase bileşeni var olduğunuda ve proje d: sürücüsünde duruyor olayı kavrayabilmek için se projenin databasename leri e: sürücüsüne ayarladım.

her formda ibdatabase olduğundan dolayı verdiğin kodlarda formoncreate olayına yazılacak kodu her formun create sine yazmam gerekiyor. aklıma şu geldi acaba bu formların uses kısmına inifiles mi eklemeliyim.

bide verdiğin kodda button2click i anlamadım önceki oluşturduğumuz formda kaydet ve oku buttonları vardı zaten birden button2 ortaya çıkınca button1 nerede sorusu akla geldi ve neyapacağımı bilemedim yinede button koyarak onun click kısmına showmessage yi yazdım ama run etmeyi başaramadık. cod diyagramın alt bölümünde

undeclared identifier:'INI_STR_OKU'
mesajı çıkıyor

run olayı olmayınca da hatamesajı oluşmadı ve baka kaldık.

kolay gelsin
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustalarım,

teşekkürle ödenmeyecek yardımlarınız oluyor. bilmem nasıl ödeyeceğiz haklarınızı.

yardımlarınızla olay çalıştı. birinci hatam ingilizce bilmemek yukarıda kırmızı olarak yazdığım hata mesajını çeviren ile çevirdim ve functionu tanıtamadığımı anladım buradan yola çıkarak başka biyerde olan bişiyi nasıl tanıtıyorduk sorusu aklıma geldi ve olay çözüldü

önceki denememde

Kod: Tümünü seç

ibDatabase1.DatabaseName:=INI_STR_OKU('DB_Ayarlar','DatabaseName');

//yazdım jeton düştükten sonra ise

ibDatabase1.DatabaseName:=form_ayarlar.INI_STR_OKU('DB_Ayarlar','DatabaseName');

//yazdım
bi küçük hata (insani) neler yaptırdı herkesi yok yere meşgul etti. burada INI_STR_OKU function nunun form_ayarlar da olduığunu anlayınca olay kendiliğinden çözüldü ve bulunduğu formun adını ekleyince oldu.

hepinize teşekkür ederim
kolaylıklar dilerim.
inşeallah bu sayfadaki bilgiler ile başka arkadaşlarada faydalı oluruz.
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Mesaj gönderen abdulkadir »

bir önceki mesajda olası bir hata yazacaktım ama gitmem gerekti
ama yinede yinde yazayım belki lazım olur

databasename:=DB_olc.db;//ise

sen opendiaolog ta iniye şöyle yazmış olurdun
C:\Xproje\X\DB_olc.db
ve
databasename:=C:\Xproje\X\DB_olc.db;//olurdu
Hataya sebep olabilirdi.
tümüyle dosya yolunu degil sadece adını almak isteyebilirsin.
o zaman

Kod: Tümünü seç

var F_NAME:string;

begin

  if OpenDialog1.Execute then
  F_NAME:=ExtractFileName(OpenDialog1.FileName) ;

//Tam yol
     ShowMessage(OpenDialog1.FileName);

//kestirme yol
     ShowMessage(F_NAME);

end;
belki lazım olur diye yazdım :idea:

Ayrıca sorunu çözdügüne de sevindim tebrikler :alkis:
Basarılar sevgiler.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

delphitürkiye sakinleri için, ustalarım için ve sizin için üç defa :lol: çok yaşa :lol: çok yaşa :lol: çok yaşa
:bravo: :bravo: :bravo:

teşekkür ve saygılarımla
kolay gelsin
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

mege yazdı:bu ini yoöntemini kullanan çok herhalde deplhi2005 de IBX de databaseini diye bir bileşen bağlandığı databasein ayarlarını bir ini dosyadan okuyor ve yazıyor :) adamlar hızlı maşallah :P
ibxtras olarak diger delphi surumleri icinde mevcut bu bilesenler...
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

sadettin ustan bu verdiğin ibxtras ları nereden bulabilirim google de aratmıştım ama ingilizcem olmadığı için pek bişi anlayamamıştım.

kolay gelsin.
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

teşekkürler ustam,

yeni geldim ve mesajını okudum deniyeceğim

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Cevapla