\embed{definition}{ } Nous donnons ici un exemple de programmes permettant de créer un texte à trous à compléter par exemple à l'écoute d'un texte. Beaucoup de variantes sont possibles. Il s'agit d'une version très simple.

- Dans un fichier `data`, il y aura plusieurs textes. Vous trouverez \link{data}{ici} les règles pour créer le fichier `data`
- Le fichier audio doit se trouver soit dans `images`, soit dans `images/nom_fichier_exo`. Dans le premier cas, vous devez changer une ligne dans le fichier `var.proc`

       image_common=yes

- L'exercice proprement dit est un exercice oef et doit donc avoir comme nom (ou plutôt adresse) `src/toto.oef`. En voici un exemple (\link{fichiertrous})

    \title{Texte à trous (dictée)}
    \text{cnt_record = \wims(\recordcnt data)}
    \text{H = \randint(\\cnt_record)}
    \text{texte = \wims(\record \\H of data)}

On choisit au hasard un des textes du fichier `data`.

    \text{bande = \wims(\word 1 of \\texte)}
    \text{texte = \wims(\replace \internal \\bande \by in \\texte)}

Le premier mot du texte doit être le nom du fichier audio.

    \matrix{texte = \slib(text/cutchoices \\texte)}
    \text{cntrow = \rows(\\texte)}
    \integer{cntQ = \\cntrow/2-1}
    \text{trou = }
    \\for{i = 1 to \\cntQ}{
      \text{trou1 = \\texte[2*\\i;]}
      \text{trou = \\trou, \\trou1}
     }
    \text{trou = \wims(\nonempty items \\trou)}

Crée la liste des réponses

    \text{audio = \slib(media/audio \imagedir/\\bande )}

Crée le code html pour la lecture du matériel audio. Attention, ce script slib n'existe qu'à partir de la version 3.50. Sinon, vous devez vous même vous le fabriquer.

    \text{STEP = \wims(\makelist r x for x = 1 to \\cntQ)}
    \steps{\\STEP}

Ceci contrôle le nombre de questions, c'est-à-dire le nombre de trous dans le texte

    \statement{ Ecouter \\audio et compléter le texte:

    <p style="background-color : #AAFFFF;
    padding : 1%;
    margin : 5% 15%;">
    \\for{k = 1 to \\cntQ}{
        \\texte[2*\\k-1;]  \\embed{\\STEP[\\k], 10}
     }
    \texte[2*\\cntQ+1;]
    </p>
    }

    \answer{}{\\trou[1]}{type=case}
    \answer{}{\\trou[2]}{type=case}
    \answer{}{\\trou[3]}{type=case}
    \answer{}{\\trou[4]}{type=case}
    \answer{}{\\trou[5]}{type=case}
    \answer{}{\\trou[6]}{type=case}
    \answer{}{\\trou[7]}{type=case}
    \answer{}{\\trou[8]}{type=case}
    \answer{}{\\trou[9]}{type=case}
    \answer{}{\\trou[10]}{type=case}
    \answer{}{\\trou[11]}{type=case}
    \answer{}{\\trou[12]}{type=case}
    \answer{}{\\trou[13]}{type=case}
    \answer{}{\\trou[14]}{type=case}
    \answer{}{\\trou[15]}{type=case}
    \answer{}{\\trou[16]}{type=case}
    \answer{}{\\trou[17]}{type=case}
    \answer{}{\\trou[18]}{type=case}
    \answer{}{\\trou[19]}{type=case}
    \answer{}{\\trou[20]}{type=case}

Ici au plus 20 trous à remplir. Mais on peut augmenter ...