döviz kuru hata veriyor tcmb.gov.tr/kurlar/

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

döviz kuru hata veriyor tcmb.gov.tr/kurlar/

Mesaj gönderen erdogan_ozkaya »

Merhaba Arkadaşlar,

aşağıdaki kod ile döviz kurlarını çekiyordum fakat son olan olaylardan sonra http://www.tcmb.gov.tr/kurlar/today.xml sayfa bir açılıyor bir açılmıyor kasıyor ve program arada bir hata veriyor nasıl çözebilirim fikri olan var mı acaba ?

teşekkürler.

Kod: Tümünü seç

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP;

type
  TForm1 = class(TForm)
    grp1: TGroupBox;
    label2: TLabel;
    label3: TLabel;
    label4: TLabel;
    label5: TLabel;
    editUSD_ALIS: TEdit;
    editUSD_SATIS: TEdit;
    editEURO_ALIS: TEdit;
    editEURO_SATIS: TEdit;
    Button1: TButton;
    IdHTTP1: TIdHTTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }      
    Procedure KURLAR;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}



////döviz kurları
Procedure TForm1.KURLAR;
var
  ADRES,DEGER,ARA,SATIS:string;
  YER:integer;
begin
 

  ADRES:=IdHTTP1.Get('http://www.tcmb.gov.tr/kurlar/today.xml');
  DEGER:=ADRES;

  ARA:='ABD DOLARI'; /// SERBEST PİYASA ALIŞ
  YER:=POS(ARA,DEGER);
  YER:=YER+length(ARA);
  DEGER:=COPY(DEGER,YER,LENGTH(DEGER)-YER);
  DEGER:=TRIM(DEGER);
  SATIS:=COPY(DEGER,1,LENGTH(DEGER)-YER);
  ARA:='<ForexBuying>'; //  SERBEST PİYASA ALIŞ
  YER:=pos(ARA,DEGER);
  YER:=YER+LENGTH(ARA);
  DEGER:=COPY(DEGER,YER,LENGTH(DEGER)-YER);
  DEGER:=TRIM(DEGER);
  SATIS:=COPY(DEGER,1,LENGTH(DEGER)-YER);
  editUSD_ALIS.Text    :=COPY(SATIS,1,6); // sonuc



  ARA:='ABD DOLARI'; /// SERBEST PİYASA SATIŞ
  YER:=POS(ARA,DEGER);
  YER:=YER+length(ARA);
  DEGER:=COPY(DEGER,YER,LENGTH(DEGER)-YER);
  DEGER:=TRIM(DEGER);
  SATIS:=COPY(DEGER,1,LENGTH(DEGER)-YER);
  ARA:='<ForexSelling>'; //  SERBEST PİYASA SATIŞ
  YER:=pos(ARA,DEGER);
  YER:=YER+LENGTH(ARA);
  DEGER:=COPY(DEGER,YER,LENGTH(DEGER)-YER);
  DEGER:=TRIM(DEGER);
  SATIS:=COPY(DEGER,1,LENGTH(DEGER)-YER);
  editUSD_SATIS.Text    :=COPY(SATIS,1,6); // sonuc

  ARA:='EURO';
  YER:=POS(ARA,DEGER);
  YER:=YER+LENGTH(ARA);
  DEGER:=COPY(DEGER,YER,LENGTH(DEGER)-YER);
  DEGER:=TRIM(DEGER);
  SATIS:=COPY(DEGER,1,LENGTH(DEGER)-YER);
  ARA:='<ForexBuying>';    //  Banka Alış Fiyatıdır.
  YER:=POS(ARA,DEGER);
  YER:=YER+LENGTH(ARA);
  DEGER:=COPY(DEGER,YER,LENGTH(DEGER)-YER);
  DEGER:=TRIM(DEGER);
  SATIS:=COPY(DEGER,1,LENGTH(DEGER)-YER);
  editEURO_ALIS.Text    :=COPY(SATIS,1,6); // sonuc

  ARA:='EURO';
  YER:=POS(ARA,DEGER);
  YER:=YER+LENGTH(ARA);
  DEGER:=COPY(DEGER,YER,LENGTH(DEGER)-YER);
  DEGER:=TRIM(DEGER);
  SATIS:=COPY(DEGER,1,LENGTH(DEGER)-YER);
  ARA:='<ForexSelling>';    //  Banka Alış Fiyatıdır.
  YER:=POS(ARA,DEGER);
  YER:=YER+LENGTH(ARA);
  DEGER:=COPY(DEGER,YER,LENGTH(DEGER)-YER);
  DEGER:=TRIM(DEGER);
  SATIS:=COPY(DEGER,1,LENGTH(DEGER)-YER);
  editEURO_SATIS.Text    :=COPY(SATIS,1,6); // sonuc
end;
/////////////bitiş



procedure TForm1.Button1Click(Sender: TObject);
begin
 KURLAR;
end;

end.
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: döviz kuru hata veriyor tcmb.gov.tr/kurlar/

Mesaj gönderen xozcanx »

Merhaba,
Bu işlemi yapmadan önce we sayfasının erişebilir olup olmadığını kontrol etmeniz daha uygun olacaktır. sayfaya erişim sağlayabiliyorsanız kodlarınızı işletirsiniz.
Kod Alıntıdır. Test edildi!

Kod: Tümünü seç

uses wininet;

function CheckUrl(url:string):boolean;
var
hSession, hfile, hRequest: hInternet;
dwindex,dwcodelen :dword;
dwcode:array[1..20] of char;
res : pchar;
begin
if pos('http://',lowercase(url))=0 then
url := 'http://'+url;
Result := false;
hSession := InternetOpen('InetURL:/1.0',
INTERNET_OPEN_TYPE_PRECONFIG,nil, nil, 0);
if assigned(hsession) then
begin
hfile := InternetOpenUrl(
hsession,
pchar(url),
nil,
0,
INTERNET_FLAG_RELOAD,
0);
dwIndex := 0;
dwCodeLen := 10;
HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE,
@dwcode, dwcodeLen, dwIndex);
res := pchar(@dwcode);
result:= (res ='200') or (res ='302');
if assigned(hfile) then
InternetCloseHandle(hfile);
InternetCloseHandle(hsession);
end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if CheckUrl('http://www.tcmb.gov.tr/kurlar/today.xml') then
Showmessage('Sayfa Erişilebilir durumdadır!')
else
Showmessage('HATA  - Sayfaya Erişim Sağlanamadı!');
end;
İyi Çalışmalar.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: döviz kuru hata veriyor tcmb.gov.tr/kurlar/

Mesaj gönderen erdogan_ozkaya »

Çok teşekkür ederim dediğiniz gibi ekledim çalışmadığı zaman manuel giriyorum :)
AliCinkilic
Üye
Mesajlar: 43
Kayıt: 01 Kas 2013 10:03

Re: döviz kuru hata veriyor tcmb.gov.tr/kurlar/

Mesaj gönderen AliCinkilic »

Bu sayfa ile ilgili şöyle bir sorun var. Sayfa bazen direk geliyor ama bazen redirect olarak geliyor.
Redirect olarak geldiğinde kullandığını komponentin redirect özelliği kapalı ise sayfa açılmıyor.
Düzenlemeleri bunu dikkate alarak yaparsanız çözüm olacaktır.
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: döviz kuru hata veriyor tcmb.gov.tr/kurlar/

Mesaj gönderen erdogan_ozkaya »

cevabınız için teşekkürler fakat 1-2 senedir sorusuz çalışıyordu şu olaylardan sonra oldu ne olduysa.
Cevapla