Contenu

# Instruction Put#

Écrit un enregistrement dans un fichier relatif ou une séquence d'octets dans un fichier binaire.

Utilisez l'instruction Print# pour imprimer des données dans un fichier de texte séquentiel. Utilisez l'instructionWrite# pour écrire des données dans fichier de texte séquentiel avec des caractères de délimitation.

### Syntaxe :

    Put [#]fileNum, [recordNum|filePos], variable

### Paramètres :

fileNum : toute expression au format nombre entier définissant le fichier de destination de l'écriture.

recordNum, filePos : pour les fichiers relatifs (ouverts par accès Random), numéro de l'enregistrement à écrire.

Pour les fichiers binaires (accès Binary), position de l'octet auquel l'écriture doit commencer, dans le fichier.

variable : nom de la variable à écrire dans le fichier.

Remarque concernant les fichiers relatifs : Si le contenu de cette variable ne correspond pas à la longueur de l'enregistrement spécifié dans la clause Len de l'instruction Open, l'espace entre la fin de l'enregistrement récemment écrit et le prochain enregistrement est complété par des données existantes provenant du fichier en cours d'écriture.

Remarque concernant les fichiers binaires : le contenu des variables est écrit à la position spécifiée et le pointeur de fichier est inséré immédiatement après le dernier octet. Aucun espace n'est laissé entre les enregistrements.

### Exemple :

      Sub ExampleRandomAccess
          Dim iNumber As Integer
          Dim sText As Variant ' Doit être un variant
          Dim aFile As String
          aFile = "C:\Users\ThisUser\data.txt"
          iNumber = Freefile
          Open aFile For Random As #iNumber Len=32
          Seek #iNumber,1 ' Position au début
          Put #iNumber, , "Ceci est la première ligne de texte" ' Remplir la ligne avec du texte
          Put #iNumber, , "Ceci est la seconde ligne de texte"
          Put #iNumber, , "Ceci est la troisième ligne de texte"
          Seek #iNumber,2
          Get #iNumber, , sText
          Print sText
          Close #iNumber
          iNumber = Freefile
          Open aFile For Random As #iNumber Len=32
          Get #iNumber, 2, sText
          Put #iNumber, ,"Ceci est un nouveau texte"
          Get #iNumber, 1, sText
          Get #iNumber, 2, sText
          Put #iNumber, 20, "Ceci est le texte de l'enregistrement 20"
          Print Lof(#iNumber)
          Close #iNumber
      End Sub

      Sub ExampleRandomAccess
          Dim iNumber As Integer
          Dim sText As Variant ' Doit être un variant
          Dim aFile As String
          aFile = "~/data.txt"
          iNumber = Freefile
          Open aFile For Random As #iNumber Len=32
          Seek #iNumber,1 ' Position au début
          Put #iNumber, , "Ceci est la première ligne de texte" ' Remplir la ligne avec du texte
          Put #iNumber, , "Ceci est la seconde ligne de texte"
          Put #iNumber, , "Ceci est la troisième ligne de texte"
          Seek #iNumber,2
          Get #iNumber, , sText
          Print sText
          Close #iNumber
          iNumber = Freefile
          Open aFile For Random As #iNumber Len=32
          Get #iNumber, 2, sText
          Put #iNumber, ,"Ceci est un nouveau texte"
          Get #iNumber, 1, sText
          Get #iNumber, 2, sText
          Put #iNumber, 20, "Ceci est le texte de l'enregistrement 20"
          Print Lof(#iNumber)
          Close #iNumber
      End Sub

Rubriques connexes

Instruction Close

Instruction Get

Instruction Optn