WriteFile
(clip, string filename, string expression1,
... , string expression16, bool "append", bool "flush")
WriteFileIf
(clip, string filename, string expression1,
... , string expression16, bool "append", bool "flush")
WriteFileStart
(clip, string filename, string expression1,
... , string expression16, bool "append")
WriteFileEnd
(clip, string filename, string expression1,
... , string expression16, bool "append")
WriteFile
avalia expressionN, converte o resultado a uma string e põe o
resultado num arquivo.
A variável "run-time" current_frame é fixada de forma a poder usar em uma "expression" (isto trabalha semelhante como com ScriptClip, olhe lá no doc. para mais infos).
current_frame é fixado a -1 quando o escrito estiver carregado e para -2 quando está fechado.
WriteFile
gera saída a cada quadro, WriteFileIf só
gera se a primeira expressão for true e
nenhuma ao abrir ou fechar.
WriteFileStart
e WriteFileEnd só gera saída
em escrito que abre e fecha, não há nenhuma ação
em cada quadro.
Quando append = true
o resultado será
juntado em qualquer arquivo existente.
Quando flush = true
o arquivo é fechado e
reaberto depois de cada operação, assim você pode ver o resultado
imediatamente (isto pode ser mais lento).
Para WriteFileStart
e WriteFileEnd flush
é sempre true.
O padrão para append é sempre true,
com exceção de WriteFileStart (aqui é false).
filename = "c:\myprojects\output.txt" # crie um vídeo de teste para ter quadros Version() # a expressão aqui é apenas uma variável que é avaliada e posta no arquivo # você terá um arquivo com o número de quadro em cada linha WriteFile(filename, "current_frame") # esta linha é escrita quando o escrito é aberto WriteFileStart(filename, """ "Este é o cabeçalho" """) # e isto quando o escrito se fechar WriteFileEnd(filename, """ "Agora o escrito está fechado" """)
Olhe como você pode usar aspas triplas para digitar uma string dentro de uma string!
Se a expressão não pode ser avaliada, a
mensagem de erro é escrita em seu lugar.
No caso de acontecer isso com If-expression
em WriteFileIf o resultado é assumido que é true.
# resultará em "eu não sei o que "isto" significa" WriteFile(filename, "isto é tolice")
... com este exemplo você pode ver como usar as "runtime functions" com FrameEvaluate:
# crie um vídeo de teste para obter quadros diferentes Version.FadeIn(50).ConvertToYV12 # isto imprimirá o número do quadro, um ":" e a média luma desse quadro colon = ": " WriteFile("F:\text.log", "current_frame", "colon", "AverageLuma")
Ou talvez você quer a hora atual também impressa:
# crie um vídeo de teste para obter quadros diferentes Version.FadeIn(50).ConvertToYV12 # isto imprimirá o número do quadro, a hora atual e a média luma desse quadro # as aspas triplas são necessárias para inserir aspas dentro de uma string WriteFile(last, filename, "current_frame", """ time(" %H:%M:%S") """, "AverageLuma")
É esperado em WriteFileIf que a PRIMEIRA expressão seja boolean (true ou false).
As outras expressões só são avaliadas se é TRUE e então a linha é impressa.
(Lembre-se: && é AND, || é OR, == é EQUAL, != é NOT EQUAL)
Deste modo você pode omitir completamente as linhas do seu arquivo.
# crie um vídeo de teste para obter quadros diferentes Version.FadeIn(50).ConvertToYV12 # isto imprimirá o número do quadro, mas só onde AverageLuma está entre 30 e 60 WriteFileIf(last, filename, "(AverageLuma>30) && (AverageLuma<60)", "current_frame", """ ":" """, "AverageLuma")
$Date: 2006/03/26 18:11:19 $ Portuguese translation by RoLon