⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 warmread.sty

📁 sift的matlab代码
💻 STY
📖 第 1 页 / 共 3 页
字号:
%%%% WARMreader.sty v1.2%% 5 July 2001%%%% by Ross Moore, <ross@mpce.mq.edu.au> %%\edef\wrmprevat{\the\catcode`\@}\catcode`\@=11%%%%  If you have trouble finding files,%%  then we may need to know the directory delimiter;%%  so uncomment one of the following lines...%%\ifx\undefined\@currdir  % ... get it from LaTeX's config file:% \input texsys.cfg \ifx\undefined\@currdir  % ... or specify it directly:  \def\@currdir{}% ... or try winging-it without% \def\@currdir{:}%  for Macintosh % \def\@currdir{:}%  for Unix \fi\fi\ifx\undefined\codeof {\catcode`\:=12 \gdef\codeof#1{\expandafter\codeof@\meaning#1<-:} \gdef\codeof@#1:->#2<-:{#2}%}\fi\newread\wrmread\newread\wrm@write\let\wrm@next=\relax\def\wrm@empty{}%\def\maxwrmlines{20}\let\wrm@tmp\relax\def\EndLinePattern{!;!}\let\wrm@quiet\relax\def\wrmquiet{\def\wrm@quiet{}}\def\wrmverbose{\let\wrm@quiet\relax}\newcount\wrmcounter\newcount\wrmdatacounter\newif\ifmorelines\morelinestrue\newwrite\wrm@tmpfile\def\wrm@recovercode{%  \immediate\openout\wrm@tmpfile=\jobname.wrm  \relax\immediate\write\wrm@tmpfile{{\codeof\wrm@text}}\relax  \immediate\closeout\wrm@tmpfile\relax  \immediate\openin\wrmread=\jobname.wrm  \read\wrmread to \wrm@text  \immediate\closein\wrmread  \expandafter\expandafter\expandafter\def  \expandafter\expandafter\expandafter\wrm@text  \expandafter\expandafter\expandafter{\expandafter   \strip@endline\wrm@text \strip@endline}%}\let\WARM@PreDataString=\relax\let\WARM@EndFileString=\relax\def\wrm@defprefix{datapoint}\let\wrm@prefix=\wrm@defprefix\def\WARMprefix#1{\def\wrm@prefix{#1}\WARM@prefixMessage\ignorespaces}\def\WARM@prefixMessage{% \wrm@message{Using prefix '\wrm@prefix' for unlabelled points.}}\def\wrm@message#1{{\let\protect=\noexpand \let\\\relax \endlinechar=10 \immediate\write16{#1}}}%\def\WARMprocess#1#2#3{% \WARMprocessDir{\@currdir}{#1}{#2}{#3}}%\def\WARMprocessDir#1#2#3#4#5{\begingroup \begingroup  \wrmdatacounter=\z@ \let\wrm@llx=\undefined% \def\CleanupAfterDir{\endgroup}% \def\fileprefix{#2}% \def\fileextn{#3}% \def\dataextn{#4}% \ifx\dataextn\wrm@empty \else  \WARM@RelaxOpenFileMessage  \edef\wrm@filename{#1\fileprefix.\dataextn}%  \TryToOpenTheFile\relax \fi \ifnum\wrmdatacounter<\z@  \aftergroup\WARM@RelaxOpenFileMessage  \aftergroup\WARM@RelaxBBWrite  \aftergroup\WARM@ReadDataFromFile \else  \edef\wrm@filename{\@currdir\fileprefix.\fileextn}%  \TryToOpenTheFile\relax  \ifnum\wrmdatacounter<\z@   \aftergroup\WARM@ReadDataToFile  \else   \aftergroup\WARM@NoFilesError \fi\fi \endgroup {#1#2}{#3}{#4}{#5}\CleanupAfterDir \def\wrm@filename{#1#2.#3}%}\def\CleanupAfterDir{% \ifx\undefined\wrm@llx\expandafter\endgroup \else\expandafter\saveBBafterFile\fi}\def\WARM@NoFilesError#1#2#3#4{% \message{Cannot open file #1.#2 nor #1.#3 }}\def\WARM@ReadDataFromFile#1#2#3#4{% \def\wrm@filename{#1.#3}% \expandafter\ProcessFile\expandafter{\wrm@filename}{#4}%}\def\WARM@ReadDataToFile#1#2#3#4{% \begingroup  \def\wrm@filename{#1.#3}%  \immediate\openout\wrm@write=\wrm@filename  \def\wrm@filename{#1.#2}%  \expandafter\ProcessFile\expandafter{\wrm@filename}{#4}%  \immediate\closeout\wrm@write \endgroup \WARM@ReadDataFromFile{#1}{#2}{#3}{#4}%}\def\TryToOpenTheFile{% \immediate\openin\wrmread\wrm@filename\relax \ifeof\wrmread  \expandafter\TryAgainToOpenTheFile \else  \read\wrmread to\ThisFileLine  \expandafter\FileIsOpen \fi}\def\ReadLineFromFile{% \ifeof\wrmread \morelinesfalse \else \read\wrmread to\ThisFileLine \fi {\ifx\ThisFileLine\wrm@empty   \ifmorelines\aftergroup\ReadLineFromFile\fi\fi}%}\def\CloseTheFile#1{\immediate\closein\wrmread}\def\FileIsOpen{\ResetDataCounter\FileIsOpenMessage}\def\FileIsOpenMessage{\message{%  opened file \wrm@filename\space successfully:\codeof\ThisFileLine}}\def\WARM@RelaxOpenFileMessage{\let\FileIsOpenMessage\relax}\def\TryAgainToOpenTheFile{% \immediate\closein\wrmread \immediate\openin\wrmread\wrm@filename\relax \ifeof\wrmread\expandafter\FileEmptyError \else\expandafter\FileIsOpen\fi}\def\FileEmptyError{% \message{file \wrm@filename\space could not be opened or is empty.}% \futurelet\next\CloseTheFile}{\obeylines\gdef\PrepareToOpenFile{% \begingroup \catcode`\%=12 \catcode`=9 \catcode`\{=12 \catcode`\}=12}\gdef\EndLineAdjust{\def\strip@endline##1\strip@endline{##1}}\gdef\strip@endline#1 \strip@endline{#1}%\gdef\strip@endline#1\strip@endline{#1}}\def\ProcessFile#1#2{% \def\wrm@filename{#1}% \PrepareToOpenFile \TryToOpenTheFile#2% \CleanupAfterFile}\def\CleanupAfterFile{\endgroup}\def\TestIfEnd{% \ifx\ThisFileLine\WARM@EndFileString\message{Finishing with `\WARM@EndFileString' after \number\wrmcounter\space lines.}%  \morelinesfalse  \wrmcounter\maxwrmlines\advance\wrmcounter\@ne \fi }\def\TestMoreLines{% \ifnum\wrmcounter<\maxwrmlines\relax \else\morelinesfalse\fi}\def\TestReadLine#1#2{\begingroup \def\DataPattern{#2}\def\Empty{}% \ifx\DataPattern\Empty  \def\next{\endgroup\TestExactLine#1}% \else  \def\protect{\noexpand}% for "robust" LaTeX commands%  \edef\testdata{\ThisFileLine\space\StrippedDataPattern\EndLinePattern}%  \edef\testdata{\StrippedDataPattern\EndLinePattern}%  \expandafter\expandafter\expandafter\def  \expandafter\expandafter\expandafter\testdata  \expandafter\expandafter\expandafter{\expandafter\ThisFileLine\testdata}%%\show\testdata  \edef\tmp{\gdef\noexpand\ThisData\DataPattern\EndLinePattern}%  \expandafter\tmp\expandafter{\the\WARM@ExpansionToks}%  \expandafter\ThisData\testdata  \relax \def\next{\endgroup}%  \ifx\undefined\wrm@llx   \ifdim\wrm@aspect\p@=\p@\else\SaveARvalues@\fi  \else\SaveBBvalues@\fi  \aftergroup\TestExactLine\aftergroup#1\relax \fi \next }\def\declareWRMdata#1#2#3{{%\gdef\wrm@namespace{#2}% \DN@{#2}\ifx\next@\empty\let\wrm@namespace\relax \else\gdef\wrm@namespace{#2}\fi \def\ThisFileLine{#1}\TestDataLine\WRM@DataPattern\WRM@DataStripped\relax}}\def\wrm@namespace{}\def\wrm@savedata{% check for End of Data  \ifx\testdata\WARM@EndDataTestString\aftergroup\morelinesfalse \else\aftergroup\morelinestrue  \ifx\testdata\WARM@PreDataString   \aftergroup\AdvanceDataCount   \ifx\wrm@namespace\relax   \else    \expandafter\expandafter\expandafter    \def\expandafter\expandafter\expandafter\wrm@texstring    \expandafter\expandafter\expandafter{\expandafter\wrm@namespace\wrm@texstring}%   \fi   \let\protect\noexpand   \ifx\wrm@quiet\relax    \wrm@message{Marked '\wrm@label' point at (\wrm@x,\wrm@y) for \codeof\wrm@texstring.}%   \fi   \edef\tmp@{\noexpand\def\noexpand\wrm@x{\wrm@x}%    \noexpand\def\noexpand\wrm@y{\wrm@y}}%   \expandafter\expandafter\expandafter\def   \expandafter\expandafter\expandafter\tmp@   \expandafter\expandafter\expandafter{%   \expandafter\expandafter\expandafter\def   \expandafter\expandafter\expandafter\wrm@text   \expandafter\expandafter\expandafter{%   \expandafter\wrm@texstring\expandafter}\tmp@}%%   \ifx\wrm@namespace\relax    \expandafter\global\expandafter     \let\csname WRM@\wrm@label\endcsname=\tmp@    \advance\wrmdatacounter\@ne    \expandafter\global\expandafter     \let\csname WRM@\the\wrmdatacounter @\endcsname=\tmp@   \else \ifx\wrm@namespace\wrm@empty    \expandafter\global\expandafter     \let\csname WRM@\wrm@label\endcsname=\tmp@    \advance\wrmdatacounter\@ne    \expandafter\global\expandafter     \let\csname WRM@\the\wrmdatacounter @\endcsname=\tmp@   \else    \expandafter\global\expandafter     \let\csname WRM@\wrm@label.\wrm@namespace\endcsname=\tmp@    \advance\wrmdatacounter\@ne    \expandafter\global\expandafter     \let\csname WRM@\the\wrmdatacounter @\endcsname=\tmp@    \expandafter\ifx\csname WRM@\wrm@label\endcsname\relax     \expandafter\global\expandafter      \let\csname WRM@\wrm@label\endcsname=\tmp@    \else     \begingroup      \def\wrm@message##1{\def\prev@name{##1}}%      \csname WRM@\wrm@label\endcsname      \ifx\wrm@text\wrm@empty       \def\tmp@{\endgroup \edef\wrm@text{\wrm@namespace}}%      \else \ifx\wrm@text\relax       \edef\tmp@{\endgroup\def\noexpand\prev@name{\prev@name\space}%         \let\noexpand\twoalready\relax}%      \else%\show\wrm@text %\aftergroup\tracingall       \edef\tmp@{\endgroup\def\noexpand\prev@name{\wrm@text\space}}%%         \def\noexpand\wrm@text{\noexpand\wrm@namespace}}%      \fi\fi \tmp@      \ifx\undefined\prev@name      \else \ifx\twoalready\relax       \edef\tmp@{\def\noexpand\wrm@x{\wrm@x}\def\noexpand\wrm@y{\wrm@y}%%	 \def\noexpand\wrm@text{\wrm@text}%	 \let\noexpand\wrm@text\relax           \noexpand\wrm@message{\prev@name or \codeof\wrm@texstring}}%      \else       \edef\tmp@{\def\noexpand\wrm@x{\wrm@x}\def\noexpand\wrm@y{\wrm@y}%	 \let\noexpand\wrm@text\relax\noexpand\wrm@message%	 \def\noexpand\wrm@text{\wrm@text}\noexpand\wrm@message	   {\wrm@label\space could be \prev@name or \codeof\wrm@texstring}}%      \fi\fi%\show\tmp@      \expandafter\global\expandafter       \let\csname WRM@\wrm@label\endcsname=\tmp@    \fi   \fi\fi \else   %% all data occurs in a block --- unnecessary%   \ifnum\wrmdatacounter>\z@\aftergroup\morelinesfalse\fi \fi\fi}\def\SaveBBvalues@{% \ifx\undefined\wrm@llx  \def\next{\endgroup}% \else  \edef\next{\endgroup \wrmdatacounter=\the\wrmdatacounter\relax   \def\noexpand\wrm@llx{\wrm@llx}\def\noexpand\wrm@lly{\wrm@lly}%   \def\noexpand\wrm@urx{\wrm@urx}\def\noexpand\wrm@ury{\wrm@ury}%   \def\noexpand\wrm@aspect{\wrm@aspect}%   \def\noexpand\wrm@offset{\wrm@offset}%   \def\noexpand\wrm@filename{\wrm@filename}}% \fi }\def\saveBBafterFile{\SaveBBvalues@\next \def\CleanupAfterFile{\endgroup}}\def\SaveARvalues@{% \ifdim\wrm@aspect\p@=\p@  \def\next{\endgroup}% \else  \edef\next{\endgroup   \def\noexpand\wrm@aspect{\wrm@aspect}%   \def\noexpand\wrm@offset{\wrm@offset}}% \fi }\def\saveARafterFile{\SaveARvalues@\next \def\CleanupAfterFile{\endgroup}}\def\TestExactLine#1{\ifx\ThisFileLine#1\morelinesfalse\fi}\def\TestDataString{%% \edef\testdata{\ThisFileLine\space\DataStripped\EndLinePattern}%  \edef\testdata{\DataStripped\EndLinePattern}%  \expandafter\expandafter\expandafter\def  \expandafter\expandafter\expandafter\testdata  \expandafter\expandafter\expandafter{\expandafter\ThisFileLine\testdata}% \edef\tmp{\def\noexpand\ThisData@Test\DataPattern\EndLinePattern}% \expandafter\tmp\expandafter{\the\WARM@ExpansionToks}% \expandafter\ThisData@Test\testdata}\def\TestDataLine#1#2#3{{% \def\DataPattern{#1}\def\Empty{}\def\DataStripped{#2}% \ifx\DataPattern\Empty  \aftergroup\TestExactLine\aftergroup\WARM@PreDataString\relax \else  \TestIfEnd\ifmorelines   \ifnum\wrmdatacounter<\z@    \aftergroup\wrmdatacounter\aftergroup\z@   \else\expandafter\TestDataString\fi  \else\morelinesfalse\fi  \ifmorelines   % found valid data   #3%  \else   % no more data -- pass boolean to next level   \aftergroup\morelinesfalse  \fi \fi}}\def\PrintDataLine{% \wrm@message{\wrm@filename\space data: \codeof\ThisFileLine}}\def\PrintInfoLine{% \wrm@message{Found \codeof\ThisFileLine\space on line \number\wrmcounter}}\def\PrintNumberOfDataPoints{% \wrm@message{Found \number\wrmdatacounter\space data points.}}\def\WriteToBBfile{% \immediate\write\wrm@write{\codeof\ThisFileLine}}\def\WARM@RelaxBBWrite{\let\WriteToBBfile\relax}\def\AdvanceLineCount{\advance\wrmcounter\@ne}\def\RevertLineCount{\advance\wrmcounter\m@ne}\def\AdvanceDataCount{\advance\wrmdatacounter\@ne\RevertLineCount}\def\ResetDataCounter{\wrmdatacounter=\m@ne}\def\ReadSomeLines{\wrmcounter=\@ne \morelinestrue \loop \TestIfEnd \TestMoreLines \ifmorelines \AdvanceLineCount \ReadLineFromFile \repeat}\def\ReadToLine#1#2#3{\ifnum\wrmcounter=\z@\wrmcounter=\@ne\fi \ifnum\wrmcounter<\maxwrmlines\relax\morelinestrue\fi \loop %\PrintDataLine  \TestReadLine #1{#2}\TestMoreLines \ifmorelines \advance\wrmcounter\@ne \ReadLineFromFile \repeat \ifnum\wrmcounter>0  \ifnum\maxwrmlines<\wrmcounter \message{Failed to find: #1}%  \else \expandafter #3\fi \else \message{Failed to find: #1}\fi}\def\ReadDataLines#1#2#3{% \ResetDataCounter \edef\WARM@EndDataTestString{\WARM@EndDataString\space\ParenEmpty}% \ifnum\wrmcounter<\maxwrmlines\relax\morelinestrue\fi \loop  \TestDataLine{#1}{#2}{#3}\TestIfEnd \TestMoreLines \ifmorelines \advance\wrmcounter\@ne \ReadLineFromFile \repeat \PrintNumberOfDataPoints}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -