Tivoli Service Desk 6.0 Developer's Toolkit - Referência de Linguagem do Script
Retornar a Página Principal
Retorna uma cadeia que contém o caractere comum utilizado para separar nomes de diretórios em nomes de arquivos completos. No Windows e OS/2, esta é uma barra invertida ('\'). No UNIX, é uma barra normal ('/').
FUNCTION $DirSeprStr : STRING;
Esta função é útil para análise de nomes de arquivos completos e nomes de diretórios.
(* A função MakeFilename monta um nome de arquivo completo que determinou uma lista de nomes de diretórios, um nome de base e uma extensão.*)
FUNCTION MakeFilename(VAL Dir : LIST OF STRING, VAL Base : STRING, VAL Ext : STRING) : STRING IS
ACTIONS
$Result := '';
FOR Dir DO $Result := $Result & $DirSeprStr & Dir[$CURRENT]; END;
$Result := $Result & $DirSeprStr & Base & '.' & Ext; END;
$PathSeprStr
Retorna uma cadeia que contém os caracteres de controle utilizados pelo sistema operacional nativo para indicar um final de linha em um arquivo. No Windows e OS/2, esta cadeia consiste nos caracteres de "retorno do carro" (ASCII 13) e "avanço de linha" (ASCII 10). No UNIX, esta cadeia consiste em um caractere de "avanço da linha".
FUNCTION $Newline : STRING;
Atenção: Ao transferir arquivos entre sistemas operacionais, lembre-se que o sistema operacional nativo pode estar esperando uma cadeia de fim de linha diferente que está em seu arquivo. Se isso ocorrer, seu arquivo pode aparecer mal formatado.
Esta função é útil para gravação de texto formatado para um arquivo. A função TSD Script, FWriteLn, anexa automaticamente a cadeia de fim de linha nativa para todas as linhas gravadas em um arquivo.
(* Função WriteDates: Essa função grava uma lista de datas em um arquivo somente com uma data por linha. Ele retorna o número de datas gravadas.*)
FUNCTION WriteDates(Datas VAL : LIST OF DATE, VAL fhdl : FILE) : INTEGER IS
ACTIONS
$Result := 0; FOR Dates DO FWrite(fhdl, Dates[$CURRENT]); FWrite(fhdl, $NewLine); $Result := $Result + 1; END; END;
Retorna uma cadeia que contém o caractere utilizado para separar nomes de diretórios em caminhos que contém múltiplos nomes de diretórios. Este é um ponto e vírgula (';') no Windows e OS/2 e dois pontos (':') no UNIX.
FUNCTION $PathSeprStr: STRING;
Esta função é útil para análise de caminhos de pesquisa.
(* A função MakePath monta um caminho completo a partir de uma lista de diretórios. *)
FUNCTION MakePath ( VAL Dirs : LIST OF STRING )
: STRING IS
ACTIONS $Result := '';
FOR Dirs DO $Result := $Result & Dirs[$CURRENT] & $PathSeprStr; END; END;
$DirSeprStr
Fecha um arquivo aberto.
FUNCTION FClose (VAL fHdl: FILE): INTEGER;
Nome do Argumento | Descrição |
fHdl | O parâmetro identificador de um arquivo aberto a ser fechado |
A função FClose faz com que o arquivo determinado seja esvaziado (se ele estiver aberto para a saída) e fechado.
FUNCTION MakeLogEntry (VAL entry: STRING): INTEGER IS
CONSTANTS logFileName IS 'LOGFILE.TXT'; expirationLimit IS 30;
VARIABLES logFile: FILE; files: $DirectoryList;
ACTIONS IF FExists(logFileName) THEN FGetDirectory(logFileName, files); IF DateDif($Today, files[1].modificationDate) > expirationLimit THEN FErase(logFileName); END; END; IF FOpen(logFile, logFileName, $Append) < 0 THEN $Result := -1; ELSIF FWrite(logFile, $Today & ' ' & $Now & ': ' & entry) < 0 THEN $Result := -2; ELSIF FClose(logFile) > 0 THEN EXIT 1; END; FClose(logFile); END;
Código de Retorno | Descrição |
1 | Conclusão bem-sucedida. |
-1 | A operação falhou. |
-2 | Argumento de arquivo desconhecido. |
-6 | Identificador inválido. |
FOpen
Indica se o arquivo aberto está no final do arquivo.
FUNCTION FEnd (VALUE fHdl: FILE): BOOLEAN;
Atenção: Se o argumento do arquivo for desconhecido, FEnd retornará um valor desconhecido.
Nome do Argumento | Descrição |
fHdl | Uma expressão desempenhando um parâmetro identificador para o arquivo a ser testado. |
A função FEnd retorna TRUE se o arquivo determinado for aberto para leitura e se estiver atualmente posicionado no final do arquivo (nada mais pode ser lido). Quando FEnd retorna FALSE, existe pelo menos um caractere não-lido no arquivo.
VARIABLES inFile: FILE; line: STRING;
ACTIONS FOpen(inFile,'EMPLOYEES.TXT',$Read); WHILE NOT FEnd(inFile) DO IF FReadLn(inFile,line) = 1 THEN GoProcess(line); END; END;
Código de Retorno | Descrição |
TRUE | O arquivo determinado está atualmente posicionado como seu marcador de fim de arquivo (em outras palavras, não existe mais entrada pendente do arquivo). |
$Unknown | O argumento avaliado para $Unknown. |
FALSE | O arquivo determinado não está atualmente posicionado como seu marcador de fim de arquivo (em outras palavras, a entrada está pendente). |
Elimina um arquivo.
FUNCTION FErase (VAL fileName: STRING): INTEGER;
Atenção: O procedimento desta função não será definido, se o arquivo nomeado estiver aberto.
Nome do Argumento | Descrição |
fileName | O nome do arquivo a ser eliminado |
A função FErase faz com que o arquivo com o nome determinado seja apagado. Qualquer tentativa subseqüente de abrir o arquivo utilizando o nome anterior falha.
FUNCTION MakeLogEntry (VAL entry: STRING): INTEGER IS CONSTANTS logFileName IS 'LOGFILE.TXT'; expirationLimit IS 30;
VARIABLES logFile: FILE; files: $DirectoryList;
ACTIONS IF FExists(logFileName) THEN FGetDirectory(logFileName, files); IF DateDif($Today, files[1].modificationDate) > expirationLimit THEN FErase(logFileName); END; END; IF FOpen(logFile, logFileName, $Append) < 0 THEN $Result := -1; ELSIF FWrite(logFile, $Today & ' ' & $Now & ': ' & entry) < 0 THEN $Result := -2; ELSIF FClose(logFile) > 0 THEN EXIT 1; END; FClose(logFile); END;
Código de Retorno | Descrição |
1 | Conclusão bem-sucedida |
-1 | A operação falhou. |
-2 | Argumento de arquivo desconhecido |
FOpen
Testa a existência de um arquivo.
FUNCTION FExists (VAL fileName: STRING): BOOLEAN;
Nome do Argumento | Descrição |
fileName | Uma expressão de cadeia desempenhando um nome de arquivo válido. |
If FExists ("C:\MYFILE.DAT") THEN DoProcessFile; ELSE DoCreateFile; END;
Código de Retorno | Descrição |
TRUE | O arquivo existe |
FALSE | O arquivo não existe |
Obtém os atributos de sistema de arquivo nativo associados ao arquivo determinado.
FUNCTION FGetAttributes (VAL filename: STRING, REF attributes: INTEGER ) : INTEGER
Nome do Argumento | Descrição |
filename | Caminho completo do arquivo |
attributes | Este parâmetro é alterado para listar os atributos do arquivo determinado. Os
atributos que podem ser ordenados juntos na variável de atributos são:
|
Os itens a seguir descrevem os sinalizadores de atributos FGetAttributes.
Atributo | Windows & OS/2 | UNIX |
$FILENOPRIVS | O arquivo é somente de leitura | O arquivo não é legível, gravável ou executável |
$FILEREADABLE | O arquivo não é somente de leitura | O arquivo é legível |
$FILEWRITEABLE | Nenhum | O arquivo é gravável |
$FILEEXECUTABLE | Nenhum | O arquivo é executável |
$FILEHIDDEN | O arquivo está oculto | Nenhum |
Consulte o exemplo para FSetAttributes.
Código de Retorno | Descrição |
1 | Conclusão bem-sucedida |
-1 | A operação falhou. |
-2 | Argumento desconhecido |
FSetAttributes
Cria uma listagem de diretório.
FUNCTION FGetDirectory(VAL pattern: STRING, REF directoryList: LIST OF $DIRECTORYRECORD) : INTEGER;
Nome do Argumento | Descrição |
pattern | O padrão que especifica quais arquivos são incluídos na listagem de diretórios. Os caracteres curinga * e ? podem ser utilizados. Todos os arquivos e diretórios cujos nomes correspondem ao padrão são retornados na lista de diretórios. |
directoryList | Este parâmetro deve ser uma variável do tipo $DirectoryRecord. A definição é mostrada na seção Notas. |
$DirectoryRecord é um tipo RECORD declarado no kml.kb de base de informações do sistema. A declaração de $DirectoryRecord é:
$DirectoryRecord IS RECORD filename : STRING; fullname : STRING; filesize : INTEGER; modificationdate : DATE; modificationtime : TIME; isDirectory : BOOLEAN; readOnly : BOOLEAN; flags : INTEGER; END;
A seguir encontram-se descrições de campos para $DirectoryRecord:
Nome | Descrição |
fileName | O nome de um arquivo com extensão. |
fullName | O nome do arquivo do caminho completo. |
filesize | O tamanho de um arquivo em bytes. |
modificationDate | A data que um arquivo foi alterado por último. |
modificationTime | A hora que um arquivo foi alterado por último. |
isDirectory | Indica se este é um arquivo ou subdiretório. |
readOnly | Indica se um arquivo é ou não gravável. |
flags | Os atributos do arquivo. |
O campo de sinalizadores retorna os sinalizadores definidos pelo sistema operacional e é dependente da plataforma. Consulte sua documentação do sistema operacional para significados de sinalizador.
KNOWLEDGEBASE DirList; ROUTINES PROCEDURE TestDirectory(VAL pattern: LIST OF STRING);
PRIVATE ROUTINES PROCEDURE TestDirectory(VAL pattern: LIST OF STRING) IS
VARIABLES whdl: WINDOW; dirList: LIST OF $DIRECTORYRECORD;
ACTIONS WinCreateScrollWindow($Desktop,whdl, $NullHandler,0,0,60,0, pattern[1], $SystemMonospaced,10, $WinBorder + $WinTitle + $WinResize + $WinMinMax + $WinTaskList + $WinAutoSize + $WinHScroll + $WinVScroll + $WinSysMenu + $WinAutoPos);
FGetDirectory(pattern[1],dirList); ListSort(dirList); FOR dirList DO WinWrite(whdl,dirList[$CURRENT].fileName); WinGoToXY(whdl,20,WinY(whdl)); WinWrite(whdl,dirList[$CURRENT].fileSize); WinGoToXY(whdl,30,WinY(whdl)); WinWrite(whdl,dirList[$CURRENT].modificationDate); WinGoToXY(whdl,40,WinY(whdl)); WinWrite(whdl,dirList[$CURRENT].modificationTime); WinGoToXY(whdl,50,WinY(whdl)); IF dirList[$CURRENT].isDirectory THEN WinWrite(whdl,'Directory '); END; IF dirList[$CURRENT].readOnly THEN WinWrite(whdl,'Read only'); END; WinWriteLN(whdl); END; WinWait(whdl); END (* Diretório de Teste *);
Código de Retorno | Descrição |
Maior ou igual a zero | Um valor positivo retornado pelo FGetDirectory é o número de entradas (arquivos) neste diretório. |
-1 | O pedido do diretório falhou. A unidade especificada no padrão não pode existir ou pode ser ilegível. |
-2 | Valor desconhecido. |
Abre um arquivo.
FUNCTION FOpen (REF fHdl: File, VAL name: String [,$READ|$CREATE|$APPEND] ): Integer;
Nome do Argumento | Descrição |
fHdl | Este parâmetro é alterado para se referir ao arquivo aberto. Se a operação FOpen falhar, o parâmetro será definido como $Unknown. |
name | Um PATH absoluto ou relativo ao arquivo que está sendo aberto. |
$READ $CREATE $APPEND |
Designação de modo. O padrão é $READ. |
A função FOpen abre o arquivo de texto com o nome fornecido no modo determinado e o associa ao valor fHdl determinado. Se nenhum argumento de modo for determinado, o padrão será $READ.
Dica: FOpen falhará se o arquivo especificado já estiver aberto. O valor de retorno neste caso é -1.
O TSD Script não suporta arquivos de texto de acesso aleatório, portanto, não existe nenhuma maneira de ler e gravar no mesmo arquivo sem fechar e reabri-lo com o modo apropriado entre operações.
FUNCTION MakeLogEntry (VAL entry: STRING): INTEGER IS CONSTANTS logFileName IS 'LOGFILE.TXT'; expirationLimit IS 30;
VARIABLES logFile: FILE; files: $DirectoryList;
ACTIONS IF FExists(logFileName) THEN FGetDirectory(logFileName, files); IF DateDif($Today, files[1].modificationDate) > expirationLimit THEN FErase(logFileName); END; END; IF FOpen(logFile, logFileName, $Append) < 0 THEN $Result := -1; ELSIF FWrite(logFile, $Today & ' ' & $Now & ': ' & entry) < 0 THEN $Result := -2; ELSIF FClose(logFile) > 0 THEN EXIT 1; END; FClose(logFile); END;
Código de Retorno | Descrição |
1 | Conclusão bem-sucedida. |
-1 | A operação falhou no nível do sistema operacional. Isso será retornado, se o arquivo especificado já estiver aberto. |
-2 | Nome do arquivo desconhecido. |
Lê valores simples a partir de um arquivo aberto e os atribui às variáveis referenciadas.
FUNCTION FRead (VAL fHdl: FILE [, REF var: ANY SIMPLE TYPE...] ) : INTEGER;
Atenção: As cadeias consomem toda entrada no final da linha. Inserir os argumentos de entrada após um argumento de cadeia faz com que FRead falhe.
Nome do Argumento | Descrição |
fHdl | Um parâmetro identificador de arquivo definido por uma chamada anterior como FOpen. FOpen deve ter sido chamado no modo $READ. |
var | Zero ou expressões mais atribuídas (aquelas que podem aparecer legalmente no lado esquerdo de uma operação de atribuição). |
A função FRead lê valores simples (como BOOLEAN, INTEGER, REAL, STRING, TIME e DATE) a partir do arquivo determinado e os atribui às variáveis associadas a partir de sua lista de argumentos, até que os valores tenham sido lidos para todos os argumentos determinados.
A tabela a seguir mostra os formatos nos quais FRead espera ler os valores:
Formato | Descrição |
BOOLEANO | TRUE ou FALSE. |
NÚMERO INTEIRO | Uma seqüência de dígitos decimais (0-9) interpretados como um número inteiro decimal. A seqüência '0x' ou '0X' seguido de um ou mais dígitos hexadecimais (0-9, A-F ou a-f) é interpretada como um número inteiro hexadecimal. A forma pode opcionalmente ser antecedida de um sinal de '+' ou '-'. |
REAL | Uma seqüência de dígitos decimais (0-9) que pode ser antecedido por um sinal de '+' ou '-'. A seqüência pode ser seguida de uma vírgula decimal e um ou mais dígitos decimais, que pode ser seguido por uma parte do componente. A parte do expoente consiste em um 'E' ou 'e', seguido de um sinal opcional e um para três dígitos decimais. |
CADEIA | Quaisquer caracteres até o final da linha. FRead não lê próximo ao final da linha. |
HORA | Uma seqüência no formato hh:mm:ss, onde hh, mm e ss são um ou dois dígitos decimais. |
DATA | Uma seqüência no formato mm/dd/aa, onde mm, dd e
aa são um ou dois dígitos decimais. A função FRead terminará, se um dos seguintes
itens ocorrer:
|
Finalização de Leitura
Se a operação de leitura terminar, ela não processará qualquer entrada adicional. Um código de erro será retornado. Quaisquer argumentos para os quais os valores foram lidos não são alterados à esquerda por esta condição de erro. Os argumentos para os quais os valores são lidos com êxito são atualizados.
Se uma chamada FRead terminar porque o final da linha foi encontrado, todas as chamadas subseqüentes FRead falharão sem ler quaisquer valores, até que a função FReadLn seja chamada para avançar a próxima linha.
Delimitadores de Espaço em Branco
Sempre que possível, os valores no arquivo de entrada devem ser delimitados por um ou mais caracteres com espaço em branco (espaços e itens). Entretanto, em algumas circunstâncias, os valores não podem requerer quaisquer caracteres de delimitação.
Por exemplo, um valor REAL e um BOOLEANO não requerem intervenção de espaço em branco, visto que os caracteres que começam ou terminam com um valor BOOLEANO não podem aparecer legalmente no final de um valor real e vice versa.
PROCEDURE PlayTune (VAL fileName: STRING) IS VARIABLES toneFile: FILE; delay, frequency, duration: INTEGER;
ACTIONS IF FOpen(toneFile, fileName) 0 THEN EXIT; END;
WHILE FRead(toneFile, delay, frequency, duration) 0 DO SysDelay(delay); SysTone(frequency, duration); END; FClose(toneFile); END;
Código de Retorno | Descrição |
1 | Conclusão bem-sucedida |
-1 | Operação falhou (falha de conversão ou final de linha prematura) |
-2 | Arquivo desconhecido |
-4 | Arquivo não aberto |
-5 | Fim de arquivo encontrado |
-6 | Identificador inválido. |
Lê uma linha de entrada a partir de um arquivo aberto, atribuindo os valores simples do componente às variáveis referidas.
FUNCTION FReadLn (VAL fHdl: FILE [, REF var: ANY SIMPLE TYPE... ] ): INTEGER;
Atenção: As cadeia consomem toda entrada do final da linha. Entretanto, ao fornecer os argumentos de entrada após um argumento de cadeia fará com que FReadLn falhe.
Nome do Argumento | Descrição |
fHdl | Um parâmetro identificador de arquivo definido por uma chamada anterior como FOpen. FOpen deve ter sido chamado no modo $READ. |
var | Zero ou mais expressões atribuídas. As expressões atribuídas aparecem no lado esquerdo de uma operação de atribuição. |
A função FReadLn lê os valores simples (BOOLEANO, NÚMERO INTEIRO, REAL, CADEIA, HORA e DATA) a partir de um arquivo e os atribui a todas as variáveis associadas a partir de sua lista de argumentos. Quaisquer caracteres restantes na linha de entrada, incluindo os caracteres que designam o final da linha, são descartados.
A tabela a seguir mostra os formatos nos quais FReadLn espera ler os valores:
Formato | Descrição |
BOOLEANO | TRUE ou FALSE. |
NÚMERO INTEIRO | Uma seqüência de dígitos decimais (0-9) interpretados como um número inteiro decimal. A seqüência '0x' ou '0X' seguido de um ou mais dígitos hexadecimais (0-9, A-F ou a-f) é interpretada como um número inteiro hexadecimal. A forma pode opcionalmente ser antecedida de um sinal de '+' ou '-'. |
REAL | Uma seqüência de dígitos decimais (0-9) que pode ser antecedido por um sinal de '+' ou '-'. A seqüência pode ser seguida de uma vírgula decimal e um ou mais dígitos decimais, que pode ser seguido por uma parte do componente. A parte do expoente consiste em um 'E' ou 'e', seguido de um sinal opcional e um para três dígitos decimais. |
CADEIA | Quaisquer caracteres até o final da linha. FRead não lê próximo ao final da linha. |
HORA | Uma seqüência no formato hh:mm:ss, onde hh, mm e ss são um ou dois dígitos decimais. |
DATA | Uma seqüência no formato mm/dd/aa, onde mm, dd e
aa são um ou dois dígitos decimais. A função FRead terminará, se um dos seguintes
itens ocorrer:
|
Finalização
Se o final de uma linha for atingido antes dos valores serem lidos para todos os argumentos determinados ou se um valor for lido que não pode ser convertido no tipo apropriado para o parâmetro associado, a operação de leitura terminará sem processar qualquer entrada adicional (incluindo o designador de final de linha).
Nota: Um código de erro
será retornado. Quaisquer argumentos para os quais os valores foram lidos não são alterados à esquerda por esta
condição de erro.
Os argumentos para os quais os valores que foram lidos com êxito são atualizados.
Delimitadores de Espaço em Branco
Sempre que possível, os valores no arquivo de entrada devem ser delimitados por um ou mais caracteres com espaço em branco (espaços e itens). Entretanto, em algumas circunstâncias, os valores não podem requerer quaisquer caracteres de delimitação.
Por exemplo, um valor REAL e um BOOLEANO não requerem intervenção de espaço em branco, visto que os caracteres que começam ou terminam com um valor BOOLEANO não podem aparecer legalmente no final de um valor real e vice versa.
VARIABLES lineNumber{ 0 }: INTEGER; scriptFile, logFile: FILE; msgTime, actualTime: TIME; index, msgId: INTEGER; data: STRING;
ACTIONS IF FOpen(scriptFile, 'SCRIPT.TXT') < 0 THEN EXIT FAILCODE; END; IF FOpen(logFile, 'SCRIPT.LOG', $CREATE) < 0 THEN FClose(scriptFile); EXIT FAILCODE; END; WHILE NOT FEnd(scriptFile) DO lineNumber := lineNumber + 1; IF FReadLn(scriptFile, msgTime, index, msgId, data) <1 THEN FWriteLn(logFile, 'Invalid entry on line #' & lineNumber); ELSE SysDelay(TimeDif(msgTime, $Now) * 1000); actualTime := $Now; SendMsg(g_WindowArray[index], msgId, data); FWriteLn(logFile, actualTime & ': Sent ' & msgId & ' ' & $Quote & data & $Quote & ' to window #' & index); END; END; EXIT SUCCESSCODE; END;
Código de Retorno | Descrição |
1 | Conclusão bem-sucedida |
-1 | Operação falhou (falha de conversão ou final de linha prematura) |
-2 | Arquivo desconhecido |
-4 | Arquivo não aberto |
-5 | Fim de arquivo encontrado |
-6 | Identificador inválido. |
Lê um arquivo em uma lista de cadeias.
FUNCTION FReadText (VAL fHdl: FILE, REF lst: LIST OF STRING):INTEGER;
Nome do Argumento | Descrição |
fHdl | Retorna um parâmetro identificador neste parâmetro |
lst | Uma variável de lista (cadeia) cujo conteúdo é substituído pelo conteúdo do arquivo |
FReadText lê o conteúdo do arquivo em uma lista de cadeias, uma linha por elemento de lista. Se os valores forem lidos a partir do arquivo desde que foi aberto e antes da chamada a FReadText, a entrada restante será lida.
Nota: Na conclusão bem-sucedida, FReadText retorna o número de linhas lidas com êxito.
KNOWLEDGEBASE Scroll; CONSTANTS MENU_OPEN IS 101; MENU_EXIT IS 102; MENU_LIST IS {'~File','~Open','E~xit',''}: LIST OF STRING;
TYPES EditorData IS RECORD statusLine: STRING; lines: LIST OF STRING; END;
ROUTINES PROCEDURE FileView;
PRIVATE ROUTINES EVENT EditorEvent(REF editorData: EditorData) IS ROUTINES PROCEDURE ProcessMainMenu(VALUE selection: INTEGER) IS VARIABLES fileName: STRING; editFile: FILE; result: INTEGER; ACTIONS WHEN selection IS MENU_OPEN THEN WinFileDialog($Handle,fileName,'*.KB',5,5, 'Select file to edit',0); IF FOpen(editFile,fileName,$Read) > 0 THEN FReadText(editFile,editorData.lines); FClose(editFile); editorData.statusLine := ' File: ' & fileName; WinClear( $Handle ); WinWriteLN($Handle,editorData.lines); PostMessage($Handle,$MsgPaintStatus); ELSWHEN MENU_EXIT THEN SendMessage($Handle,$MsgClose); END; END; END (* Menu Principal do Processo *); ACTIONS WHEN $Event IS $MsgCreate THEN WinSetMenuBar( $Handle, menuList ); editorData.statusLine := 'File:'; ELSWHEN $MsgMenu THEN ProcessMainMenu($MenuSelection); ELSWHEN $MsgPaintStatus THEN (* Barra de Status *) WinClear( $Handle ); WinWrite($Handle,editorData.statusLine); END; END (* Editor Event *); PROCEDURE FileView IS VARIABLES whdl: WINDOW; ACTIONS WinCreateScrollWindow($Desktop,whdl,EditorEvent,0,0,0,0, 'Visualizador do Arquivo KML', $SystemMonospaced,10, BitOr($WinBorder,$WinTitle, $WinResize, $WinSysMenu, $WinMenu,$WinStatus, $WinAutoPos,$WinAutoSize, $WinVScroll,$WinHScroll, $WinTaskList)); WinWait(whdl); END (* Visualização de Arquivo *);
Código de Retorno | Descrição |
Maior que zero | Bem sucedido. Retorna o número de bytes lidos. |
-1 | Argumento desconhecido. |
-2 | A operação falhou. |
-4 | Arquivo não aberto. |
-6 | Identificador inválido. |
Define os atributos de arquivo do nível do sistema operacional associados ao arquivo fornecido.
FUNCTION FSetAttributes (VAL filename: STRING, VAL attributes: INTEGER ): INTEGER
Nome do Argumento | Descrição |
filename | Caminho completo do arquivo |
attributes | Este parâmetro é a lista de atributos definidos no arquivo especificado.
Os atributos que podem ser ordenados juntos na variável de atributos são
|
O item a seguir descreve os sinalizadores de atributo FSetAttributes.
Atributo | Significado no Windows & OS/2 | UNIX |
$FILENOPRIVS | O arquivo é somente de leitura | O arquivo não é legível, gravável ou executável |
$FILEREADABLE | O arquivo não é somente de leitura | O arquivo é legível |
$FILEWRITEABLE | Nenhum | O arquivo é gravável |
$FILEEXECUTABLE | Nenhum | O arquivo é executável |
$FILEHIDDEN | O arquivo está oculto | Nenhum |
PROCEDURE MakeFileReadOnly IS
VARIABLES attributes : INTEGER; retval : INTEGER;
ACTIONS -- Get the current attributes retval := FGetAttributes('c:\sai\ea\mylog.txt', attributes); IF ( retval <> 1 ) THEN -- Handle the error' END; -- Turn on read-only attribute and apply retval := FSetAttributes('c:\sai\ea\mylog.txt', BitOr($FileReadOnly, attributes) ); END;
Código de Retorno | Descrição |
1 | Conclusão bem-sucedida |
-1 | A operação falhou. |
-2 | Argumento desconhecido |
FGetAttributes
Grava os dados formatados em um arquivo.
FUNCTION FWrite (VAL fHdl: FILE, VAL data: [LIST OF] STRING) : INTEGER;
Atenção: Nenhum caractere de linha nova (fim de linha) é gravado pelo FWrite na conclusão da operação de saída.
Nome do Argumento | Descrição |
fHdl | Uma variável de arquivo definida por uma chamada anterior como FOpen com o sinalziador de modo de gravação $Create ou $Append. |
data | Uma expressão de cadeia (ou uma lista de cadeias) que deve ser gravada no arquivo indicado. |
A função FWrite grava valores simples para o arquivo especificado sem os caracteres separadores ou terminadores circundantes. A formatação do texto de saída pode ser acompanhada através da utilização da formatação da cadeia e de operadores de concatenação ( : e & ).
FUNCTION MakeLogEntry (VAL entry: STRING): INTEGER IS CONSTANTS logFileName IS 'LOGFILE.TXT'; expirationLimit IS 30; VARIABLES logFile: FILE; files: $DirectoryList; ACTIONS IF FExists(logFileName) THEN FGetDirectory(logFileName, files); IF DateDif($Today, files[1].modificationDate) > expirationLimit THEN FErase(logFileName); END; END; IF FOpen(logFile, logFileName, $Append) < 0 THEN $Result := -1; ELSIF FWrite(logFile, $Today & ' ' & $Now & ': ' & entry) < 0 THEN $Result := -2; ELSIF FClose(logFile) > 0 THEN EXIT 1; END; FClose(logFile); END;
Código de Retorno | Descrição |
>=0 | 0 - cadeia vazia foi fornecida como argumento à função, somente o retorno do
carro foi gravado no arquivo n - número positivo >0 que representa o número de linhas gravado no arquivo |
-1 | Argumento desconhecido |
-2 | A operação falhou. |
-4 | Arquivo não aberto |
-6 | Identificador inválido |
Grava uma linha de dados formatados em um arquivo.
FUNCTION FWriteLn (VAL fHdl: FILE, VAL data: [LIST OF] STRING): INTEGER;
Nome do Argumento | Descrição |
fHdl | Uma variável de arquivo definido por uma chamada anterior como FOpen com um modo de arquivo $Create ou $Append. |
data | Uma expressão de cadeia ou lista de cadeias que são gravadas fora do arquivo indicado na posição do arquivo atual. |
Como FWrite, a função FWriteLn grava valores simples em um arquivo de texto. FWriteLn difere do FWrite porque ele fornece resultados em uma final do caractere de linha, após ter gravado seus valores de argumentos (equivalentes a $NewLine).
FUNCTION MakeLogEntry (VAL entry: STRING): INTEGER IS CONSTANTS logFileName IS 'LOGFILE.TXT'; expirationLimit IS 30; VARIABLES logFile: FILE; files: $DirectoryList; ACTIONS IF FExists(logFileName) THEN FGetDirectory(logFileName, files); IF DateDif($Today, files[1].modificationDate) > expirationLimit THEN FErase(logFileName); END; END; IF FOpen(logFile, logFileName, $Append) < 0 THEN $Result := -1; ELSIF FWriteLn(logFile, $Today & ' ' & $Now & ': ' & entry) < 0 THEN $Result := -2; ELSIF FClose(logFile) > 0 THEN EXIT 1; END; FClose(logFile); END;
Código de Retorno | Descrição |
>=0 | 0 - cadeia vazia foi fornecida como argumento à função, somente o retorno do
carro foi gravado no arquivo n - número positivo >0 que representa o número de linhas gravado no arquivo |
-1 | Argumento desconhecido. |
-2 | A operação falhou. |
-4 | Arquivo não aberto. |
-6 | Identificador inválido. |
Esta função permite que você carregue e exiba um arquivo de auxílio, como WinHelp, auxílio IPF (para OS/2) ou HTML para todas as plataformas. HelpOpen chama o arquivo de auxílio solicitado e exibe o nome da seção especificado, a seção Auxílio em Auxílio, ou a seção Conteúdo.
Para o auxílio HTML, a variável de ambiente, "WebBrowser," deve ser especificada. Se esta variável não for definida, o Windows utilizará o navegador padrão e o UNIX e o OS/2 utilizarão o Netscape Navigator. Se uma URL relativa for especificada, a URL irá tornar-se uma URL absoluta pendendo anteriormente a variável de ambiente SAI_ROOT no modo nativo ou pendendo anteriormente a base de código do Miniaplicativo quando os aplicativos são ativadas para uso da Web.
FUNCTION HelpOpen( VAL whdl: WINDOW, VAL filename: String, [VAL section: STRING]): INTEGER;
Nome do Argumento | Descrição |
whdl | Esta variável é o parâmetro identificador de janela da janela principal. |
filename | O nome de arquivo do arquivo de auxílio que deve ser aberto. Esta variável pode
conter informações em um dos seguintes formatos:
|
section | O tópico do arquivo de auxílio a ser exibido. Esta variável pode ter o nome da
seção ou uma das duas seguintes constantes de cadeia:
|
A função HelpOpen inicia o sistema de arquivo de auxílio e abre o arquivo de auxílio para a seção especificada, utilizando o nome e a seção do arquivo especificado. Se a função não for bem-sucedida, o código de erro apropriado será retornado.
KNOWLEDGEBASE HLPEXPL; CONSTANTS HLP IS 'C:\TEST.HLP'; VARIABLES ret : Integer; ROUTINES PROCEDURE TestHelp; PRIVATE ROUTINES PROCEDURE TestHelp IS VARIABLES ACTIONS ret := HelpOpen( $Desktop, HLP, $OSHelpOnHelp); If ret < 1 THEN WinMessageBox($Desktop, 'Help File Read Error', BitOr($MBOK , $MBIconInformation), 'Unknown error reading data from the help file.'); END; -- Test Help -- END OF HLPEXPL.KB
Código de Retorno | Descrição |
1 | Conclusão bem-sucedida. |
-1 | Argumento desconhecido. |
-2 | A operação falhou no nível do sistema operacional. |
-3 | Memória insuficiente. |
-4 | A operação falhou no nível do sistema operacional. Este valor será retornado, se o parâmetro da seção contiver um valor desconhecido. |
-5 | A inicialização do sistema do arquivo de auxílio falhou. |
-6 | A associação da janela do sistema de arquivo de auxílio falhou. |
-7 | A criação do objeto do sistema de arquivo de auxílio falhou. |
-8 | O sistema de arquivo de auxílio não conseguiu exibir o arquivo. |
Esta função lê dados a partir de um arquivo de inicialização. Ela permite que você armazene e recupere informações nos arquivos de inicialização nativo da plataforma.
FUNCTION IniRead(REF rVal: [ STRING | INTEGER | BOOLEAN ], VAL filename: STRING, VAL section: STRING, VAL item: STRING, default: [STRING| INTEGER | BOOLEAN], [VAL filetype: STRING] ): INTEGER;
Nome do Argumento | Descrição |
rVal | Esta variável pode ser uma CADEIA, um NÚMERO INTEIRO ou um BOOLEANO. Ela recebe dados lidos a partir do arquivo .ini. |
filename | O nome de arquivo do arquivo .ini que deve ser lido. Esta variável pode
conter informações em um dos seguintes formatos:
|
section | A seção do arquivo .ini a partir da qual informações devem ser lidas. |
item | O item na seção do arquivo .ini a partir do qual informações devem ser lidas. |
default | Esta variável pode ser uma CADEIA, um NÚMERO INTEIRO ou um BOOLEANO. Ela irá conter os dados padrão para rVal, se o item que está sendo lido não puder ser encontrado. |
A função IniRead lê o item a partir da seção de inicialização utilizando o item, a seção e o nome do arquivo especificados. Se o Item não existir, o valor padrão será colocado em rVal.
KNOWLEDGEBASE EXPL; CONSTANTS INI IS 'C:\TEST.INI';
TYPES IniRecord IS Record Filename:String; FileSection:String; FileItem:String; ItemDefault:String; ItemRVal:String; ItemSData:String; ListSection: List of String; END;
VARIABLES Settings: IniRecord; ret : Integer;
ROUTINES PROCEDURE Read_From_Ini; PROCEDURE TestIni;
PRIVATE ROUTINES PROCEDURE Scan_From_Ini IS VARIABLES fh: FILE; ACTIONS ret := IniRead(Settings.ItemRVal, Settings.Filename, Settings.FileSection, Settings.FileItem, Settings.ItemDefault); if ret < 1 THEN WinMessageBox($Desktop, 'Ini File Read Error', $MBOK + MBIconInformation, 'Unknown error reading data from the file.'); END; END; -- Read from file PROCEDURE TestIni IS
ACTIONS Settings.Filename := INI; Settings.FileSection := 'section'; Settings.FileItem := 'item'; Settings.ItemDefault := 'default'; Settings.ItemSData := 'data'; Scan_From_Ini; WinMessageBox($Desktop, 'Status', $MBOK + MBIconInformation, 'Procedure was successful if no file error messages were reported.'); END; END
Código de Retorno | Descrição |
1 | Conclusão bem-sucedida |
-1 | Argumento desconhecido |
-2 | A operação falhou no nível do sistema operacional |
-5 | Arquivo não encontrado |
Esta função obtém uma lista de itens a partir da seção específica do arquivo de inicialização.
FUNCTION IniScan(REF rVal: List of String, VAL filename: String, Val section: String, [Val filetype: String] ): Integer;
Nome do Argumento | Descrição |
rVal | Esta variável é do tipo Lista de Cadeias. Ela recebe uma lista de dados lidos do arquivo .ini. |
filename | O nome de arquivo do arquivo .ini a ser lido. Esta variável pode
conter informações em um dos seguintes formatos:
|
section | A seção do arquivo .ini a partir da qual informações devem ser lidas. |
A função IniScan lê uma lista de itens função partir da seção de inicialização, utilizando a seção especificada e o nome do arquivo. Se os itens não existirem, o código de erro apropriado será retornado.
KNOWLEDGEBASE EXPL;
CONSTANTS INI IS 'C:\TEST.INI';
TYPES IniRecord IS Record Filename:String; FileSection:String; FileItem:String; ItemDefault:String; ItemRVal:String; ItemSData:String; ListSection: List of String; END;
VARIABLES Settings: IniRecord; ret : Integer;
ROUTINES PROCEDURE Scan_From_Ini; PROCEDURE TestIni;
PRIVATE
ROUTINES PROCEDURE Scan_From_Ini IS
VARIABLES fh: FILE; ACTIONS ret := IniScan(Settings.ListSection, Settings.Filename, Settings.FileSection); if ret < 1 THEN WinMessageBox($Desktop, 'Ini File Read Error', $MBOK + MBIconInformation, 'Unknown error reading data from the file.'); END; END; -- Scan from file
PROCEDURE TestIni IS VARIABLES
ACTIONS Settings.Filename := INI; Settings.FileSection := 'section'; Settings.FileItem := 'item'; Settings.ItemDefault := 'default'; Settings.ItemSData := 'data'; Scan_From_Ini;
WinMessageBox($Desktop, 'Status', $MBOK + MBIconInformation, 'Procedure was successful if no file error messages were reported.');
END;
Código de Retorno | Descrição |
1 | Conclusão bem-sucedida |
-1 | Argumento desconhecido |
-2 | A operação falhou no nível do sistema operacional |
-4 | Sem criação. O sistema operacional não pôde criar o objeto solicitado. Um motivo possível é que um identificador de janela pai faz referência a uma janela que não existe mais. |
Esta função grava dados em um arquivo de inicialização.
FUNCTION IniWrite(Val filename: String, Val section: String, Val item: String, Val data:[String | Integer | Boolean ], ): Integer;
Nome do Argumento | Descrição |
filename | O nome de arquivo do arquivo .ini no qual os dados são gravados. Esta variável pode
conter informações em um dos seguintes formatos:
|
section | A seção do arquivo .ini na qual as informações devem ser gravadas. |
item | O item na seção do arquivo .ini para o qual as informações são gravadas. |
data | Esta variável pode ser uma CADEIA, um NÚMERO INTEIRO ou um BOOLEANO. Ela contém os dados gravados para o item da seção especificada. |
A função IniWrite grava o item e os dados na seção de inicialização, utilizando o item, a seção e o nome do arquivo especificados. Se o item existir, seu valor será sobreposto no arquivo.
KNOWLEDGEBASE EXPL;
CONSTANTS INI IS 'C:\TEST.INI';
TYPES IniRecord IS Record Filename:String; FileSection:String; FileItem:String; ItemDefault:String; ItemRVal:String; ItemSData:String; ListSection: List of String; END;
VARIABLES Settings: IniRecord; ret : Integer;
ROUTINES PROCEDURE Write_To_Ini; PROCEDURE TestIni;
PRIVATE ROUTINES
PROCEDURE Write_To_Ini IS VARIABLES fh: FILE; ACTIONS ret := IniWrite(Settings.Filename, Settings.FileItem, Settings.ItemSData); if ret < 1 THEN WinMessageBox($Desktop, 'Ini File Read Error', $MBOK + MBIconInformation, 'Unknown error reading data from the file.'); END; END; -- Write to file
PROCEDURE TestIni IS
VARIABLES
ACTIONS Settings.Filename := INI; Settings.FileSection := 'section'; Settings.FileItem := 'item'; Settings.ItemDefault := 'default'; Settings.ItemSData := 'data';
Write_To_Ini;
WinMessageBox($Desktop, 'Status', $MBOK + MBIconInformation, 'Procedure was successful if no file error messages were reported.');
END; -- END OF EXPL.KB
Código de Retorno | Descrição |
1 | Conclusão bem-sucedida |
-1 | Argumento desconhecido |
-2 | A operação falhou no nível do sistema operacional |
Tivoli Service Desk 6.0 Developer's Toolkit - Referência de Linguagem do Script
Retornar a Página Principal