Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.0.0 - 日本語


mgetstr

ファイルから文字列を読み込む

呼び出し手順

str = mgetstr(n [,fd])

引数

n

非負の整数: 読み込む文字数.

fd

整数:mopen から返され, 文字を読み込むファイル記述子. -1は, 直近にオープンされたファイルを意味します.

str

読み込まれた文字列

説明

mgetstr関数は, ファイルから最大n文字を 読込みます. n文字を読み込む前に ファイル終端に達した場合, mgetstrは 適切に読み込まれた値のみを返します. この結果, mgetstrコール時に リードカーソルが既にファイル終端にあった場合, nの設定値によらず 空の文字列が返されます.

fn = SCI + '/ACKNOWLEDGEMENTS'; // ファイルへの絶対パス
details = fileinfo(fn);         // ファイルの詳細を取得
len = details(1);               // ファイルの長さを取得
fd = mopen(fn, 'rt');           // 読込モードでテキストとしてファイルをオープン
str1 = mgetstr(33, fd)          // fdから33文字読み込む
length(str1)                    // 33文字読み込む
str2 = mgetstr(272, fd)         // fdから次の272文字を読み込む
length(str2)                    // 272文字読込まれた
mseek(len - 5);                 // ファイル終端から5文字目にジャンプ
str3 = mgetstr(10, fd)          // 10文字読み込む: 5文字のみ返され, 残りはなし
length(str3)                    // 5文字あることを確認: 改行はみつかりません :)
str4 = mgetstr(10, fd)          // 10文字読込み: 空の文字列が返されます
length(str4)                    // 空の文字列
mclose(fd);                     // ファイル記述子を閉じる

参照

  • mclose — オープンされているファイルを閉じる
  • meof — ファイルの終端に達したかどうかを確認する
  • mfprintf — converts, formats, and writes data to a file
  • fprintfMat — 行列をファイルに書き込む
  • mfscanf — 標準入力から入力を読み込む (C言語の scanf 関数へのインターフェイス)
  • fscanfMat — テキストファイルから行列を読み込む
  • mget — parses numbers in a binary file and returns them as decimals
  • mgetstr — ファイルから文字列を読み込む
  • mopen — ファイルをオープン
  • mprintf — 変換, 整形し, Scilab主ウインドウにデータを書き込む
  • mput — 指定したバイナリ形式でバイトまたはワードを書き込む
  • mputstr — write a single text in an open file
  • mscanf
  • mseek — バイナリファイルの中でカレントの位置を設定する.
  • mtell — ファイル先頭基準でカレントバイトのオフセットを返す
  • mdelete — ファイルを削除
Report an issue
<< mgetl Files : Input/Output functions mopen >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Mar 07 09:28:49 CET 2023