[rank:a]の検索結果


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)

レンタルサーバーとは

レンタルサーバーとは、ホームページの運営やメールの送受信に必要となるサーバーをインターネット経由でレンタルするサービスで、1台のサーバーを複数のユーザーが使用するものは共用サーバー、1台のサーバーを1ユーザーが使用するものは専用サーバーと呼ばれる。

おすすめの格安レンタルサーバー
簡単にブログが作成できるレンタルサーバー
Movable Type がインストール可能なレンタルサーバー
独自ドメインのブログサイトが簡単に構築できるレンタルサーバー
格安ドメイン取得サービス「muumuu domain(ムームードメイン)」
レンタルサーバーリンク集

[275] Posted by kagahiro at 2005/04/18 21:55:00
0 point | Link (16) | Trackback (0) | Comment (0)

IBMがオープンソースのメインフレームエミュレータを開発している企業に対して、特許で威嚇したことに対して著名なオープンソース支持者であるFlorian Mueller氏がIBMの「これまでのオープンソース支持は偽善」と非難している件について。

IBMはオープンソースを支持し続けるのか?
また、IBMが特許を持ち出してOSSを(用いてビジネスをしている企業を)威嚇したという事実も見逃せない。IBMは一方でOSSを支持する姿勢を示しておきながら、一方では自社にとって都合の悪いOSSは威嚇するということを、CTOが示してしまったのである。都合の良いOSSだけを支持するのは、単なる「利用」であり、「支持」とは言わない。

個人や非営利団体がオープンソースソフトを開発しているならともかく、IBMが上場している株式会社である以上、IBMの不利益となることに対してはそれがOSSであれなんであれ攻撃するというのは、資本主義社会では当然のことではないでしょうか。逆にそうしないと、IBMの経営陣は株主から背任として追求されクビになってしまうでしょう。そしてそれは他の会社、例えば子会社のMySQLごとサン・マイクロシステムズを買収し、今後もMySQLを強化する方針を明らかにしているOracleも同じはずです。

でもそれは最初からわかっていたことで、それをわかった上でこれまで一緒にやってきたのではなかったのかと思うので、いまさらそれを「偽善」といって非難するのは微妙な感じです。

とにかくオープンソースにかかわる開発者は、営利企業がオープンソースを支持するのは、それが彼らにとって金になるときだけだということは忘れてはいけません。

マイコミジャーナル「米IBMの書簡にオープンソース支持者が非難」
開発中のMySQL 5.5、デフォルトエンジンはInnoDB、200%の性能向上。「MySQL Conference & Expo」基調講演で紹介

オープンソースプロジェクトの管理と運営
オーム社 著者:ジャン サンドレッド 価格:2,940円 評価:★★★★★


  • オープンソースの優位性 ★★★★★

powered by amalink

[1823] Posted by kagahiro at 2010/04/14 15:15:03
0 point | Link (1) | Trackback (0) | Comment (0)

ソフトバンクモバイルですか、結局は無難な名前に落ち着いたようですね。ソフトバンクとボーダフォン、合弁会社設立--ボーダフォンは「ソフトバンクモバイル」に(CNET Japan)新ブランド名については、「グループ全体...
[565] Posted by kagahiro at 2006/05/19 14:24:39
0 point | Link (1) | Trackback (0) | Comment (0)

検索エンジンとは、インターネット上のWebサイトなどで公開されているコンテンツをキーワードで全文検索できるWebサイトのことで、Google、Yahoo!、MSNなどが有名である。検索サイトリンク集
[16] Posted by kagahiro at 2005/05/14 16:04:01
0 point | Link (20) | Trackback (0) | Comment (0)

「.com、.net、.org」などの「独自ドメイン」が年間950円(税込み)の業界最安値で取得可能な「格安ドメイン取得」サービス「muumuu domain(ムームードメイン)」さくらインターネットなどの低価格レンタルサーバー...
[994] Posted by kagahiro at 2007/03/08 03:23:02
2 point | Link (6) | Trackback (0) | Comment (2)

ゲーム・オブ・スローンズは、ジョージ・R・R・マーティン(米国の作家・脚本家)著のファンタジー小説「氷と炎の歌(こおりとほのおのうた、A Song of Ice and Fire)」を原作とするHBOドラマシリーズ。ゲーム・オブ...
[2391] Posted by kagahiro at 2014/04/28 11:36:44
0 point | Link (4) | Trackback (0) | Comment (0)

carimo(キャリモ)は、株式会社リブセンスが運営する就活コミュニティサイト。気になる企業をクリップすることで、他の就活生と情報交換をしたり、就活に役立つ情報を共有することができる。また、現在・過去に在籍し...
[2280] Posted by kagahiro at 2013/02/20 15:25:37
0 point | Link (3) | Trackback (0) | Comment (0)

東京地検特捜部は、日産自動車の元会長でルノー会長のカルロスゴーン容疑者を特別背任の疑いで再逮捕した。ゴーン容疑者は2008年10月、自身の資産管理会社による投資で生じた損失約18億5000万円を日産側に負わせたと...
[3022] Posted by kagahiro at 2018/12/21 19:45:12
0 point | Link (2) | Trackback (0) | Comment (0)

PocketPC用のSkype 2.1のベータが公開されました。システム要件は、400 MHz以上のプロセッサを搭載し、WiFiか3Gが使えるPocket PCで、W-ZERO3、W-ZERO3 [es]も対象機種となっている。Skype PocketPC 2.1ベータDownlo...
[820] Posted by kagahiro at 2006/08/18 05:12:26
1 point | Link (1) | Trackback (1) | Comment (0)

|< 先頭へ  < 前へ  10 11 12 13 14  次へ >


アクセスランキング

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

  1. 2NN 2ちゃんねるニュース速報+ナビ (8 PV)
  2. FC2まとめ (3 PV)
  3. [PR]noteで販売している自作EAの一覧 (3 PV)
  4. GMOインターネットがアプリケーション開発者向けにクラウド型開発環境の提供を開始 (2 PV)
  5. ドル円(USDJPY)で爆益を狙うハイリスクハイリターンのMT4向けナンピンマーチンEA「Hyper Dollar」 (2 PV)
  6. 爆益を狙うハイリスクハイリターンのナンピンマーチンEA「Hyper Dollar MT5」 (2 PV)
  7. レンタルサーバー (2 PV)
  8. MT4向け無料ヘッジ(両建て)ツール(EA)「STOPPER FREE」 #自動売買 #FX (2 PV)
  9. 無料メールフォームCGIのダウンロード (2 PV)
  10. 将棋倶楽部24がフィッシャールール(早指し3)導入 (2 PV)

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

  1. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (1158 PV)
  2. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (126 PV)
  3. 2NN 2ちゃんねるニュース速報+ナビ (109 PV)
  4. FC2動画やYouTubeなどから無料動画(映画やドラマ、アニメ、音楽など)を探す方法 (100 PV)
  5. [PR]noteで販売している自作EAの一覧 (71 PV)
  6. zen-coding (62 PV)
  7. 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (49 PV)
  8. FC2まとめ (46 PV)
  9. 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(裁量補助EA)「PositionKeeper MT5」 #FX (41 PV)
  10. Google Maps(グーグルマップ)日本版 - 地図検索、ルート検索 (35 PV)

アクセス統計

ディレクトリ

関連サイト