Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
erdogan_ozkaya
Üye
Mesajlar: 839 Kayıt: 03 Eki 2007 02:00
Mesaj
gönderen erdogan_ozkaya » 28 Mar 2012 02:49
Arkadaşlar,
VT Para_Birimi Diye Bir Tablom var tabloya eklenen para birimleri sonraki aşamalarda alcak verecek gibi yerlerde para birimi seçerken çıkması için kullanıyorum hemde kur oranlarını görüp takip edebiliyorum fakat tabloda TL olmadığı için daha sonra bir yerde göremiyorum TL ekleyincede doviz güncellerken Para birimi bulunamadı diye hata veriyor.
özet: güncellerken "Aciklama" satırındaki TL kontrol etmesin
Kod: Tümünü seç
procedure TPara_Birimi_Kayit.SpeedButton2Click(Sender: TObject);
var
S,Alis,Satis,Aranan: String;
Aranand:ARRAY [1..100] OF String;
Yer,i,j : Integer;
begin
ProgressBar1.Visible := true;
S:=IdHTTP1.Get('http://tcmb.gov.tr/kurlar/today.html');
Para_Birimi_DB.Last;
Para_Birimi_DB.first;
for j:=0 to Para_Birimi_DB.RecordCount-1 do
begin
Aranand[j]:= Para_Birimi_DB.FieldByname('Aciklama').AsString;
Aranan:=Aranand[j];
ProgressBar1.Position :=j;
Yer:=pos(Aranan,S);
if Yer=0 then
begin
ShowMessage(' Kur Bilgisi Bulunamadı. YTL / TL / YKR Güncellenmemektedir. ');
exit;
ProgressBar1.Visible := false;
end
else
begin
Yer:=Yer+length(Aranan);
S:=copy(S,Yer,length(S)-Yer);
S:=Trim(S);
Alis:=copy(S,1,9);
Para_Birimi_DB.Edit;
Para_Birimi_DB.FieldByName('Alis_Tutari').AsString := Alis;
S:=copy(S,10,length(S)-9);
S:=trim(S);
Satis:=copy(S,1,7);
Para_Birimi_DB.FieldByName('Satis_Tutari').AsString := Satis;
Para_Birimi_DB.Next;
end;
end;
ProgressBar1.Visible := false;
end;
conari
Üye
Mesajlar: 2102 Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık
Mesaj
gönderen conari » 28 Mar 2012 04:08
tablona TL eklediysen şu şekilde yap,TL karşılığı 1 atarsın. tabi yanlış anlamadı isem.
Kod: Tümünü seç
ProgressBar1.Position :=j;
Yer:=pos(Aranan,S);
if Yer=0 then
begin
Para_Birimi_DB.Edit;
Para_Birimi_DB.FieldByName('Alis_Tutari').AsString := 1;
Para_Birimi_DB.FieldByName('Alis_Tutari').AsString := 1;
Para_Birimi_DB.Next;
end
else
begin
Yer:=Yer+length(Aranan);
S:=copy(S,Yer,length(S)-Yer);
S:=Trim(S);
Alis:=copy(S,1,9);
Para_Birimi_DB.Edit;
Para_Birimi_DB.FieldByName('Alis_Tutari').AsString := Alis;
S:=copy(S,10,length(S)-9);
S:=trim(S);
Satis:=copy(S,1,7);
Para_Birimi_DB.FieldByName('Satis_Tutari').AsString := Satis;
Para_Birimi_DB.Next;
end;
end;
ProgressBar1.Visible := false;
Bir kelimenin anlamını öğretsen bile yeter..
conari
Üye
Mesajlar: 2102 Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık
Mesaj
gönderen conari » 28 Mar 2012 05:36
yer=0 neyi gösteriyor DB de 0 TL ye karşılık gelmiyormu?
yani VT de TL ye geldiğini nasıl anlıyorsun?
yapman gereken döngüde TL ye geldiğinde karşılığında VT ye 1 yazdırmak TL de değil ise html den karşılığını post etmek.
Bir kelimenin anlamını öğretsen bile yeter..
erdogan_ozkaya
Üye
Mesajlar: 839 Kayıt: 03 Eki 2007 02:00
Mesaj
gönderen erdogan_ozkaya » 29 Mar 2012 09:17
Hocam,
http://tcmb.gov.tr/kurlar/today.html bu siteyi (DÖVİZİN CİNSİ) sorguluyor ve vt (DÖVİZİN CİNSİ) karşılaştırıp aynı olanın karşılığını yazıyor fakat sitede TL olmadığı için bulamıyor bulamayınca da hata veriyor.
Programın kodu aşağıdaki gibi ekteki dosya calışma hali var bakabilirseniz sevinirim kolay gelsin.
Kod: Tümünü seç
procedure TPara_Birimi_Kayit.SpeedButton2Click(Sender: TObject);
var
S,Alis,Satis,Aranan: String;
Aranand:ARRAY [1..100] OF String;
Yer,i,j : Integer;
begin
ProgressBar1.Visible := true;
S:=IdHTTP1.Get('http://tcmb.gov.tr/kurlar/today.html');
Para_Birimi_DB.Last;
Para_Birimi_DB.first;
for j:=0 to Para_Birimi_DB.RecordCount-1 do
begin
Aranand[j]:= Para_Birimi_DB.FieldByname('Aciklama').AsString;
Aranan:=Aranand[j];
ProgressBar1.Position :=j;
Yer:=pos(Aranan,S);
if Yer=0 then
begin
ProgressBar1.Visible := False;
ShowMessage(' Kur Bilgisi Bulunamadı. YTL / TL / YKR Güncellenmemektedir. ');
exit;
end
else
begin
Yer:=Yer+length(Aranan);
S:=copy(S,Yer,length(S)-Yer);
S:=Trim(S);
Alis:=copy(S,1,9);
Para_Birimi_DB.Edit;
Para_Birimi_DB.FieldByName('Alis_Tutari').AsString := Alis;
S:=copy(S,10,length(S)-9);
S:=trim(S);
Satis:=copy(S,1,7);
Para_Birimi_DB.FieldByName('Satis_Tutari').AsString := Satis;
Para_Birimi_DB.Next;
end;
end;
ProgressBar1.Visible := false;
end;
Dosya ekleri
Döviz.rar
döviz kurları (12.88 KiB) 101 kere indirildi
conari
Üye
Mesajlar: 2102 Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık
Mesaj
gönderen conari » 30 Mar 2012 08:46
İşte bulamadığı birim için 1 yazdırıyoruz.
Kod: Tümünü seç
var
S,Alis,Satis,Aranan: String;
Aranand:ARRAY [1..100] OF String;
Yer,i,j : Integer;
begin
ProgressBar1.Visible := true;
S:=IdHTTP1.Get('http://tcmb.gov.tr/kurlar/today.html');
Para_Birimi_DB.Last;
Para_Birimi_DB.first;
for j:=0 to Para_Birimi_DB.RecordCount-1 do
begin
Aranand[j]:= Para_Birimi_DB.FieldByname('Aciklama').AsString;
Aranan:=Aranand[j];
ProgressBar1.Position :=j;
Yer:=pos(Aranan,S);
if Yer=0 then
begin
// ProgressBar1.Visible := False;
// ShowMessage(' Kur Bilgisi Bulunamadı. YTL / TL / YKR Güncellenmemektedir. ');
// exit;
Para_Birimi_DB.Edit;
Para_Birimi_DB.FieldByName('Alis_Tutari').AsString := '1.0000';
Para_Birimi_DB.FieldByName('Satis_Tutari').AsString := '1.0000';
Para_Birimi_DB.Next;
end
else
begin
Yer:=Yer+length(Aranan);
S:=copy(S,Yer,length(S)-Yer);
S:=Trim(S);
Alis:=copy(S,1,9);
Para_Birimi_DB.Edit;
Para_Birimi_DB.FieldByName('Alis_Tutari').AsString := Alis;
S:=copy(S,10,length(S)-9);
S:=trim(S);
Satis:=copy(S,1,7);
Para_Birimi_DB.FieldByName('Satis_Tutari').AsString := Satis;
Para_Birimi_DB.Next;
end;
end;
ProgressBar1.Visible := false;
end;
Bir kelimenin anlamını öğretsen bile yeter..
erdogan_ozkaya
Üye
Mesajlar: 839 Kayıt: 03 Eki 2007 02:00
Mesaj
gönderen erdogan_ozkaya » 30 Mar 2012 10:15
tam düşündüğüm değil ama daha sonra geliştirilebilir çok teşekkür ederim fikir için. (bazen kurla isimleri değişebiliyor dolayısıyla bulamadığı her kura aynısını yapacak )
teşekkürler.
son hali
Kod: Tümünü seç
begin
// ProgressBar1.Visible := False;
// ShowMessage(' Kur Bilgisi Bulunamadı. YTL / TL / YKR Güncellenmemektedir. ');
// exit;
Para_Birimi_DB.Edit;
Para_Birimi_DB.FieldByName('Alis_Tutari').AsString := '1.0000';
Para_Birimi_DB.FieldByName('Satis_Tutari').AsString := '1.0000';
Para_Birimi_DB.Next;
ShowMessage(' Kur Bilgisi Başarıyla Güncellenmiştir. ');
Exit;
end
else
begin