Les tableaux de données permettent de créer des interactions génériques: il s'agit d'interactions dans lesquelles les questions et les réponses ne sont pas stockées dans le code même du programme mais sont soit générées au hasard, soit prélevées dans un tableau de données. Nous avons déjà étudié la génération aléatoire, ses avantages et ses limites. Si les données sont puisées dans un tableau, celui-ci peut soit être rempli dans le logiciel même, soit constitué à partir d'un fichier externe.
L'avantage de ces fichiers externes est qu'il peuvent par être édités par l'utilisateur: dans le cas d'un didacticiel, l'enseignant pourra éditer ce fichier pour ajouter des questions, des réponses, des exemples, etc. On parle dans ce cas de didacticiel ouvert. Permettre à l'enseignant d'adapter l'outil aux caractéristiques de sa classe augmente la probabilité que celui-ci puisse effectivement l'utiliser. Si la structure du fichier est simple, celui-ci pourra être édité avec un simple traitement de texte. Si la structure est complexe, il est préférable de créer (par exemple avec Authorware) un interface permettant d'éditer le fichier sans se soucier du format particulier des données.
Afin d'utiliser les données figurant dans un fichier externe, il est préférable de procéder en trois phases représentées sur la figure 12.2 : (1) lire les données, (2) les organiser dans un tableau et (3) les utiliser dans les interactions. Les étapes (2) et (3) on été écrites dans la section précédente. L'étape (2) n'est pas absolument indispensable, mais elle permet de mieux structurer les données et donc de rédiger un programme plus 'propre'.
Lire un fichier externe dans Authorware consiste en une seule opération. La difficulté consiste à traiter ces données. En effet, comme dans l'exemple ci-dessous, les caractères qui figurent dans le fichier "Questions.txt" sont placés ensemble dans une seule variable, la variable 'data'. L'étape (1) de la figure 12.2 se limite donc à un seule ligne:
Data := ReadExtFile("Questions.txt")
Il est préférable que ce fichier soit un simple fichier texte, c'est-à-dire qu'il ne comprenne pas d'autres caractères que le texte lui même et les sauts de ligne (RETURN). Par exemple, pour construire le tableau de données présenté en 12.3, le fichier texte pourrait être le suivant ( le nom du pays est systématiquement suivi du nom de la capitale et de l'aéroport):
Le programme doit alors décomposer cette longue chaîne de caractères pour y retrouver les différents éléments. Le programme de lecture du fichier consiste à placer l'ensemble des données dans la variable 'data' et à analyser ensuite ligne par ligne le contenu de cette variable. La fonction GetLine (variable, n) permet de prélever n ième ligne de la variable. La première ligne de la variable est la ligne 0. La procédure ci-dessous lira donc les lignes 0, 1 et 2 pour le premier pays et placera respectivement les informations dans les cellules 1, 11 et 21 du tableau de données. Le module (2) de la figure 12.2 prendra donc la forme suivante:
ArraySet (country, GetLine(data, country * 3))
ArraySet (10 + country, GetLine(data, 1 + country * 3))
ArraySet (20 + country, GetLine(data, 2 + country * 3))
Une ligne pour l'instruction "GetLine" est une séquence de caractères qui se termine par RETURN. Cette ligne peut donc occuper plusieurs lignes à l'écran (il s'agit donc plus exactement d'un paragraphe).
Créer un QUIZ éditable. Le quiz est constitué de dix questions 'vrai - faux'. L'utilisateur répond au moyen de boutons. Les dix questions sont stockées dans un fichier externe. Pour chaque question, il faut stocker l'affirmation à présenter, suivie de 'vrai' ou 'faux'. Les questions sont présentées dans l'ordre où elles figurent dans le fichier.
Voir: http://tecfa.unige.ch/campus/infospace/index.php?display=rooms&id=120212
Il se peut que votre logiciel ne trouve pas le fichier de questions. Vous pouvez préciser l'arbre des répertoires. En réalité, l'arbre des répertoires du fichier Authorware (votre programme) se trouve dans la variable FileLocation. Aussi, si vous concatenez celui-ci au nom de votre fichier de données et que vous placez bien ce fichier données dans le même répertoire que le programme, celui-ci le retrouvera sans peine.