Main Content

seek

クラス: matlab.io.datastore.DsFileReader
名前空間: matlab.io.datastore

ファイル内の位置を探索する

構文

numBytes = seek(fr,n)
numBytes = seek(fr,n,Name,Value)

説明

numBytes = seek(fr,n) は、fr オブジェクトで指定されたファイル内の現在の位置からファイル位置指定子を n バイト分前方に移動します。seek は位置指定子が移動した実際のバイト数を返します。

numBytes = seek(fr,n,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して、追加のパラメーターを指定します。たとえば、'Origin','start-of-file' を指定して、seek 処理の開始位置を指定できます。

入力引数

すべて展開する

ファイルリーダー オブジェクト。matlab.io.datastore.DsFileReader オブジェクトとして指定します。DsFileReader オブジェクトを作成する場合は、matlab.io.datastore.DsFileReader を参照してください。

バイト数。整数として指定します。seek メソッドは、指定されたファイル内の現在の位置からファイル位置指定子を n バイト分移動します。n が負の場合、seek はファイル位置指定子を後方に移動します。

例: seek(fr,20)

データ型: double

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: 'RespectTextEncoding',true

文字の境界に従うかどうか。'RespectTextEncoding' とそれに続く true または false で構成されるコンマ区切りのペアとして指定します。

  • true - マルチバイト文字の境界に従う。

  • false - マルチバイト文字の境界に従わない。

例: 'RespectTextEncoding',true

データ型: logical

開始位置。'Origin' とそれに続く次のいずれかの値で構成されるコンマ区切りのペアとして指定します。

  • 'currentposition' - seek 処理をファイル内の現在の位置指定子から開始。

  • 'start-of-file' - seek 処理をゼロの位置から開始。

  • 'end-of-file' - seek 処理をファイルの末尾から開始。

例: 'Origin','start-of-file'

データ型: char | string

ファイル内の位置を探索して読み取る

ファイルのファイルリーダー オブジェクトを作成し、目的の開始位置を探索して、ファイルの一部を読み取ります。

airlinesmall.csvDsFileReader オブジェクトを作成します。

fr = matlab.io.datastore.DsFileReader('airlinesmall.csv');

airlinesmall.csv ファイルの先頭には、変数名があります。変数名の行は、299 バイトでマークされた位置で終了します。変数名の行を無視するには、seek メソッドを使用して、読み取りポインターを開始位置に移動します。

seek(fr,299,'RespectTextEncoding',true);

最初の 1000 文字を読み取ります。

 if hasdata(fr)
    d = read(fr,1000,'SizeMethod','OutputSize','OutputType','char');
 end

バージョン履歴

R2017b で導入