Delphi ile bitcoin verilerini çekme

Eğer Delphi üzerinde herhangi bir eklenti kullanmadan verileri programınıza aktarmanız için bir kod parçası paylaşacağım.

Verileri çekeceğimiz adres :

https://www.binance.com/tr/markets

* Sizin için çözüm üreten kod aşağıdadır.

Idea Ek olarak daha da gelişmiş -bir defada birden fazla değer- sorgulamak isteyebileceğinizi değerlendirerek kodları derledik.

Arrow Parametre olarak set halinde istediğiniz kadar içeriğin high değerini bir defada string olarak çevirecektir.

uses System.Net.HttpClientComponent, System.Generics.Collections, JSON;

function GetBinanceHighValue( const xValues: array of string ): string;
const
aUrl = ‘https://www.binance.com/tr/trade/BNB_USDT’;
var
aClient : TNetHTTPClient;
sJSON, sSearch   : String;
aJSONData   : TJSONValue;
aJSONValue  : TJSONValue;
i : Integer;
begin
Result := ”;
aClient := TNetHTTPClient.Create(nil);
try
aClient.UserAgent   := ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36’; // ‘Dalvik/2.1.0 (Linux; U; Android 8.0.0; SM-N950F Build/R16NW)’;
aClient.Accept      := ‘text/html’;
sJSON               := aClient.Get( aUrl ).ContentAsString;

// Parse Section
// ———————————————————————— //
sSearch := ‘<textarea id=”__APP_DATA” style=”display: none”>’;
if pos(sSearch, sJSON ) > 0 then
begin
System.Delete(sJSON, 1, Pos(sSearch, sJSON) + Length(sSearch)-1);
sSearch := ‘”productMap”:’;
if pos(sSearch, sJSON ) > 0 then begin
System.Delete(sJSON, 1, Pos(sSearch, sJSON) + Length(sSearch)-1);
sJSON := Copy(sJSON, 1, Pos(‘,”updateTime”:’, sJSON)-1);
end;
end;

// ————————————————————————– //
// JSON Parse section
// ————————————————————————– //
aJSONData := JSON.TJSONObject.ParseJSONValue( TEncoding.ASCII.GetBytes( Trim(sJSON) ), 0);
try
if aJSONData <> nil then
begin
for i := Low(xValues) to High(xValues) do begin
if aJSONData.FindValue(xValues[i]) <> nil then
begin
aJSONValue := aJSONData.GetValue<TJSONObject>(xValues[i]);
if aJSONValue.FindValue(‘high’) <> nil then
begin
if Result = ”
then Result := xValues[i] + ‘: ‘ + ((aJSONValue as TJSONObject).Get(‘high’).JsonValue as TJSONString).Value
else Result := Result + ‘, ‘ + xValues[i] + ‘: ‘ + ((aJSONValue as TJSONObject).Get(‘high’).JsonValue as TJSONString).Value;
end;
end;
end;
end else begin
sJSON := ”;
MessageDlg(‘Veri ekranına ulaşılamadı….’, mtError, [mbOk], 0 );
end;
finally
aJSONData.Free;
end;
finally
FreeAndNil(aClient);
end;
end;

 

Buton Prosedürü :

procedure TForm1.Button1Click(Sender: TObject);
var
Sonuclar : String;
begin
Sonuclar := GetBinanceHighValue( [ ‘ETHUSDT’, ‘BNBUSDT’ ] );
Showmessage( Sonuclar );
end;

You may also like...

Bir yanıt yazın