Haruyuki Mohri

毛利春幸のブログです。

Delphi reintroduce指令

Delphi Reintroduce reintroduce 指令を付けると、既に宣言されている仮想メソッドが隠蔽されるというコンパイラ警告が表示されなくなります。以下に例を示します。 [dcc32 警告] Unit1.pas(11): W1010 メソッド 'Create' で基底型 'TComponent' の仮想メソ…

URLエンコード TURLEncoding

System.NetEncoding.TURLEncoding C++BuilderでURL エンコード 形式でデータをエンコードおよびデコードするメソッドを提供 TURLEncoding は、スペース(プラス記号 + として)と、次の予約された URL エンコード文字のみをサポートします ;:&=+,/?%#[]。 TU…

Interbase ODBCドライバインストール方法

Interbase ODBCドライバダウンロード 28975 Embarcadero InterBase ODBC Driver for Windows, 32-bit and 64-bit 上記からダウンロードできます。 「odbcibinstall.exe」で保存します。 Interbase ODBCドライバインストール odbcibinstall.exeを起動します。…

TIdURI::PathEncode()を使わずエンコーディング

Embarcadero C++Builderは TIdURIにPathEncode()や、URLEncode()など機能があります。 std::ostringstream と GetBytes()を使って同じような実装をしてみました。 #include <sstream> #include <array> #include <functional> const std::string path_encoding(UnicodeString input_, TEn</functional></array></sstream>…

Interbase Generator 応用1

generator一覧を取得 generatorは “RDB$GENERATORS"ここに入っています。 select * from RDB$GENERATORS; この方法でgenerator一覧の取得が可能です。 1つのgeneratorデータを取得 “gen_id([ジェネレータ名],0)"で取得できますが上記のRDB$GENERATORSを使っ…

ANDROID_IDと、identifierForVendorを取得

C++Builderを使用してANDROID_IDとidentifierForVendor(IDFV)を取得を試す。 ID Description ANDROID_ID ANDROID_IDは、Android端末の初期化時にランダムに生成された文字列です。 identifierForVendor(IDFV) identifierForVendor(IDFV)は、iOS UDIDの…

RAD Studio bds.exe オプション

RAD Studio bds.exe の使用例 コード 内容 bds.exe -ns RAD Studio IDE をスプラッシュ画面を表示せずに起動します。 bds.exe -sd c:\test\source -d c:\test\myprog.exe \mbox{-}td -td および、デバッガ オプション(-d exename)の後ろに指定される他のあ…

Interbase Generator作成と更新

Interbase Generatorの使い方 Interbaseはジェネレータを持っています。 generator 新規作成 create generator sq1 これで"sq1"と言う名称のgeneratorが一つ完成しました。 中身は0が入っています。 generatorの番号セット SET generator sq1 TO 1 “sq1"の中…

iOSアプリの起動中にスリープさせない方法

setIdleTimerDisabled(true)にすればスリープしない C++BuilderでiOSアプリを作成する場合 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { _di_UIApplication app_ = TUIApplication::Wrap(TUIApplication::OCClass->sharedApplication());…

C++Builderでstd::unordered_mapを使う

std::unordered_mapを使う。 先日、「Optimized C++」書籍についてのC++勉強会に参加しました。 その時、std::unordered_mapの議論もありました。 C++Builderでは、std::unordered_mapも使用できます。 刈谷さんがstd::unordered_mapについて詳しくスライド…

Xcode Version 8.3.3 (8E3004b) + PAServer 10.0.1.30

10.2 Tokyo PAServer 10.0.1.30 10.2のHotfix1でPAServer 10.0.1.30にアップデートされています。 デバッグモードでは問題なく使えます。 ですが、Ad hocでは下記のエラーが出ます。 [PAClient Error] Error: E0776 '"/usr/bin/xcrun" -sdk iphoneos Package…

SQLite ローカル時間取得 select datetime('now') as now_

SQLiteで ローカル時間取得 select datetime('now') as now_ これだと日本時間が出ないので select datetime('now', 'localtime') as now_ ‘localtime'を指定すると日本時間で取得できる。

AngularJSとnode.js インストール

RAD Studioロードマップ(2017年5月付)に書いていますが、 10.3 以降のRAD ServerでAngularJSクライアントがサポートされます。 Angular は、JavaScriptで書かれたOpen Sourceのフロントエンド Webフレームワークです。 先日、Angular release is 4.0.され…

git 作成からbrunchも作成してmerge

リモートでリポジトリを作ると git init git add README.md git commit -m "first commit" git remote add origin [リモートURL.git] git push -u origin master リモート側(サーバ)のローカルcloneを作る場合 git clone [リモートURL] ローカルcloneからbra…

Androidでファイルの配置[assets\internal\]

C++Builder でAndroidのファイルを配置する場合 配置指定 配置場所 コード assets\internal\ u"/data/user/0/..[アプリ名]/files/[ファイル名]“ GetDocumentsPath() UnicodeString dbfile_ = System::Ioutils::TPath::Combine(System::Ioutils::TPath::GetDo…

エラー(アクティブ) E1696 ソース ファイルを開けません "SDKDDKVer.h"

VC2017で Linux環境作った後、WInのコンソールプロジェクトを新たに作ると 重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 エラー(アクティブ) E1696 ソース ファイルを開けません "SDKDDKVer.h" test01 c : \vs2017\cpp_win\test01\test01\ta…

C++BuilderでDelphiのジェネリクスCollections TDictionary__2 などを使う場合

C++BuilderでDelphiのジェネリクスCollections TDictionary__2などを使う場合 How to Handle Delphi Generics in C++ - RAD Studio 上記URLにもありますが TList__1<TObject* >*こんなのを作るとilink32, ilink64エラーになります [ilink32 Error] Error: Unresolved e</tobject*>…

How to use TADOQuery* with C++Builder Console

TADOQueryを使うためのヘッダー #include <Data.DB.hpp> #include <Data.Win.ADODB.hpp> インスタンスを作成 int _tmain(int argc, _TCHAR* argv[]) { TADOQuery* a=new TADOQuery(nullptr); } 実行してもリンクエラーになります [ilink64 エラー] Error: Unresolved external 'vtable for Dat</data.win.adodb.hpp></data.db.hpp>…

bcc32c(clang) std::round()でエラー 回避するには

bcc32c(clang) std::round()でエラー bcc32cではstd:: round()下記コードでエラーが出ます(bcc64は問題なし) 10.1 Berlin Update 2でもまだ同じく直ってません several unresolved functions declared in <math.h> unsigned int float2int(float in) { unsigned int </math.h>…

Visual C++ 2015 cpprestsdkを使ってREST受信

Visual C++ 2015 cpprestsdkを使ってREST受信する マイクロソフトさんがgithubで公開しているREST SDKです github.com/Microsoft/cpprestsdk NuGetからcpprestsdkが取れます How to use the C Rest SDK NuGet package · Microsoft/cpprestsdk Wiki · GitHub …

std::wstring to byte[]

VC++2015の場合 #include "stdafx.h" #include <string> #include <iostream> #include <memory> #include <sstream> #include <locale> using Byte = char; using PByte = std::shared_ptr<Byte>; PByte WstrToChar(std::wstring& s1) { unsigned int iLength = s1.length() * 2 + 1; PByte result_{new Byte[</byte></locale></sstream></memory></iostream></string>…

Using The FireMonkey Save State(OnSaveState) , TFileStream and TBinaryReader, TBinaryWriter

The FireMonkey TForm OnSaveState events is implemented. http://docwiki.embarcadero.com/RADStudio/Berlin/en/FireMonkey_Save_State OnSaveState is a TForm of events. OnSaveState is very useful in mobile. It is, because generated at the time o…

Berlin C++11 lambdaでstd::function<>とTFunc<>両方使う方法

std::function<>とTFunc<>両方を同じ関数でセットできるようにする。 std::function<>用 #include <functional> template<typename T, bool=true > int __fastcall func2(T fn1, int i1, int i2) { return fn1(i1, i2); } TFunc<>用 template<typename T, bool=false> int __fastcall func2(_di_TFunc__3<int, int, int > fn1, int i1, int</int,></typename></typename></functional>…

Let template of TNotifyEvent<TObject* >

TNotifyEvent is without the need for templates. Because the event template unaware. typedef void __fastcall (__closure *TNotifyEvent)(System::TObject* Sender); OK remain now. Making a template with TNotifyEvent TNotifyEvent is set to TNoti…

10.1 Berlin WebBroker 文字列をSJISにする

10.1 Berlin WebBroker TWebResponse いつからなのかWebBrokerのTWebResponse.Contentを返すとUTF8になっている。 Response.Content := '文字列' SJISで返す簡単な方法 昔からのインターフェイスでSJISを返したい場合 {Delphiの場合} Response.ContentStream…

TJSONObject::ParseJSONValue()で文字列からTJSONArrayにする

TJSONObject::ParseJSONValue() 文字列をTJSONObjectなどに変換してくれる。 TJSONArrayにも変換可能。 JSONファイル //こんなJSONがあったとして UnicodeString us = L"[{\"Key\":\"00\",\"n\":\"会社名\"},{\"Key\":\"01\",\"n\":\"ABC社\"}]"; Delphiの場…

TNetHTTPClient, TNetHTTPRequest Post

TNetHTTPClient, TNetHTTPRequest Post dfmファイル object Form1: TForm1 Caption = 'Form1' Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = Fals…

phpで(TSV)タブ区切りファイルを読む

入力タブ区切りファイル a \t b \t c \t d phpコード eof()) { $line_= $file_->fgetcsv("\t"); if (! empty($line_[0])) { echo $line_[0]; echo $line_[1]; echo $line_[2]; echo $line_[3] . "\n"; } } ?>

Amazon Linux(EC2)のUTC時間を日本時間(JST)に変更

zoneinfo/Japanファイルをlocaltimeにコピーする mv /etc/localtime /etc/localtime.1 cp /usr/share/zoneinfo/Japan /etc/localtime これで再起動しなくても日本時間(JST)になりました

Ubuntu 15.10に Firebird-3.0.0をインストール

Firebird-3.0ダウンロード先 firebirdsql.org/ #Firebird-3.0.0.32483-0.amd64.tar.gzをダウンロードする wget https://sourceforge.net/projects/firebird/files/firebird-linux-amd64/3.0-Release/Firebird-3.0.0.32483-0.amd64.tar.gz Firebird-3.0.0.324…