2017-01-23 8 views
0

私はforループからのオブジェクトのリストを持っています。それらを選択して連結できるようにリストに追加したいと思います。プラット内のオブジェクトのリストを選択

for stringNumber from 0 to numberOfStrings 
    do string stuff... 


    tgID = Create TextGrid: tmin, tmax, tier_name$, phone$ 
    Set interval text: 1, 1, phone$ 
    # THIS IS WHERE I NEED HELP 
    tgList = append: tgID + ", " 

endfor 

selectObject: tgList 
do ("Concatenate") 

答えて

3

あなたはこれを試すことができます:私の考えは、コードが多かれ少なかれ、このような機能だろうということです

for stringNumber from 0 to numberOfStrings 
    # do string stuff... 

    tgID = Create TextGrid: tmin, tmax, tier_name$, phone$ 
    Set interval text: 1, 1, phone$ 

    tgList[stringNumber + 1] = tgID 
endfor 

selectObject() 

for i from 1 to numberOfStrings + 1 
    plusObject: tgList[i] 
endfor 

Concatenate 

selectObject()がすべてを選択解除し、plusObjectは、選択範囲に現在のオブジェクトを追加します。私はあなたのループを0から始めるので、ループのインデックスが選択ループで正しいかどうかはわかりません。あなたのコードを試すことはできません。

+0

これはplusObjectとselectObjectのキーでした。ありがとう! – badner

+0

+1は 'selectObject()'です。今まで、私は 'nocheck selectObject:undefined'を行っていました。これははるかに非常に...そしてずっと長いです。 – jja

0

それは、この特定のケースではやり過ぎかもしれませんが、あなたはまた、(完全な情報開示:私はそれを書いた):オブジェクトの選択を管理するために作成されたCPrANで利用可能selectionプラグインを、使用することができますについては

include ../../plugin_selection/procedures/tables.proc 

@createEmptySelectionTable() 
selection = createEmptySelectionTable.table 

for stringNumber from 0 to numberOfStrings 
    Create TextGrid: tmin, tmax, tier_name$, phone$ 
    Set interval text: 1, 1, phone$ 
    @addToSelectionTable: selection 
endfor 

@restoreSavedSelection: selection 
removeObject: selection 
Concatenate 

をこれはうまくいくが、あなたのスクリプトはプラグイン内のサブディレクトリ(Linux/Macでは~/.praat-dir/plugin_foo/scripts/here.praatのような場所)に置かなければならない。

将来的にはこれを回避する方法があります。それでは、Praatのスクリプトは、たとえプロジェクト固有のものであっても、実際にはプラグインでなければなりません。</rant>

関連する問題