Subscribe to this list via RSS Blog posts tagged in サンプル

Posted by on in Programming
C++Builder を使って AWS S3に接続[JAPAN] [AWS S3 接続] Delphi/C++ Builderは Cloudを得意とする複数のコンポーネントがあり AWS接続のためのTAmazonConnectionInfoコンポーネントも用意されています Amazon Web Services(AWS) のストレージサービスであるSimple Storage Service(S3)をC++Builderから接続します。   [S3 Bucketを用意します]  embarcadero-jpと言う名前でBucketを作成しました。   [TAmazonConnectionInfo配置と設定] TAmazonConnectionInfoを配置します AccountKey、AccountNameプロパティをIAMと同じ内容を設定します。   [Bucket内のリストを取得する](code example) //// void __fastcall TForm1::Button1Click(TObject *Sender) { std:...
C++Builderで使うCloud API「駅情報」「路線情報」「会社情報」(駅すぱあとWebサービス) [JAPAN] C++Builder を使い、駅すぱあとWebサービス(クラウド型API)を利用し 「駅情報」「路線情報」「会社情報」などの情報をRESTで取得する事が可能です。 今回テストしたデバイスはWindows(64Bit)とiOS10.1です。   [駅すぱあとWebサービス] 駅すぱあとWebサービスAPIを利用するには、ユーザー登録が必要です。 「駅情報」や「路線情報」のサービスに関しては無料のフリープランで商用利用可能ですので まずフリープランの登録を行いました。 https://ekiworld.net/ 上記サイトにアクセスし登録を行うとメールが送られてきます。 メールにはアクセスキー、ご登録ドメイン、ドキュメント(リファレンスマニュアル)が書かれています。 その中のアクセスキーが重要で このアクセスキーを使い各APIにアクセスできるようになります。   [駅すぱあとWebサービスフリープランで利用できるサービス] 上記のようなサービスです。 std::mapを使い エンドポイント一覧情報をもたせました。 //// enum TEki_apis_ {info, corporation, search_course_light, rail, line, station, station_light}; std::map FEndPoint{ {TEki_apis_::info, "/station/info"}, {TEki_apis_::corporation, "/corporation"}, {TEki_apis_::search_course_light, "/search/course/light"}, {TEki_apis_::rail, "/rail"}, {TEki_apis_::line, "/line"}, {TEki_apis_::station, "/station"}, {TEki_apis_::station_light, "/station/light"}};  [TRESTClientを使いクラウドAPI接続](code example) TRESTClient、TRESTRequestを使い駅すぱあとWebサービスの各APIに接続しJSONを取得します //// void __fastcall TEki_Api::UpdateExcect() { UnicodeString sUrl = FstBaseURL + FstEndPoint + "?key=" + FstEkiKey + CreateParameters(FEkiApis); TThread::CreateAnonymousThread([this, sUrl](){ std::unique_ptr cl1{/*std::make_unique(*/new TRESTClient(nullptr)}; // TRESTClient* cl1 = new TRESTClient(nullptr); std::unique_ptr re1{/*std::make_unique(*/new TRESTRequest(nullptr)}; //TRESTRequest* re1 = new TRESTRequest(nullptr); re1->Client = cl1.get(); TJSONValue* jo{nullptr}; cl1->BaseURL = sUrl; try{ re1->Execute(); jo = re1->Response->JSONValue; } catch(Exception& e1){} TThread::Synchronize(TThread::CurrentThread, [&](){ http_json_out(jo); }); })->Start(); }   [駅すぱあとWebサービス JSON](code example) 各API仕様を元にJSON情報を取得します void __fastcall TForm1::DoEditStation(TObject *Sender) { UnicodeString s_js_function_; unsigned int iMaxRecord{0}; if (!(Sender == nullptr)) { TJSONObject* jv = static_cast(Sender); String a = (static_cast( jv->GetValue("ResultSet") ))->ToString(); TJSONObject* jv2 = static_cast( jv->GetValue("ResultSet") ); Memo1->Lines->Append("max=" + static_cast(jv2->GetValue("max") )->Value()); iMaxRecord = StrToIntDef(static_cast(jv2->GetValue("max") )->Value(), 0); TJSONArray* jv3 = static_cast( jv2->GetValue("Point") ); TJSONObject* jv4; TJSONObject* jv5; TJSONObject* jvGeoPoint_; ListView1->BeginUpdate(); switch (iMaxRecord) { case 0: break; case 1: jv4 = static_cast( jv2->GetValue("Point") ); jv5 = static_cast( jv4->GetValue("Station") ); jvGeoPoint_ = static_cast( jv4->GetValue("GeoPoint") ); s_js_function_ = Format("toNearest(%s, %s)", ARRAYOFCONST(( jvGeoPoint_->GetValue("lati_d")->ToString(), jvGeoPoint_->GetValue("longi_d")->ToString() ))); StationItemAdd(jv5, s_js_function_); break; default: for (int i=0; i Count; i++){ jv4 = static_cast(jv3->Get(i)); jv5 = static_cast( jv4->GetValue("Station") ); jvGeoPoint_ = static_cast( jv4->GetValue("GeoPoint") ); s_js_function_ = Format("toNearest(%s, %s)", ARRAYOFCONST(( jvGeoPoint_->GetValue("lati_d")->ToString(), jvGeoPoint_->GetValue("longi_d")->ToString()))); StationItemAdd(jv5, s_js_function_); } } ListView1->EndUpdate(); ListView1->Visible = true; ListView1->Width = FselEdit->Width; ListView1->Position->X = FselEdit->Position->X; ListView1->Position->Y = FselEdit->Position->Y + FselEdit->Height; if (iMaxRecord > 0) { ListView1->ScrollTo(0); } } }   [駅すぱあと路線図フリープラン] 駅すぱあと路線図を使うにはまた別の申し込みが必要です これも同じく申し込み後メールでアクセスキーが送られてきます。 「Rosen JS」 と言うJavaScriptで作られた地図機能APIが提供されます。 C++Builder iOSのTLocationSensorを用いて緯度経度を取得しその情報を使い、 TWebBrowser(ブラウザ)からJSの関数EvaluateJavaScript()でキックすることにしました。  
秋の夜長に RAD Studio / Delphi / C++Builder サンプルコード [JAPAN] 10月にはいりまして、秋の始まりを感じます。秋の夜長にDelphi / C++Builder Starter Editionでサンプルプログラムを参考に、プログラムのお勉強や、アプリ開発に挑戦などいかがでしょうか。 RAD Studioにはたくさんのサンプルコードが付属しており、使い方を学び取ることができます。 先日ブログでもご紹介した無料提供中のStarter Editionでも利用可能なものが多くあり、これから学びたいという方、もしくは長くお使いの方でも、とあるコンポーネントの使い方を改めて知りたいというときに便利です。 ここでは、サンプルコードについて簡単にご説明いたします。
  • Page :
  • 1

Check out more tips and tricks in this development video: