投稿

10月, 2015の投稿を表示しています

Delphi/Indy10 TMessage の長い Subject で文字化け(文字切れ)

Delphi Indy10 TMessage の Subject へ長い文字列を投入して、TIdSMTP 等で送信すると受信環境により、文字が途中までしか表示されない これは、TMessage の Subjectヘッダが 75文字(エンコード後)を超えると改行されるという仕様によるもの(受信環境が Outlook や Gmail, Yahoo Mail 等は、この改行を連結してくれる) ならば Msg.Subject := MyBase64(ASubject); みたいに独自のエンコードで、Base64した ASCIIを投入してやればいいのかというと、それもNG。というのも、投入したエンコード後の値が75文字を超えると、更にBase64でエンコードして、改行してくれるというお節介ぶり では、最終的な実態である IdMsg.LastGeneratedHeaders.Values['Subject'] プロパティへ直接投入すればよいと思ったが、Subjectプロパティからこの値が生成されるタイミング(GenerateHeaderメソッド)は、TIdSMTP では、メール送信時なので入れなおすスキが無い 最終的に Indyのソースをいじるわけですが インストール時のソースを変更しても変化しませんし、パッケージをコンパイルしなおす場合、変更による他アプリケーションへの影響も気になります という事でピンポイントで変更するため、Indyのソースから該当のファイルを取り出して、プロジェクトのディレクトリへコピーします 具体的には(今回の場合) Indyのソースディレクトリ C:\Program Files (x86)\Embarcadero\Studio\[バージョン]\source\Indy10\Protocols から IdCoderHeader.pas IdCompilerDefines.inc をプロジェクトディレクトリへコピーして、都合の良いソースに書き換えます MaxEncLen を大きな数字にするか、該当の箇所をコメントアウトします procedure EncodeWord(AP: Integer); const MaxEncLen = 2048;// 75; var

Amazon定期便・値引きの仕組み

今更ながら Amazon定期便が値引きされる仕組み 1割程度の値引きがあり、設定した月間隔で、同じ商品を届ける Amazon定期便 予告なく発送は行われない 商品が収束の場合、代替を提案される 2回目以降は、契約者ごとの配送日(毎月○日など)あたりに発送される 同月に定期便の商品が複数あると、同梱される 定期便発送と近い時期に Amazonで注文をすると同梱される 値引きの仕組みは、上記項目後半の 同梱により送料を抑えられる ことが大きいのだろう もともと Amazonでは商品を複数注文(定期便以外)した場合、自動割引が適用されることがある 上記の方式を逆手に取って、定期便の発送を早める(毎月発送日を変更せず)には、発送予定日より前に別の商品を注文することで、早い方に合わせて同梱発送できる場合がある

Windows 10 Home の 32bit + 64bit 共用 ISO サイズは 6GB

イメージ
Windows 10 Home の 32bit + 64bit 共用 ISO サイズは 6GB程度あり、4.7GB のDVD-R には焼けません 32bit または 64bit 用であれば、それぞれ 4.7GB未満に収まります

NVR500 RT58i RT57i のACアダプター

ヤマハのルータ RT58i のアダプタがそろそろ壊れ始める時期になってきました RT58i が突然の機能停止で、NVR500を代替に持って行ったら、ACアダプタの故障で NVR500用のACアダプタで代用して完了とかいうワケです 付属ACアダプタの各仕様 NVR500: 12V 2A RT58i: 12V 0.95A RT57i: 9V 1.1A RT58i のACアダプタ は NVR500 のものが流用でき、現在(2015年10月時点)販売中 RT57i のACアダプタ は 電圧: 9V 電流: 1.1A ←以上のアダプタが必要 コネクタ: 外径4.8mm 内径1.7mm と、ズバリを見つけにくい仕様です。ACアダプタ付属の中古品等を用意しておくとよいかもしれません

Mac OS-X でゴミ箱を経由せずにファイルを直接削除

Mac OS-X でゴミ箱を経由せずにファイルを直接削除 alt + command + delete