{
    "content": [
        {
            "type": "text",
            "text": "# OLE::Storage_Lite (perldoc)\n\n## NAME\n\nOLE::StorageLite - Simple Class for OLE document interface.\n\n## SYNOPSIS\n\nuse OLE::StorageLite;\n# Initialize.\n# From a file\nmy $oOl = OLE::StorageLite->new(\"some.xls\");\n# From a filehandle object\nuse IO::File;\nmy $oIo = new IO::File;\n$oIo->open(\"<iofile.xls\");\nbinmode($oIo);\nmy $oOl = OLE::StorageLite->new($oFile);\n# Read data\nmy $oPps = $oOl->getPpsTree(1);\n# Save Data\n# To a File\n$oPps->save(\"kaba.xls\"); #kaba.xls\n$oPps->save('-');        #STDOUT\n# To a filehandle object\nmy $oIo = new IO::File;\n$oIo->open(\">iofile.xls\");\nbimode($oIo);\n$oPps->save($oIo);\n\n## DESCRIPTION\n\nOLE::StorageLite allows you to read and write an OLE structured file.\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **CAUTION**\n- **DEPRECATED FEATURES**\n- **COPYRIGHT**\n- **ACKNOWLEDGEMENTS**\n- **AUTHOR**\n- **SEE ALSO**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "OLE::Storage_Lite",
        "section": "",
        "mode": "perldoc",
        "summary": "OLE::StorageLite - Simple Class for OLE document interface.",
        "synopsis": "use OLE::StorageLite;\n# Initialize.\n# From a file\nmy $oOl = OLE::StorageLite->new(\"some.xls\");\n# From a filehandle object\nuse IO::File;\nmy $oIo = new IO::File;\n$oIo->open(\"<iofile.xls\");\nbinmode($oIo);\nmy $oOl = OLE::StorageLite->new($oFile);\n# Read data\nmy $oPps = $oOl->getPpsTree(1);\n# Save Data\n# To a File\n$oPps->save(\"kaba.xls\"); #kaba.xls\n$oPps->save('-');        #STDOUT\n# To a filehandle object\nmy $oIo = new IO::File;\n$oIo->open(\">iofile.xls\");\nbimode($oIo);\n$oPps->save($oIo);",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 28,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 167,
                "subsections": []
            },
            {
                "name": "CAUTION",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "DEPRECATED FEATURES",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "COPYRIGHT",
                "lines": 6,
                "subsections": []
            },
            {
                "name": "ACKNOWLEDGEMENTS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 8,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "OLE::StorageLite - Simple Class for OLE document interface.\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "use OLE::StorageLite;\n\n# Initialize.\n\n# From a file\nmy $oOl = OLE::StorageLite->new(\"some.xls\");\n\n# From a filehandle object\nuse IO::File;\nmy $oIo = new IO::File;\n$oIo->open(\"<iofile.xls\");\nbinmode($oIo);\nmy $oOl = OLE::StorageLite->new($oFile);\n\n# Read data\nmy $oPps = $oOl->getPpsTree(1);\n\n# Save Data\n# To a File\n$oPps->save(\"kaba.xls\"); #kaba.xls\n$oPps->save('-');        #STDOUT\n\n# To a filehandle object\nmy $oIo = new IO::File;\n$oIo->open(\">iofile.xls\");\nbimode($oIo);\n$oPps->save($oIo);\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "OLE::StorageLite allows you to read and write an OLE structured file.\n\nOLE::StorageLite::PPS is a class representing PPS. OLE::StorageLite::PPS::Root,\nOLE::StorageLite::PPS::File and OLE::StorageLite::PPS::Dir are subclasses of\nOLE::StorageLite::PPS.\n\nnew()\nConstructor.\n\n$oOle = OLE::StorageLite->new($sFile);\n\nCreates a OLE::StorageLite object for $sFile. $sFile must be a correct file name.\n\nThe \"new()\" constructor also accepts a valid filehandle. Remember to \"binmode()\" the filehandle\nfirst.\n\ngetPpsTree()\n$oPpsRoot = $oOle->getPpsTree([$bData]);\n\nReturns PPS as an OLE::StorageLite::PPS::Root object. Other PPS objects will be included as its\nchildren.\n\nIf $bData is true, the objects will have data in the file.\n\ngetPpsSearch()\n$oPpsRoot = $oOle->getPpsTree($raName [, $bData][, $iCase] );\n\nReturns PPSs as OLE::StorageLite::PPS objects that has the name specified in $raName array.\n\nIf $bData is true, the objects will have data in the file. If $iCase is true, search is case\ninsensitive.\n\ngetNthPps()\n$oPpsRoot = $oOle->getNthPps($iNth [, $bData]);\n\nReturns PPS as \"OLE::StorageLite::PPS\" object specified number $iNth.\n\nIf $bData is true, the objects will have data in the file.\n\nAsc2Ucs()\n$sUcs2 = OLE::StorageLite::Asc2Ucs($sAsc>);\n\nUtility function. Just adds 0x00 after every characters in $sAsc.\n\nUcs2Asc()\n$sAsc = OLE::StorageLite::Ucs2Asc($sUcs2);\n\nUtility function. Just deletes 0x00 after words in $sUcs.\n\nOLE::StorageLite::PPS\nOLE::StorageLite::PPS has these properties:\n\nNo  Order number in saving.\n\nName\nIts name in UCS2 (a.k.a Unicode).\n\nType\nIts type (1:Dir, 2:File (Data), 5: Root)\n\nPrevPps\nPrevious pps (as No)\n\nNextPps\nNext pps (as No)\n\nDirPps\nDir pps (as No).\n\nTime1st\nTimestamp 1st in array ref as similar format of localtime.\n\nTime2nd\nTimestamp 2nd in array ref as similar format of localtime.\n\nStartBlock\nStart block number\n\nSize\nSize of the pps\n\nData\nIts data\n\nChild\nIts child PPSs in array ref\n\nOLE::StorageLite::PPS::Root\nOLE::StorageLite::PPS::Root has 2 methods.\n\nnew()\n$oRoot = OLE::StorageLite::PPS::Root->new(\n$raTime1st,\n$raTime2nd,\n$raChild);\n\nConstructor.\n\n$raTime1st, $raTime2nd are array refs with ($iSec, $iMin, $iHour, $iDay, $iMon, $iYear). $iSec\nmeans seconds, $iMin means minutes. $iHour means hours. $iDay means day. $iMon is month -1.\n$iYear is year - 1900.\n\n$raChild is a array ref of children PPSs.\n\nsave()\n$oRoot = $oRoot>->save(\n$sFile,\n$bNoAs);\n\nSaves information into $sFile. If $sFile is '-', this will use STDOUT.\n\nThe \"new()\" constructor also accepts a valid filehandle. Remember to \"binmode()\" the filehandle\nfirst.\n\nIf $bNoAs is defined, this function will use the No of PPSs for saving order. If $bNoAs is\nundefined, this will calculate PPS saving order.\n\nOLE::StorageLite::PPS::Dir\nOLE::StorageLite::PPS::Dir has 1 method.\n\nnew()\n$oRoot = OLE::StorageLite::PPS::Dir->new(\n$sName,\n[, $raTime1st]\n[, $raTime2nd]\n[, $raChild>]);\n\nConstructor.\n\n$sName is a name of the PPS.\n\n$raTime1st, $raTime2nd is a array ref as ($iSec, $iMin, $iHour, $iDay, $iMon, $iYear). $iSec\nmeans seconds, $iMin means minutes. $iHour means hours. $iDay means day. $iMon is month -1.\n$iYear is year - 1900.\n\n$raChild is a array ref of children PPSs.\n\nOLE::StorageLite::PPS::File\nOLE::StorageLite::PPS::File has 3 method.\n\nnew\n$oRoot = OLE::StorageLite::PPS::File->new($sName, $sData);\n\n$sName is name of the PPS.\n\n$sData is data of the PPS.\n\nnewFile()\n$oRoot = OLE::StorageLite::PPS::File->newFile($sName, $sFile);\n\nThis function makes to use file handle for getting and storing data.\n\n$sName is name of the PPS.\n\nIf $sFile is scalar, it assumes that is a filename. If $sFile is an IO::Handle object, it uses\nthat specified handle. If $sFile is undef or '', it uses temporary file.\n\nCAUTION: Take care $sFile will be updated by \"append\" method. So if you want to use IO::Handle\nand append a data to it, you should open the handle with \"r+\".\n\nappend()\n$oRoot = $oPps->append($sData);\n\nappends specified data to that PPS.\n\n$sData is appending data for that PPS.\n",
                "subsections": []
            },
            "CAUTION": {
                "content": "A saved file with VBA (a.k.a Macros) by this module will not work correctly. However modules can\nget the same information from the file, the file occurs a error in application(Word, Excel ...).\n",
                "subsections": []
            },
            "DEPRECATED FEATURES": {
                "content": "Older version of \"OLE::StorageLite\" autovivified a scalar ref in the \"new()\" constructors into\na scalar filehandle. This functionality is still there for backwards compatibility but it is\nhighly recommended that you do not use it. Instead create a filehandle (scalar or otherwise) and\npass that in.\n",
                "subsections": []
            },
            "COPYRIGHT": {
                "content": "The OLE::StorageLite module is Copyright (c) 2000,2001 Kawai Takanori. Japan. All rights\nreserved.\n\nYou may distribute under the terms of either the GNU General Public License or the Artistic\nLicense, as specified in the Perl README file.\n",
                "subsections": []
            },
            "ACKNOWLEDGEMENTS": {
                "content": "First of all, I would like to acknowledge to Martin Schwartz and his module OLE::Storage.\n",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Kawai Takanori kwitknr@cpan.org\n\nThis module is currently maintained by John McNamara jmcnamara@cpan.org\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "OLE::Storage\n\nDocumentation for the OLE Compound document has been released by Microsoft under the *Open\nSpecification Promise*. See http://www.microsoft.com/interop/docs/supportingtechnologies.mspx\n\nThe Digital Imaging Group have also detailed the OLE format in the JPEG2000 specification: see\nAppendix A of http://www.i3a.org/pdf/wg1n1017.pdf\n",
                "subsections": []
            }
        }
    }
}