OLE::Storage_Lite v0.04

by Hippo2000(2000/12/25)


目次


名前

OLE::Storage_Lite - OLEドキュメント・インターフェースのための簡単なクラス (Version: 0.04)


概要

  use OLE::Storage_Lite;
  use strict;
  my $oOl = OLE::Storage_Lite->new("some.xls");
  my $oPps = $oOl->getPpsTree(1); #読込みデータを取得 
  $oPps->save("kaba.xls", 1);     #"kaba.xls"としてデータを保存

説明

OLE::Storage_LiteはOLE構造ファイルの読込と書込を可能にします。Martin Schwartz.さんによるOLE::Storageもご覧ください。

OLE::Storage_Lite::PPSはPPSを表すクラスです。 OLE::Storage_Lite::PPS::Root, OLE::Storage_Lite::PPS::File そして OLE::Storage_Lite::PPS::Dir はOLE::Storage_Lite::PPS.のサブクラスです。


new

$oOle = OLE::Storage_Lite->new($sFile);

コンストラクタ。$sFileのためのOLE::Storage_Liteオブジェクトを作成します。$sFileは正しいファイル名でなければなりません。


getPpsTree

$oPpsRoot = oOle->getPpsTree([$bData]);

OLE::Storage_Lite::PPS::Root としてPPSを返します。他のPPSオブジェクトはその子供として返されます。$bData がtrueであれば、そのオブジェクトはファイルにあるデータを持っています。


getPpsSearch

$oPpsRoot = oOle->getPpsTree($raName [, $bData]);

$raName配列で指定された名前をもつPPSをOLE::Storage_Lite::PPSとして返します。$bData がtrueであれば、そのオブジェクトはファイルにあるデータを持っています。


getNthPps

$oPpsRoot = oOle->getNthPps($iNth [, $bData]);

指定された番号($iNth)のPPSをOLE::Storage_Lite::PPSとして返します。$bData がtrueであれば、そのオブジェクトはファイルにあるデータを持っています。


Asc2Ucs

$sUcs2 = OLE::Storage_Lite::Asc2Ucs($sAsc);

ユーティリティ関数。$sAscにあるすべての文字の後ろに0x00を加えるだけです。


Ucs2Asc

$sAsc = OLE::Storage_Lite::Ucs2Asc($sUcs2);

ユーティリティ関数。$sAscにあるすべての文字の後ろに0x00を削除するだけです。


OLE::Storage_Lite::PPS

OLE::Storage_Lite::PPSはこれらのプロパティを持っています。

No
保存されている順番の番号。
Name
名前。UCS2(いわゆるUnicode)で入っている。
Type
タイプ (1:Dir, 2:File (Data), 5: Root)
PrevPps
前のPPS(No)
NextPps
次のPPS (No)
DirPps
DIR PPS(No).
Time1st
localtimeと同様のフォーマットでのtimestamp1st
Time2nd
localtimeと同様のフォーマットでのtimestamp2nd
StartBlock
スタートブロック番号
Size
PPSの大きさ
Data
そのデータ
Child
子供のPPSの配列リファレンス

OLE::Storage_Lite::PPS::Root

OLE::Storage_Lite::PPS::Rootは2つのメソッドを持っています。


new

$oRoot = OLE::Storage_Lite::PPS::Root->new( $raTime1st, $raTime2nd, $raChild);

コンストラクタ。

$raTime1st, $raTime2nd は ($iSec, $iMin, $iHour, $iDay, $iMon, $iYear, $iHSec).という配列リファレンス。$iSec は秒、$iMin は分、$iHour は時、 $iDay は日、 $iMon は月-1、 $iYear は年- 1900、$iHSec はMath::BigInt.での秒/10,000,000を意味します。

$raChild は子供のPPSの配列リファレンスです。


save

$oRoot = $o<oRoot>->save( $sFile, $bNoAs);

$sFileに情報を保存します。$sFileが'-'であれば、STDOUTを使います。

$bNoAs が定義されると、保存の順序にPPSのNoを利用します。$bNoAsが未定義であれば、PPSの保存順序を計算します。


OLE::Storage_Lite::PPS::Dir

OLE::Storage_Lite::PPS::Dirはメソッドを1つ持っています。


new

$oRoot = OLE::Storage_Lite::PPS::Dir->new( $sName [, $raTime1st] [, $raTime2nd] [, $raChild]);

コンストラクタ。

$sName はPPSの名前。

$raTime1st, $raTime2nd は ($iSec, $iMin, $iHour, $iDay, $iMon, $iYear, $iHSec).という配列リファレンス。$iSec は秒、$iMin は分、$iHour は時、 $iDay は日、 $iMon は月-1、 $iYear は年- 1900、$iHSec はMath::BigInt.での秒/10,000,000を意味します。

$raChild は子供のPPSの配列リファレンスです。


OLE::Storage_Lite::PPS::File

OLE::Storage_Lite::PPS::File はメソッドを1つ持っています。


new

$oRoot = OLE::Storage_Lite::PPS::File->new($sName, $sData);

$sName はPPSの名前。

$sData はPPSのデータ


注意

このモジュールで保存されたVBA(いわゆるマクロ)が入っているファイルはうまく動きません。ファイルから同じ情報を取り出すことはできますが、アプリケーション(Word, Excel ...)ではエラーが発生します。


著作権

The OLE::Storage_Lite module is Copyright (c) 2000 Kawai Takanori. Japan. All rights reserved.

You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.


謝辞

まずなによりMartin Schwartz さんと彼のモジュール OLE::Storageに感謝します。


作者

川合孝典 GCD00051@nifty.ne.jp


参考資料

OLE::Storage


ホーム Perlの小技

ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。