【MQL】全角半角混在文字列を指定バイト数以内にカットする関数

タイトルの件、ちょっとマニアックかもしれません。
普通にMT4を使っているなら需要ないはずw
 
以前、【MQL】OrderSend関数のコメント設定には文字数制限がある という記事で、「OrderSendで発注するとき、コメントに設定できる文字数は半角31文字(全角15文字)まで」というのを紹介しました。
 
対応としてStringSubstr関数やStringFormat関数を使ってコメントを31文字以内にすれば良いのですが、これらの関数は半角全角の区別なく1文字ずつ処理します。
そのためコメントに全角文字が含まれていると、シフトJISで31バイトを超えてしまうためにコメントの設定に失敗します。バイト数でカットしても良いのですが、全角半角混在のときは文字化けが発生してトラブルの元になるかもしれません。
 
そこで全角半角混在文字列を、文字化けすることなく指定バイト数以内にカットする関数を紹介します。
string StringLeftB(string value,int length)
  {
   uchar strArray[];
   int lengthBytes;
   string result=value;
   
   lengthBytes=StringToCharArray(result,strArray)-1;
   while(lengthBytes>length)
     {
      result=StringSubstr(result,0,StringLen(result)-1);
      lengthBytes=StringToCharArray(result,strArray)-1;
     }
   return(result);
  }

例えば
string comment="1二三四五六七八9零1二三四5六七八9零";
comment=StringLeftB(comment,31);
の結果は、シフトJISでの31バイト目が全角文字1バイト目に当りますので
1二三四五六七八9零1二三四5六七
の30バイトになります。
 
ただし、作った本人はコメントに半角文字しか設定しないので、不要な機能かもしれませんw
 

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

コメント

Secret

プロフィール

nekonote

Author:nekonote

EAを作るのが趣味になってしまったらしい。

あとマニアックな運用とかetc...その時の気分で書き殴る(?)
そんなブログ

※当ブログ記事へのリンクはご自由にどうぞ

 
運用は…fx-onのみんなのMT4に公開しているかも?
fx-on 通常会員ページ
fx-on 出品者ページ

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
ブログランキング
にほんブログ村 為替ブログ システムトレード 自作EA派へ





QRコード
QR
RSSリンクの表示
リンク
FX情報サイト
 優秀トレーダーの投資法をゲット!
FX投資情報コミュニティfx-on.com


国内MT4取扱会社
外為ファイネスト カコテン iOsMA (type DI) EURAUD タイアップキャンペーン

アヴァトレード・ジャパン株式会社 カコテン iOsMA (type DI) EURAUD タイアップキャンペーン

FOREX.com×タイアップキャンペーン☆Beatrice-07 FXTF×ForexSolidタイアップキャンペーン



自作EA紹介


EAフォワード集計結果
海外MT4業者
海外業者を選ぶ際は、まず金融庁の「注意喚起」を熟読して下さい。無登録業者で事故っても自己責任ですよ!
自分はゲムトレード&GEMFOREXに突撃してみましたw




自分もカコテンシリーズを幾つか出品しています。 運用結果でネタが集まれば時々記事にします。

ゲムトレードはEAの将来価値をリスクヘッジするには良い仕組みを提供していると思います。ただし本当に実力のあるEAはfx-on等から買った方が良いでしょう。
取引明細には現れませんがIBのような仕組みでゲムトレードへ報酬が渡っていますので、単一EAの長期運用ではデメリットが成績に現れると思われます。

※繰り返しますが海外業者でトラブっても自己責任です。お忘れなく!
FX専用VPS
レンタルサーバーなら使えるねっと



みんなのMT4
紫色:リアル口座
水色:デモ口座
ねこぱんち | fx-on.com
ねこぱんちMAXでも | fx-on.com
ねこのまえあし | fx-on.com
€$ XM demo | fx-on.com
£$ FxPro demo | fx-on.com
€¥ IFC Markets demo 2nd! | fx-on.com
£¥ IC Markets demo  | fx-on.com
$¥ MGK Global demo | fx-on.com
BigBoss demo AUDJPY | fx-on.com
€x LandFX demo | fx-on.com
KAKO10 iIchimoku リアル OANDA | fx-on.com
KAKO10 iIchimoku デモ FXTF | fx-on.com
KAKO10_iMA(H27.5~) | fx-on.com
KAKO10 iMA デモ Axiory(運用終了) | fx-on.com
KAKO10 iMA デモ Axiory新鯖 | fx-on.com
Ava demo iOsMA方向性スイング(運用終了) | fx-on.com
カコテン iOsMA (type DI) デモ Centrade | fx-on.com
カコテン iMomentum (type DI) デモ Arena | fx-on.com
瞬殺!!! NCSEC demo ※運用終了 | fx-on.com
GEMFOREX demo 新サーバーお試し ※破綻 | fx-on.com
 | fx-on.com
 | fx-on.com
 | fx-on.com
 | fx-on.com