C’est une fonction assez méconnue dans Scratch qui semble parfois bien isolé sans possibilité de communiquer avec le web, de charger ou sauvegarder des fichiers. Pourtant il est possible d’importer et d’exporter des données au travers des listes.

Voyons d’abord l’exportation. Dans les commandes « Variables », il suffit de créer une liste et d’y intégrer un certain nombre de données. Le script ci-dessous insère ainsi dans la liste créée dix nombres aléatoires.

Capture d’écran 2020-01-14 à 21.52.45

Pour exporter la liste, faites un clic droit sur la liste et un menu contextuel « import / export » apparaît alors. En cliquant sur « export », une boîte de dialogue vous propose de sauvegarder les données dans un fichier texte (format .txt).

Capture d’écran 2020-01-14 à 21.53.51

Voici le fichier tel qu’il apparaît ouvert dans l’éditeur de texte Atom, chaque valeur de la liste étant placée sur une ligne distincte.

Capture d’écran 2020-01-14 à 21.57.19

Passons maintenant à l’importation de données. Créons un nouveau fichier dans Scratch, une nouvelle liste et faisons un clic droit dessus pour faire apparaître le menu contextuel. On choisit « import » et on charge le fichier que l’on vient de créer. La liste se remplit alors avec un chiffre par ligne.

Capture d’écran 2020-01-14 à 21.53.29

L’importation de données se fait à partir de fichiers texte ou de fichiers CSV (cf. ci-dessous) en respectant quelques règles. Un fichier au format texte (txt) ne se fait pas avec un traitement de texte mais avec un éditeur de texte, par exemple le bloc-notes, GeanyNotepad++, Atom, Nano et pour les plus aguerris Emacs ou Vi. Un traitement de texte ajoute en effet dans le fichier des informations, des « instructions » supplémentaires non nécessaires.

On inscrit une donnée par ligne que ce soit un chiffre ou un mot, une liste de termes ou de prénoms par exemple. Dans le cas de phrases, il faut les mettre entre guillemets car sinon les virgules sont comprises comme des délimitations de données et Scratch se comporte comme pour un fichier CSV. On préférera utiliser des guillemets doubles, les apostrophes étant comprises comme des guillemets simples et pouvant induire Scratch en erreur. À noter : les lignes vides sont comptabilisées dans le fichier et intégrées comme données.

Par exemple :

  • Incorrect : ‘Qu’il y ait du public ou pas, l’événement aura lieu.’
  • Correct : »Qu’il y ait du public ou pas, l’événement aura lieu. »

Capture d’écran 2020-01-14 à 22.52.14

Qu’est-ce donc qu’un fichier CSV ? L’acronyme CSV est utilisé pour « Comma Separated Values » soit des données séparées par des virgules comme dans le fichier illustré ci-dessous.

Capture d’écran 2020-01-15 à 15.15.48

Un fichier CSV ressemble à un tableau mais dont les colonnes sont délimitées par des virgules. On peut aussi utiliser des tabulations, des points-virgules… en fait pratiquement tout caractère tant que l’on indique clairement au logiciel qui va recueillir les données comment celles-ci sont séparées. Dans notre cas, nous pourrions avoir un tableau avec 4 colonnes : prénom, âge, collège, fruit préféré comme indiqué en première ligne.

Scratch peut importer des fichiers CSV mais colonne par colonne, la question étant directement posée lors de l’importation. Pour que cela fonctionne correctement et que vous n’ayez pas de problèmes d’importation avec des données manquantes, il faut que votre fichier CSV soit « bien formé » et qu’il n’y ait pas d’erreurs, par exemple 4 colonnes sur une ligne, 5 sur une autre… Nous y reviendrons.

Capture d’écran 2020-01-14 à 22.53.07

Cela signifie dans notre cas que nous devrions créer 4 listes et importer les 4 colonnes une à une. Il est possible de ruser et d’automatiser cela dans Scratch mais cela fera l’objet d’un autre article. On pourra examiner des fonctions de parsing (ou comment analyser et interpréter les données d’un fichier) et le format XML. Cela fera aussi l’objet d’autres articles, tant il y a de choses à dire sur le sujet.

En attendant, soyez audacieux, faîtes des tests ! Soyez data-ambitieux…

Screenshot_2020-01-15 Scratch - Untitled-17

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s