[PLUS]の検索結果


Perlのsubstr関数ではバイト単位の操作になるので、漢字、ひらがな、カタカナなどの全角文字を文字数で指定して部分文字列を取り出すことができません。それでは不都合なことも多いので、半角英数も全角文字も1文字として部分文字列を取り出すことができる関数を作成します。

以下はそのコードです。[Perl]UTF-8でエンコードされた文字列の文字数を取得するコードと同様に、文字の1バイト目のビットの状態を調べることによってその文字が何バイト文字を判定しています。

#!/usr/bin/perl

use strict;
use warnings;

my $testStr = "ABCDEFGあいうえおアイウエオ愛夢佐々木";

print "substr_utf8($testStr, 0, 5) = " . substr_utf8($testStr, 0, 5), "\n";
print "substr_utf8($testStr, 3, 3) = " . substr_utf8($testStr, 3, 3), "\n";
print "substr_utf8($testStr, 10, 4) = " . substr_utf8($testStr, 10, 4), "\n";
print "substr_utf8($testStr, 13, 5) = " . substr_utf8($testStr, 13, 5), "\n";
print "substr_utf8($testStr, 13) = " . substr_utf8($testStr, 13), "\n";

exit;

# UTF-8でエンコードされた文字列の部分文字列を取り出す
# substr_utf8 (文字列式, オフセット[, 長さ])長さを指定しなかった場合は最後まで
sub substr_utf8 {
    my ($src, $offset, $len) = @_;

    my $srclen = length($src);
    my $pos = 0;
    my $count = 0;
    my $dest = '';

    while ($pos < $srclen) {
        my $code = ord substr($src, $pos, 1); # 先頭のASCIIコード値を取得
        my $bytelen = _bytesize($code);
        if (defined($len)){
            if ($count >= $offset && $count < ($offset + $len)) {
                $dest .= substr($src, $pos, $bytelen);
            }
        } else { # 長さ指定なし
            if ($count >= $offset) {
                $dest .= substr($src, $pos, $bytelen);
            }
        }
        $pos += $bytelen;
        $count++; # 文字数をカウント
    }

    return $dest;
}

# 文字のバイト長を求める
sub _bytesize {
    my $code = shift;
    my $size = 1;
    if (0x80 & $code) { # 1バイト文字以外
        $code <<= 1;
        for my $i (2 .. 8) {
            $size++;
            $code <<= 1;
            last if (!(0x80 & $code));
        }
    }
    return $size;
}

substr_utf8関数では、substr関数を使用して1バイト目のASCIIコード値を取得し、 _bytesize関数を呼び出して文字のバイト数を求め、その文字がパラメータで指定された範囲の場合は、戻り値として返す文字列に連結し、そうでなかった場合は文字数のカウントアップのみ行なっています。

_bytesize関数ではパラメータで渡されたコード値の場合の文字のバイト数を、コード値のビットの状態から判定し戻り値として返しています。

もっと自在にサーバを使い倒す 業務に役立つPerl (Software Design plus)
技術評論社 著者:木本 裕紀


amazon.co.jpのカスタマーレビューを見る
powered by amalink

[2244] Posted by kagahiro at 2012/12/13 10:51:25
0 point | Link (4) | Trackback (0) | Comment (0)


株式会社paperboy&co.が提供しているブログサービス「JUGEM(ジュゲム)」の有料版「JUGEM PLUS」の初期費用が無料になった。これまでは申込月に368円の初期費用がかかっていた。

また、初期費用が無料になったことを記念して、2012年4月1日(日)~2012年5月31日(木)の間にJUGEM PLUSに申し込んだユーザーの中から抽選で8名に8年間、JUGEM PLUSの月額費用が無料になるキャンペーンが実施される。




必ず結果が出るブログ運営テクニック100 プロ・ブロガーが教える“俺メディア”の極意
インプレスジャパン 著者:コグレマサト,するぷ 価格:1,890円


powered by amalink

[2152] Posted by kagahiro at 2012/04/11 21:46:15
0 point | Link (1) | Trackback (0) | Comment (0)

RabbitMQは、メッセージミドルウェアの標準プロトコルを目指すAMQP(Advanced Message Queuing Protocol)をベースとしたオープンソースのメッセージングシステムで、信頼性、可用性、拡張性、プラットフォーム中立性、容易なインストール・設定などが特徴。ライセンスはMPL(Mozilla Public License)。

RabbitMQ is a complete and highly reliable enterprise messaging system based on the emerging AMQP standard. It is licensed under the open source Mozilla Public License and has a platform-neutral distribution, plus platform-specific packages and bundles for easy installation.

RabbitMQ

[2006] Posted by kagahiro at 2010/08/27 16:24:54
0 point | Link (1) | Trackback (0) | Comment (0)

2009年12月15日から、JUGEMの無料版で掲載される広告が「Google AdSense」に変更されるため、無料版「JUGEM」にユーザーが「Google AdSenseアカウント」の広告ユニットを設置することができなくなる(現在設置されて...
[1720] Posted by kagahiro at 2009/12/03 07:50:06
1 point | Link (1) | Trackback (0) | Comment (1)

NTTデータ運営のブログサービス「Doblog」のサービス終了に伴い、ライブドアがDoblogユーザーに対してブログの移転をサポートすることを表明していますが、「はてなダイアリー」を運営するはてなも、Doblogからのブロ...
[1312] Posted by kagahiro at 2009/04/28 13:59:41
0 point | Link (1) | Trackback (0) | Comment (0)

NTTデータ」が運営しているコミュニティ型ブログサービス「Doblog(ドブログ)」が、2009年5月30日でサービスを終了する。終了にあたって、現在閲覧だけに限られているサービスをブログ移転先の周知等のために書き...
[1303] Posted by kagahiro at 2009/04/24 17:14:51
1 point | Link (4) | Trackback (0) | Comment (1)

ヒロセ通商(英: Hirose Financial UK Ltd.)は、主に日本を拠点とする国際的な金融サービス企業で、主に外国為替証拠金取引(FX)、およびCFD(差金決済)の取引サービスを提供しています。特に食品プレゼントキャン...
[1236] Posted by kagahiro at 2008/11/12 17:34:19
2 point | Link (6) | Trackback (2) | Comment (0)

通常無料ブログサービスでは、ブログのURLはブログサービス業者のサブドメイン形式のURLになってしまいますが、有料ブログサービスを利用したり、レンタルサーバーにブログソフトをインストールしてブログを構築する...
[1232] Posted by kagahiro at 2008/10/09 23:48:06
1 point | Link (5) | Trackback (1) | Comment (0)

着メロ配信などを行っている東証一部上場企業のドワンゴが、掲示板「2ちゃんねる」の管理人「西村博之」氏と協力して、「2ちゃんねる」での求人広告を開始(3月31日まで)した。募集は通常のバナー掲示などでは...
[985] Posted by kagahiro at 2007/02/20 03:17:30
0 point | Link (4) | Trackback (0) | Comment (0)

ビジネスブログを開設するならやはりシックス・アパートが提供している有料ブログサービス「TypePad(タイプパッド)」がおすすめです。「TypePad(タイプパッド)」は、シックス・アパートのレンタルサーバー向け高...
[728] Posted by kagahiro at 2006/07/08 12:54:13
0 point | Link (11) | Trackback (0) | Comment (0)

|< 先頭へ  < 前へ  1 2 3  次へ >


アクセスランキング

今日のアクセスランキング TOP 10

  1. FC2まとめ (5 PV)
  2. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (5 PV)
  3. Twitter Lite - 起動時や利用時の読み込み速度が最大30%アップ (3 PV)
  4. 「RPGツクールMV」製ゲームを簡単にiOS、Androidアプリ化する「Monaca for RPGツクール」 #テクノロジー (3 PV)
  5. 2ちゃんねる(2ch) (3 PV)
  6. Google 日本語入力がオープンソースに (3 PV)
  7. 大人気のブランド品即時買取サービス「CASH」がDMM.comにたったの70億円で買い叩かれる (2 PV)
  8. 無料ダイヤルアッププロバイダ「Soloot(ソルート)」 (2 PV)
  9. FC2ブログにコミュニティ機能 (2 PV)
  10. ほしい物リスト (2 PV)

今月のアクセスランキング TOP 10

  1. FC2まとめ (13 PV)
  2. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (8 PV)
  3. 将棋ウォーズPCブラウザ版がchrome、Firefox、edgeなどに対応 (8 PV)
  4. 掲示板CGI ThreadPlus 1.2 のリリース (5 PV)
  5. 「Kindle for the Web」 (5 PV)
  6. FC2ブログにコミュニティ機能 (4 PV)
  7. Jipanguの配布は終了しました (4 PV)
  8. [FX]裁量ポジションを簡単に管理できるMT4向け無料の裁量補助EA「PositionKeeper」 (4 PV)
  9. MySQLのINSERT ... SELECT文でLIMIT句を使用して上位3件のレコードをテーブルに追加する (4 PV)
  10. Twitter Lite - 起動時や利用時の読み込み速度が最大30%アップ (3 PV)

アクセス統計

ディレクトリ

関連サイト