Tivoli Service Desk 6.0 Developer's Toolkit - Referência de Linguagem do Script

Tratamento de Arquivo

Retornar a Página Principal


$DirSeprStr

Descrição

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 ('/').

Sintaxe

FUNCTION $DirSeprStr : STRING;

Notas

Esta função é útil para análise de nomes de arquivos completos e nomes de diretórios.

Exemplo

(* 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;

Consulte também

$PathSeprStr


$NewLine

Descrição

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".

Sintaxe

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.

Notas

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.

Exemplo

(* 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;

$PathSeprStr

Descrição

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.

Sintaxe

FUNCTION $PathSeprStr: STRING;

Notas

Esta função é útil para análise de caminhos de pesquisa.

Exemplo

(* 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;

Consulte também

$DirSeprStr


FClose

Descrição

Fecha um arquivo aberto.

Sintaxe

FUNCTION FClose (VAL fHdl: FILE): INTEGER;

Notas do Argumento

Nome do Argumento Descrição
fHdl O parâmetro identificador de um arquivo aberto a ser fechado

Notas

A função FClose faz com que o arquivo determinado seja esvaziado (se ele estiver aberto para a saída) e fechado.

Exemplo

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ódigos de Retorno

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.

Consulte também

FOpen


FEnd

Descrição

Indica se o arquivo aberto está no final do arquivo.

Sintaxe

FUNCTION FEnd (VALUE fHdl: FILE): BOOLEAN;

Atenção: Se o argumento do arquivo for desconhecido, FEnd retornará um valor desconhecido.

Notas do Argumento

Nome do Argumento Descrição
fHdl Uma expressão desempenhando um parâmetro identificador para o arquivo a ser testado.

Notas

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.

Exemplo

 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ódigos de Retorno

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).

Consulte também


FErase

Descrição

Elimina um arquivo.

Sintaxe

FUNCTION FErase (VAL fileName: STRING): INTEGER;

Atenção: O procedimento desta função não será definido, se o arquivo nomeado estiver aberto.

Notas do Argumento

Nome do Argumento Descrição
fileName O nome do arquivo a ser eliminado

Notas

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.

Exemplo

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ódigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida
-1 A operação falhou.
-2 Argumento de arquivo desconhecido

Consulte também

FOpen


FExists

Descrição

Testa a existência de um arquivo.

Sintaxe

FUNCTION FExists (VAL fileName: STRING): BOOLEAN;

Notas do Argumento

Nome do Argumento Descrição
fileName Uma expressão de cadeia desempenhando um nome de arquivo válido.

Exemplo

If FExists ("C:\MYFILE.DAT") THEN
 DoProcessFile;
ELSE
 DoCreateFile;
              END;

Códigos de Retorno

Código de Retorno Descrição
TRUE O arquivo existe
FALSE O arquivo não existe

Consulte também


FGetAttributes

Descrição

Obtém os atributos de sistema de arquivo nativo associados ao arquivo determinado.

Sintaxe

FUNCTION FGetAttributes (VAL filename: STRING,
 REF attributes: INTEGER ) : INTEGER

Notas do Argumento

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:
  • $FILENOPRIVS
  • $FILEREADABLE
  • $FILEWRITEABLE
  • $FILEEXECUTABLE
  • $FILEHIDDEN

Notas

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

Exemplo

Consulte o exemplo para FSetAttributes.

Códigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida
-1 A operação falhou.
-2 Argumento desconhecido

Consulte também

FSetAttributes


FGetDirectory

Descrição

Cria uma listagem de diretório.

Sintaxe

FUNCTION FGetDirectory(VAL pattern: STRING, REF
 directoryList: LIST OF $DIRECTORYRECORD)
 : INTEGER;

Notas do Argumento

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.

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.

Exemplo

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ódigos de Retorno

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.

Consulte também


FOpen

Descrição

Abre um arquivo.

Sintaxe

FUNCTION FOpen (REF fHdl: File, VAL name: String
 [,$READ|$CREATE|$APPEND] ): Integer;

Notas do Argumento

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.

Notas

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.

Exemplo

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ódigos de Retorno

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.

Consulte também


FRead

Descrição

Lê valores simples a partir de um arquivo aberto e os atribui às variáveis referenciadas.

Sintaxe

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.

Notas do Argumento

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).

Notas

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:
  • O final do arquivo ou o final da linha é atingido antes dos valores terem sido lidos para todos os argumentos determinados
  • Um valor é lido que não pode ser convertido no tipo apropriado do parâmetro associado

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.

Exemplo

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ódigos de Retorno

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.

Consulte também


FReadLn

Descrição

Lê uma linha de entrada a partir de um arquivo aberto, atribuindo os valores simples do componente às variáveis referidas.

Sintaxe

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.

Notas do Argumento

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.

Notas

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:
  • O final do arquivo ou o final da linha é atingido antes dos valores terem sido lidos para todos os argumentos determinados
  • Um valor é lido que não pode ser convertido no tipo apropriado do parâmetro associado

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.

Exemplo

 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ódigos de Retorno

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.

Consulte também


FReadText

Descrição

Lê um arquivo em uma lista de cadeias.

Sintaxe

FUNCTION FReadText (VAL fHdl: FILE, REF lst: LIST OF STRING):INTEGER;

Notas do Argumento

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

Notas

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.

Exemplo

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ódigos de Retorno

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.

FSetAttributes

Descrição

Define os atributos de arquivo do nível do sistema operacional associados ao arquivo fornecido.

Sintaxe

FUNCTION FSetAttributes (VAL filename: STRING,
 VAL attributes: INTEGER ): INTEGER

Notas do Argumento

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
  • $FILENOPRIVS
  • $FILEREADABLE
  • $FILEWRITEABLE
  • $FILEEXECUTABLE
  • $FILEHIDDEN.

Notas

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

Exemplo

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ódigos de Retorno

Código de Retorno Descrição
1 Conclusão bem-sucedida
-1 A operação falhou.
-2 Argumento desconhecido

Consulte também

FGetAttributes


FWrite

Descrição

Grava os dados formatados em um arquivo.

Sintaxe

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.

Notas do Argumento

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.

Notas

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 & ).

Exemplo

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ódigos de Retorno

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

Consulte também


FWriteLn

Descrição

Grava uma linha de dados formatados em um arquivo.

Sintaxe

FUNCTION FWriteLn (VAL fHdl: FILE, VAL data: [LIST OF] STRING): INTEGER;

Notas do Argumento

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.

Notas

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).

Exemplo

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ódigos de Retorno

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.

Consulte também


HelpOpen

Descrição

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.

Sintaxe

FUNCTION HelpOpen( VAL whdl: WINDOW, VAL filename: String,
 [VAL section: STRING]): INTEGER;

Notas do Argumento

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:
  • O nome do arquivo com o caminho completo para o arquivo (nome do arquivo completo).
  • O nome do arquivo sem o caminho. O diretório do sistema da plataforma é utilizado como a localização do arquivo.
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 constante da cadeia $OSHelpOnHelp especifica que o auxílio padrão no auxílio deve ser exibido.
  • A constante da cadeia $OSHelpContents especifica que o conteúdo de auxílio é exibido.

Notas

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.

Exemplo

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ódigos de Retorno

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.

IniRead

Descrição

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.

Sintaxe

FUNCTION IniRead(REF rVal: [ STRING | INTEGER | BOOLEAN ],
                 VAL filename: STRING,
                 VAL section: STRING,
                 VAL item: STRING,
                 default: [STRING| INTEGER | BOOLEAN],
                 [VAL filetype: STRING] ): INTEGER;

Notas do Argumento

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:
  • O nome de arquivo com o caminho completo para o arquivo.
  • O nome do arquivo sem o caminho. O diretório do sistema da plataforma é utilizado como a localização do arquivo.
  • A constante de cadeia $OSIni ou $SAIni, que são as localizações do arquivo .ini ou arquivo Softart.ini específico do sistema operacional, respectivamente.
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.

Notas

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.

Exemplo

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ódigos de Retorno

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

Consulte também


IniScan

Descrição

Esta função obtém uma lista de itens a partir da seção específica do arquivo de inicialização.

Sintaxe

FUNCTION IniScan(REF rVal: List of String,
                 VAL filename: String,
                 Val section: String, [Val filetype:
                 String] ): Integer;

Notas do Argumento

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:
  • O nome de arquivo com o caminho completo para o arquivo.
  • O nome do arquivo sem o caminho. O diretório do sistema da plataforma deve ser utilizado como a localização do arquivo.
  • A constante de cadeia $OSIni ou $SAIni, que são as localizações do arquivo .ini ou arquivo Softart.ini específico do sistema operacional, respectivamente.
section A seção do arquivo .ini a partir da qual informações devem ser lidas.

Notas

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.

Exemplo

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ódigos de Retorno

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.

Consulte também


IniWrite

Descrição

Esta função grava dados em um arquivo de inicialização.

Sintaxe

FUNCTION IniWrite(Val filename: String,
                  Val section: String,
                  Val item: String,
                  Val data:[String | Integer | Boolean ],
                  ): Integer;

Notas do Argumento

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:
  • O nome de arquivo com o caminho completo para o arquivo.
  • O nome do arquivo sem o caminho. O diretório do sistema da plataforma deve ser utilizado como a localização do arquivo.
  • A constante de cadeia $OSIni ou $SAIni, que são as localizações do arquivo .ini ou arquivo Softart.ini específico do sistema operacional, respectivamente.
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.

Notas

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.

Exemplo

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ódigos de Retorno

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

Consulte também


Tivoli Service Desk 6.0 Developer's Toolkit - Referência de Linguagem do Script

Retornar a Página Principal

Copyright