4D v12.4

SET RESOURCE

Página Inicial

 
4D v12.4
SET RESOURCE

 

SET RESOURCE 


 

SET RESOURCE ( resTipo ; resID ; resDados {; resArquivo} )  
Parâmetro Tipo   Descrição
resTipo  cadeia in Tipo de resource de 4 caracteres
resID  Inteiro longo in Número de resource ID
resDados  BLOB in Novo conteúdo do resource
resArquivo  DocRef in Número de arquivo de referência do resource ou arquivo de resource atual, se omitido

O comando SET RESOURCE cria ou reescreve o recurso cujo tipo e número é passado em resTipo e resNum com os dados passados no BLOB resDados.

Importante: deve passar uma cadeia de 4 caracteres em resTipo.

Se não for possível escrever o recurso, a variável OK assume o valor 0 (zero).

Se passar um número de referência de arquivo de recursos válido em resArquivo, o recurso é adicionado a esse arquivo. Se não passa resArquivo, o recurso é adicionado ao primeiro arquivo da fila de arquivos de recursos (o último arquivo de recurso aberto).

Nota: um recurso pode ter um tamanho de vários megabytes.

Lembre que está trabalhando com recursos de Mac OS. Qualquer que seja a plataforma usada, os valores internos dos recursos como inteiros longos são armazenados usando a ordenação de bytes ("byte ordering") de McIntosh. Em windows, os dados dos recursos padrão (tais como os recursos listas de cadeias e os recursos de imagens) a ordem dos bytes é invertida automaticamente quando for necessário. Por outro lado, se criar e usar suas próprias estruturas de dados internos, você que terá que realizar a inversão de bytes dos dados quando escrever em um BLOB (por exemplo, passando Macintosh byte ordering a um comando tal como LONGINT TO BLOB).

Exemplo  

Durante uma sessão 4D, você conserva as preferências do usuário nas variáveis interprocesso. Para salvar essas preferências de sessão para sessão, pode:

1. Utilizar os comandos SAVE VARIABLES e LOAD VARIABLES para guardar e recuperar as variáveis nos documentos de variáveis em disco.

2. Utilize os comandos VARIABLE TO BLOB, BLOB TO DOCUMENT, DOCUMENT TO BLOB e BLOB TO VARIABLE para guardar e recuperar as variáveis nos documentos BLOB em disco.

3. Utilize os comandos VARIABLE TO BLOB, SET RESOURCE, GET RESOURCE e BLOB TO VARIABLE para guardar e recuperar as variáveis em arquivos de recursos em disco.

Esse é um exemplo do terceiro método.

No Método banco de dados On Exit escreve:

  ` Método de banco On Exit
 If(Test path name("DB_Prefs")#Is a document)
    $vhResArchivo:=Create resource file("DB_Prefs")
 Else
    $vhResArchivo:=Open resource file("DB_Prefs")
 End if
 If(OK=1)
    VARIABLE TO BLOB(◊vbAutoRepite;$vxPrefData)
    VARIABLE TO BLOB(◊vlCurTabla;$vxPrefData;*)
    VARIABLE TO BLOB(◊asDfltOpcion;$vxPrefData;*)
  ` etc...
    SET RESOURCE("PREF";26500;$vxPrefData;$vhResArquivo)
    CLOSE RESOURCE FILE($vhResArquivo)
 End if


No Método banco de dados On Startup escreve:

  ` Método de banco On Startup
 C_BOOLEAN(◊vbAutoRepete)
 C_LONGINT(◊vlCurTabela)
 $vbDone:=False
 $vhResArchivo:=Open resource file("DB_Prefs")
 If(OK=1)
    GET RESOURCE("PREF";26500;$vxPrefData;$vhResArquivo)
    If(OK=1)
       $vlOffset:=0
       BLOB TO VARIABLE($vxPrefData;◊vbAutoRepete;$vlOffset)
       BLOB TO VARIABLE($vxPrefData;◊vlCurTabela;$vlOffset)
       BLOB TO VARIABLE($vxPrefData;◊asDfltOpção;$vlOffset)
  ` etc.
       $vbDone:=True
    End if
    CLOSE RESOURCE FILE($vhResArquivo)
 End if
 If(Not($vbDone))
    ◊vbAutoRepetir:=False
    ◊vlCurTabela:=0
    ARRAY STRING(127;◊asDfltOpcao;0)
 End if

Se o recurso tiver sido escrito, a variável sistema OK toma o valor 1, do contrário toma o valor 0 (zero).

 
PROPRIEDADES 

Produto: 4D
Tema: Recursos
Número 509

Este comando modifica a variável sistema OK

 
HISTÓRIA 

Criado por: 4D v6

 
VER TAMBÉM 

Comandos BLOB
GET RESOURCE