Rubrica OS/2

Gli attributi estesi

allegato a questo articolo il file cmntm020.zip

di Alessandro Cantatore

Una delle caratteristiche meno conosciute e spesso sottovalutate di OS/2 sono gli attributi estesi che, a differenza dei normali attributi, simili a quelli del DOS, permettono di collegare ad un oggetto fisico informazioni di vario tipo.
Già per quanto riguarda le informazioni di base relative ai file, il sistema operativo ci permette di usare dei nomi lunghi fino a 255 caratteri e memorizzare la data e l'ora di creazione, di ultima scrittura e di ultimo accesso. Gli attributi estesi permettono molto più di questo, fornendo ulteriori informazioni ad un'applicazione, al sistema operativo, al file system che gestisce l'oggetto o all'utente. Lo stesso utente, infatti, può scrivere delle brevi note riguardanti l'oggetto accedendo agli attributi estesi dello stesso tramite il Blocco impostazioni.

Gli attributi estesi associati con un oggetto, non sono parte del file o dei suoi dati, ma vengono memorizzati separatemente da esso e gestiti dal file system.

Ogni attributo esteso è costituito da due parti: il nome e il valore. Per il nome, terminato dal carattere NULL (valore zero), si possono usare solo i caratteri che sono validi anche per i file, mentre per il valore si può usare qualsiasi tipo di dato: sia semplice testo che dati binari.

Il numero massimo degli attributi estesi associabili ad un file è limitato dalla massima dimensione degli stessi e dalla somma degli stessi che, in entrambi i casi, non può superare i 64 Kbyte (cioè un file può anche avere uno o più attributi estesi purché la dimensione totale sia inferiore ai 64 Kbyte).

Allo scopo di permettere alle varie applicazioni di accedere agli attributi estesi, anche se creati da altre applicazioni, si sono stabilite delle convenzioni riguardo la rappresentazione del il tipo di dati in essi contenuto ed è stato definito un set di attributi estesi standardizzati per gli scopi più comuni.

Gli attributi estesi standard sono:

Oltre ai suddetti attributi standard è possibile definire attributi non standard che saranno però riconosciuti solo dall'applicazione che li ha creati.

una semplice applicazione per inteargire con gli attributi estesi (Attribute Manager V 0.1 beta)

Come precedentemente accennato è possibile interagire con gli attributi estesi dei file tramite il blocco delle impostazioni dei file stessi. Tramite essi possiamo accedere ad .ASSOCTABLE (Associazione), .TYPE (Tipo), .ICON (Icona) e tramite la terza pagina del separatore File a .COMMENTS, .HISTORY e .KEYPHRASES.
Un'altra possibilità è quella di usare il REXX che offre due funzioni allo scopo: SysGetEA() e SysPutEA().

Per accedere comunque più comodamente a queste informazioni, senza dover ogni volta aprire il blocco delle impostazioni o dover far ricorso alla programmazione REXX, sto preparando una piccola applicazione, Attribute Manager che, nella versione finale, vi permetterà di accedere a queste informazioni sia in lettura che scrittura, così da permettervi di creare una specie di database dei vostri file.

Nei prossimi numeri, nelle pagine dedicate al REXX, vedremo, inoltre, come usare, tra l'altro, gli attributi estesi nell'implementazione di uno script che ci permetterà di gestire i file compressi nei vari algoritmi come directory virtuali.

Come sempre sono a vostra disposizione per chiarimenti e approfondimenti.


.ASSOCTABLE
Questo attributo è tipico dei file eseguibili e contiene informazioni che permettono di associare un file di dati con l'applicazione che lo ha creato o che è comunque in grado di interagire con il file stesso.
Più dati di diverso tipo (testo e binario) possono essere contenuti in questo attributo. Tipicamente vengono definiti, una o più volte (nel caso si associno file di tipo diverso alla stessa applicazione) i seguenti dati:

  1. nome del tipo di file che viene associato all'applicazione, secondo quanto definito nell'attributo esteso .TYPE.
  2. estensione dei file di dati associati con l'applicazione.
  3. valore binario che indica:
    1. se l'associazione debba o no considerarsi proprietaria del file ossia l'associazione di default che viene avviata quando si clicca sull'icona del file di dati. (È importante ricordare che a differenza di altri sistemi operativi, con OS/2 è possibile associare diverse applicazioni ad un file di dati, scegliendo poi, di volta in volta, tramite il menu contestuale quale applicazione avviare o cliccando sul file di dati nel caso si desideri usare l'applicazione di default.)
    2. se l'associazione sia o no modificabile;
    3. nel caso l'applicazione sia associata con diversi tipi di file di dati, se si deve usare per rappresentare ogni tipo la stessa icona del tipo precedentemente definito oppure una diversa icona.
  4. i dati dell'icona associata con il tipo sopra definito.

.CODEPAGE
Questo attributo permette di definire la quale codepage usare con un determinato file.

.COMMENTS
Questo attributo, che può contenere dati multipli e di tipo diverso (sia testo che binario) può essere usato per annotare dei commenti riguardanti il file. Potrebbe ad esempio essere utilizzato per contenere un'immagine miniaturizzata per il preview di un file grafico o la descrizione del contenuto di un file zip.

.HISTORY
Questo attributo può essere usato da un'applicazione per memorizzare la storia di un file: quando è stato creato, modificato e da chi è stato creato e successivamente modificato.

.ICON
In questo attributo viene memorizzata l'icona del file. In mancanza di questo attributo il sistema userà l'icona definita dall'applicazione cui è associato il file.

.KEYPHRASES
L'uso tipico di questo attributo è nella definizione di una o più frasi chiave, attinenti il contenuto del file, per una migliore organizzazione dei file presenti sul disco e la ricerca degli stessi secondo le parole chiave. Nel caso di un programma per gestire i file di una BBS si potrebbe ad esempio sfruttare l'attributo .COMMENTS per annotare una descrizione del contenuto del file, e l'attributo .KEYPHRASES per la ricerca dei file secondo parole chiave. Per esempio nel caso di un file manager DOS funzionante in modo testo si potrebbero usare diverse frasi chiave (File manager, modo testo, DOS) che ci permetterebbero di creare dinamicamente liste di file secondo diversi parametri logici come in un database.

.LONGNAME
Lo scopo di questo attributo è quello di sopperire al limite degli 8 + 3 caratteri dei nomi dei file tipico del file system FAT. Un'applicazione che sia pienamente compatibile sia con il file system FAT che con l'HPFS, usa questo attributo per salvare il nome del file quando questo è collocato su una partizione FAT, troncando il nome reale per rispettare i limiti di lunghezza. Quando il file viene spostato su una partizione HPFS, il nome originale viene recuperato dall'attributo esteso e ripristinato in sostituzione del nome abbreviato.

.SUBJECT
Questo attributo come .COMMENTS ha lo scopo di descrivere il contenuto del file, ma la descrizione può essere solo un testo non più lungo di 40 caratteri.

.TYPE
Attraverso .TYPE viene definito il tipo del file attraverso cui è possibile mantenere l'associazione con uno o più eseguibili anche indipendentemente dall'estensione del file stesso. Un'applicazione può ad esempio essere in grado di interagire con un'immagine GIF anche se l'estensione del file non è .GIF, o riconoscere correttamente e decomprimere un file ZIP anche quando la sua estensione non sia ZIP.
I tipi predefiniti dal sistema sono:

  • OS/2 Command File
  • DOS Command File
  • Executable
  • Metafile
  • Bitmap
  • Icon
  • Binary Data
  • C Code
  • Pascal Code
  • C Code
  • BASIC Code
  • COBOL Code
  • FORTRAN Code
  • Assembler COde
  • Library
  • Resource File
  • Object Code
Se un file di dati è privo di questo attributo, l'associazione viene ricavata dall'associazione del file stesso

.VERSION
La versione del file di dati o eseguibile può essere memorizzata in questo attributo sia in formato binario che in formato ASCII.


Alessandro Cantatore è raggiungibile su Internet tramite la redazione

Copyright © 1995-97 BETA. Tutti i diritti riservati.


Copertina Sommario Internet ID Ricerca Redazione Browser