📄 atd.tff
字号:
# TextFileFormat (leave this tag as magic token!)
# BVQX file format for ATD files (Ancova Table Datafiles)
# ATD FileVersions supported: 2
#
# Version: v0.7a
# Build: 7080909
# Date: Aug-09 2007, 9:10 AM CEST
# Author: Jochen Weber, Brain Innovation, B.V., Maastricht, NL
# URL/Info: http://wiki.brainvoyager.com/BVQXtools
# FILE FORMAT
ArrayFormat: %-12s
Description:Anova Table Datafiles
Extensions:atd
FieldDelimiters: {[32]}
LineDelimiters: {[13, 10], [10]}
ParagraphArrays:0
SkipEmptyLines:1
Magic:|
name |range |type |magic
ATD_header |1, 256 |regexp |^\s*FileVersion\:\s*\d+\s+NrOfSubjectRows
EndMagic
# FIELDS
ListOfFields:!
type !cond !field !datatype!format !dim !default !varname
FIELD! !FileVersion !double !%d !1 !2 !FileVersion
WRTLN!!!!!!! # empty line
EXPRE!$TFFWRITE !!!!!!@NrOfSubjectRows = size(@SubjectData, 1); if @NrOfSubjectRows ~= numel(@SubjectNames), error('Invalid object'); end, @NrOfDataColumns = size(@SubjectData, 2); @NrOfGroupingColumns = size(@GroupingData, 2); @NrOfCovariateColumns = size(@CovariateData, 2); if any([size(@GroupingData, 1), size(@CovariateData, 1)] ~= @NrOfSubjectRows), error('Invalid object'); end, if @NrOfDataColumns ~= numel(@DataColumnNames) || @NrOfGroupingColumns ~= numel(@GroupingColumns) || @NrOfCovariateColumns ~= numel(@CovariateNames), error('Invalid object'); end
FIELD! !NrOfSubjectRows !double !%d !1 ! !NrOfSubjectRows
FIELD! !NrOfDataColumns !double !%d !1 ! !NrOfDataColumns
FLIST! !NrOfGroupingColumns !double !%d !1 !0 !NrOfGroupingColumns
FLIST! !NrOfCovariateColumns!double !%d !1 !0 !NrOfCovariateColumns
EXPRE!!!!!!!$NrOfCols = @NrOfDataColumns + @NrOfGroupingColumns + @NrOfCovariateColumns;
EXPRE!$TFFREAD !!!!!!@SubjectNames = cell(@NrOfSubjectRows, 1); @DataColumnNames = cell(@NrOfDataColumns, 1); @SubjectData = zeros(@NrOfSubjectRows, @NrOfDataColumns); @GroupingColumns = cell(@NrOfGroupingColumns, 1); @GroupingData = zeros(@NrOfSubjectRows, @NrOfGroupingColumns); @CovariateNames = cell(@NrOfCovariateColumns, 1); @CovariateData = zeros(@NrOfSubjectRows, @NrOfCovariateColumns);
WRTLN!!!!!!! # empty line
# treat reading and writing differently
BLOOP!$TFFREAD !!!!1 !!ATDread
EXPRE!!!!!!!$hl = strrep(linecont{linec}, char(9), ' '); while ~isempty(strfind($hl, ' ')), $hl = strrep($hl, ' ', ' '); end, $cnames = splittocell($hl(2:end-1), '" "'); $cnames = $cnames(:); if numel($cnames) ~= ($NrOfCols + 1) || ~strcmp($cnames{1}, 'Subjects'), error('Invalid input file'); end, linec = linec + 1; @DataColumnNames = $cnames(2:1+@NrOfDataColumns); if @NrOfGroupingColumns > 0, @GroupingColumns = $cnames(2+@NrOfDataColumns:1+@NrOfDataColumns+@NrOfGroupingColumns); end, if @NrOfCovariateColumns > 0, @CovariateNames = $cnames(end+1-@NrOfCovariateColumns:end); end
BLOOP! !!!!@NrOfSubjectRows !!RSubjNum
EXPRE!!!!!!!$sl = linecont{linec}; linec = linec + 1; if numel($sl) < 10 || ~strcmp($sl(1:9), '"Subject '), error('Invalid input file'); end, $sne = find($sl(10:end) == '"'); if isempty($sne), error('Invalid input file'); end, @SubjectNames{$RSubjNum} = $sl(10:$sne(1)+8); $dline = splittocell($sl($sne(1)+10:end), char([9, 32]), 1, 1); if isempty($dline), error('Invalid input file'); end, if isempty($dline{1}), $dline(1) = []; end, if numel($dline) ~= $NrOfCols, error('Invalid input file'); end, if @NrOfDataColumns > 0, @SubjectData($RSubjNum, :) = eval(['[' gluetostring($dline(1:@NrOfDataColumns), ',') ']']); end, if @NrOfGroupingColumns > 0, @GroupingData($RSubjNum, :) = eval(['[' gluetostring($dline(@NrOfDataColumns+1:@NrOfDataColumns+@NrOfGroupingColumns), ',') ']']); end, if @NrOfCovariateColumns > 0, @CovariateData($RSubjNum, :) = eval(['[' gluetostring($dline(end+1-@NrOfCovariateColumns:end), ',') ']']); end
ELOOP! !!!! !!RSubjNum
ELOOP! !!!! !!ATDread
# writing code
BLOOP!$TFFWRITE !!!!1 !!ATDwrite
WRTLN!!!!!!!%['"Subjects" "' gluetostring([@DataColumnNames(:);@GroupingColumns(:);@CovariateNames(:)] ,'" "') '"']%
BLOOP! !!!!@NrOfSubjectRows !!WSubjNum
EXPRE!!!!!!!$dl = [@SubjectData($WSubjNum, :), @GroupingData($WSubjNum, :), @CovariateData($WSubjNum, :)];
WRTLN!!!!!!!%sprintf('"Subject %s" %s', @SubjectNames{$WSubjNum}, sprintf(' %7f', $dl))%
ELOOP! !!!! !!WSubjNum
ELOOP! !!!! !!ATDwrite
EndListOfFields
NewFileCode:!
@FileVersion = 2;
@NrOfSubjectRows = 0;
@NrOfDataColumns = 0;
@NrOfGroupingColumns = 0;
@NrOfCovariateColumns = 0;
@SubjectNames = cell(@NrOfSubjectRows, 1);
@DataColumnNames = cell(@NrOfDataColumns, 1);
@SubjectData = zeros(@NrOfSubjectRows, @NrOfDataColumns);
@GroupingColumns = cell(@NrOfGroupingColumns, 1);
@GroupingData = zeros(@NrOfSubjectRows, @NrOfGroupingColumns);
@CovariateNames = cell(@NrOfCovariateColumns, 1);
@CovariateData = zeros(@NrOfSubjectRows, @NrOfCovariateColumns);
EndNewFileCode
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -