- ベストアンサー
[VBScript]バイト長の判定
G_Aminoの回答
参考URLのような関数を作成すれば、ご希望のバイト長を出すことができます。JavaScriptで書かれていますが、VBScriptからも呼び出すことができます。 <SCRIPT TYPE="text/JavaScript"> ~ </SCRIPT>で囲んで、メインのスクリプトより前に記述してください。
関連するQ&A
- Vbscript Unicode文字の判定
今、テキストファイルがあり、その中には「Unicode文字」が含まれています。 タックシール(ダイレクトメール用)に出力するのに、マンション名やビル名は改行しなければなりません。 1行に印字できる文字数は全角で20文字(40バイト)です。 したがって、「住所1」と「住所2(マンションやビル名)」の正確なバイト数を調べるのですが、今、「Unicode」のテキストファイルを作って、確かめたところ、半角文字は、そのまま「Asc()」で正の整数で返ってきます。 また、通常の2バイト文字(全角スペースから外字の最終文字)までは、負の整数で返ってきました。 しかし、「Unicode」文字は、常に「63」で返ってきます。 Character Code「63」は、半角の「?」です。 どうやら、「VBScript」は「Unicode」文字をすべて「?」として認識してしまうようです。 通常は、住所に「?」はないはずなのですが、最近、お客様のデータを見ていると、半角の「-」が、よく、半角の「?」に化けているので、「?」はちゃんと1バイトとして、Unicodeの文字は2バイトとして調べなければなりません。 VBAのように「Len()」と「LenB()」があれば、問題ないのですが、「VBScript」では、正しく動作しません(すべて「2」と返してきます)。 正確に文字数(バイト数)を調べるには、どうすればよいのでしょうか?
- 締切済み
- その他(ソフトウェア)
- バイト数
こんにちわ。 VB6でのすごく初歩的な質問なんですが、テキストボックスの中の文字のバイト数をLenB関数で取得して表示させようとしたのですが、半角も全角も1文字2バイトとでてしまいますがなぜでしょうか? お暇なときで結構ですのでどなたか回答をおねがいします。
- ベストアンサー
- Visual Basic
- 文字列の中に2バイトが含まれているか調べたい
文字列の中に、2バイト(つまり全角)が含まれているかどうかを調べたいです。 VBなどでは、LenB(StrConv(Value, vbFromUnicode))とかで、調べられるのですが、Pealではどのような関数を用いれば良いでしょうか・ 最適な関数、あるいは手法があれば、教えてくださいませ。 よろしくお願いします。
- ベストアンサー
- Perl
- VB2008で全角半角の判定
VB2008で全角半角の判定 VB6 では下記のようにして判定していましたが、VB2008では どのようにすればよいのかお教えください。 dim moji as string dim zhN as integer zhN = LenB(StrConv(moji, vbFromUnicode)) mojiには1文字格納されており、 半角なら zhN = 1 全角なら zhN = 2 となる。 これをVB2008で実現する方法がわかりません。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- Excelで22バイトの文字を数えたい
Excel2002です。 VBAでセルの文字列を取得する時に全角制御文字(2バイト)を含めて22バイトの制限を考慮したいのですがその方法がわかりません。 全角文字だけなら10文字、 半角文字だけなら22文字の取得ができます。 その後の作業の都合上、22バイトを基準に条件判断したいのですが現在はその方法がわからないためLEN()で10を上限としています。LENB()でも同じ結果(文字数が返される)になります。 対象のセルには全角文字/半角文字が混在しており、全角-半角-全角-半角のような混在であれば制御文字を2回考慮する必要があります。 最悪その文字が全角か半角かの区別がつけば対応できると思います。 よい方法をご教授いただきたくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- ACCESS97 : レコードが長いファイルのインポートについて
ACCESS97で、文字列を文字数ではなくバイト数で扱うことは可能でしょうか。 1レコードが20,000ByteあるテキストファイルをACCESS97のテーブルに インポートしようとしています。 インポート先のテーブルのフィールドをすべて「メモ型」にしたのですが、 インポート定義を利用してインポートを行おうとすると、 「レコードが大きすぎます。」というエラーが発生します。 そこで、プログラムでファイルを1レコードずつ読み込みながらテーブルに インサートしていく方法を取ろうかと思います。 テキストファイルは半角と全角が混在しているのですが、困ったことに 全角のデータが入るべきところに半角が混ざっている可能性があります。 たとえば、全角10文字入るべき場所に半角の空白が20文字入っていると いうような状態です。 この状態で StrConv関数でUnicodeに変換してからMidB$関数で文字を抜き 出すと、フィールドがずれてきます。 1文字目から10文字分、ではなく1Byte目から10Byte、などというように文 字列を扱うことができれば、全角と半角がどのような位置で混在していても 関係なくプログラム上で扱うことができると思うのですが,方法がわかりません。 また、これ以外で長いレコードのファイルをインポートできる方法があれば 教えていただきたいと思います。 長くなってしまいましたが、ご回答をいただけますようよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- セル内の文字で半角2文字で1文字とカウントしたい
openofficeを利用しています。 セル内の全角と半角が混じった文章から半角2文字で1文字とカウント 全角はそのまま1文字とカウント して文字数を数えることはできますでしょうか? LENBが利用できないので困っています。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- [VBScript][wsh]byte単位でのデータの切り出し
以前LenBに関して質問した者です。 今回は 「ある文字列の○byte目から△byte分取得する」という処理で困っています。 MidB関数を使うと思うのですが、Unicodeの為、 BASP21の.KconvでSJISに変換してあげています。 HOGEasc = objBasp.Kconv(MidB(tmpLine, ○, △),1) ここで問題となるのが、切り出した文字列が化けてしまうのです。 以下のようにもう一度Unicodeに変換してあげてもダメです。 HOGEuni = objBasp.Kconv(HOGEasc,4) いろいろ試してみましたが、お手上げ状態です。 このような処理はできないのでしょうか? どうぞよろしくお願いいたします。
- ベストアンサー
- Visual Basic
- 文字のバイト数を数えるには
なんか一日一問になってしまったのですが、、 よろしくお願いします。 wchar_t 型に入っている文字のバイト数を数えるにはどうしたら良いでしょうか? L"あいう123" のような文字の場合UNICODEの場合12バイトですが、 全角半角区別して9バイトを求めたいです。 UNICODE環境では不可能でしょうか?
- ベストアンサー
- C・C++・C#
お礼
G_Aminoさん ありがとうございます。 「Script.js」に「jstrlen関数」を記述し、 呼び出し元のwsfに下記の記述で呼び出したところ、 <SCRIPT TYPE="text/javascript" SRC="./Script.js"></SCRIPT> javaScriptと認識されたためか、呼び出し元ソースでエラーとなってしまいました。 wsfでも使えますでしょうか?
補足
<SCRIPT language="JScript" SRC="./Script.js"></SCRIPT> で呼び出してあげたらうまくいきました! ありがとうございました。