Open, instruction - mode d'entrée/sortie : ?

rdep01

XLDnaute Nouveau
Bonjour à tous ! :)

J'ai vu sur différents tutoriaux que le mode de lecture / écriture lors de la création d'un nouveau fichier par Open pouvait être de trois types :

Entrée / Sortie :
Mode d'accès direct
Mode d'accès binaire
Mode d'accès séquentiel

Concretement, pour qqun dont la formation initiale n'est pas l'informatique, qu'est ce que cela signifie ?

Merci par avance à toutes les réponses
 

RENAUDER

Nous a quitté
Repose en paix
Re : Open, instruction - mode d'entrée/sortie : ?

Bonjour,
Sans être un pro voici ce que j'ai comme info et ne me demande pas trop d'explication, il y certainement des gens sur ce forum plus qualifié que moi pour le faire.

L'ACCES SEQUENTIEL
L'accès séquentiel, comme le nom le dit enregistre les informations bout à
bout, et donne essentiellement des fichiers texte. L'avantage c'est qu'il
est relativement facile à travailler, et d'utilisation plutôt souple. Nous
allons voir plus tard que VBA permet de lire le fichier ligne par ligne, ou
donnée par donnée. On peut facilement déterminer le format d'enregistrement
et choisir le caractère de délimitation (virgule, point-virgule, tabulation
ou même quelque chose d'exotique, en autant que ce soit un caractère qui ne
puisse pas être confondu avec des données.
Les principaux inconvénients sont d'une part, que c'est un fichier texte,
donc exigeant en espace de stockage, et qui n'a rien de confidentiel. Un
fichier texte peut être ouvert avec à peu près n'importe quelle application.
Il faut aussi noter que l'on ne peut pas écrire dans un fichier séquentiel
ouvert en lecture. L'inverse est aussi vrai.
L'autre inconvénient est lié au fait qu'il n'y a pas moyen d'accéder à une
donnée quelconque, sans lire les données précédentes. Si la différence est
minime dans le cas de petits fichiers, cela peut devenir très gênant, quand
on a besoin de la 50000e donnée, et qu'il faille en lire 49999 pour rien.


On accède à ce type de fichier au moyen de l'une ou l'autre des instructions
suivantes:
1/ Pour ouvrir en écriture, et écraser un fichier précédent du même nom.
(C'est au programmeur de prévoir spécifiquement les gardes-fous qui
s'imposent.)
Open fichier for output as numfichier
2/ Pour ouvrir en écriture, et ajouter des données à un fichier existant:
Open fichier for append as numfichier
3/ Pour ouvrir un fichier en lecture
Open fichier for input as numfichier
// Un petit truc pour se rappeler si c'est Input ou Output. Il faut le voir du
// point de vue du programme. Le programme lit les données (Input) et écrit les
// données (output)
// Pour écrire des données dans le fichier, le programmeur a le choix entre les
// instructions Print et Write.
Print #numfichier, les données à sauvegarder
Write #numfichier, les données à sauvegarder.
Print // qui est l'adaptation aux fichiers de l'instruction Print du BASIC
// original, permet de formater la chaîne de sortie selon ses propres critères,
// mais exige, en revanche, d'écrire les textes entre guillemets, et d'écrire
// explicitement le caractère de délimitation.
// Par exemple, écrire un nom, l'âge, et le sexe d'un individu avec la virgule
// comme caractère de délimitation:
Print #1, "Gaston Lagaffe" ; "," ; 69 ; ", " ; "Masculin"
// Le point virgule sert à "coller" les données ensemble.
// Ou, ici, écrire un nom, l'âge, et le sexe d'un individu avec le point-
// virgule comme caractère de délimitation:
Print #1, "Gaston Lagaffe" ; ";" ; 69 ; "; " ; "Masculin"
// Là, il ne faut pas confondre le point-virgule de l'instruction, et le
// point-virgule qui sert de délimiteur dans le fichier.
// Au lieu de Print, on peut également utiliser Write. Dans ce cas, les chaînes
// de caractères sont automatiquement afflubées de guillemets, et une virgule
// sert automatiquement de caractère de délimitation. Cela fait que mon Gaston
// Lagaffe va devenir:
write #1, "Gaston", "Lagaffe", 69, "Masculin"

L'ACCÈS BINAIRE
Le mode d'accès binaire permet d'écrire, ou de lire octet, par octet. Cela
permet donc de modifier directement n'importe quel fichier, Exécutable, base
de données, fichier Excel, Word. etc.). Il suffit de savoir à partir de quel
octet, et le nombre d'octets qu'il faut lire ou écrire. Si le fait de se
tromper en lecture ne risque pas d,endommager le fichier, il en est tout
autrement en écriture. Il suffit de se tromper d'un octet pour foutre en
l'air.
Ce mode d'accès binaire, permets également de définir un format de fichier
selon ses propres critères. Il faut s'assurer que que la façon dont le
fichier est lu est compatible avec la façon dont il est écrit.
Dans ce cas, l'instruction Seek, est utilisée pour se déplacer à l'octet où
doit débuter la lecture ou l'écrire.
L'instruction Get permet de lire un certains nombre d'octets.
L'instruction Put permet d'écrire dans le fichier.

L'ACCES ALEATOIRE
Nous avons vu précédemment qu'il y avait trois façons de traiter les
fichiers à partir de VBA, l'accès séquentiel, l'accès aléatoire et l'accès
binaire.
Contrairement à l'accès séquentiel, l'accès aléatoire permet de travailler
simultanément en lecture et écriture sur un fichier ouvert.
Le travail avec les fichiers aléatoires repose sur les Types définis par
l'utilisateur. Je vous reporte à la structure "Type personnage" du message
précédent:
type personnage
nom as string * 40 'Garde 40 caractères pour le nom
age as byte 'Maximun de 256 ans par personne
sexe as string * 8 'Masculin = 8 caractères, Féminin = 7 caractères
end type
dim personnes(10) as perso
 

rdep01

XLDnaute Nouveau
Re : Open, instruction - mode d'entrée/sortie : ?

Merci !! :)

Où as-tu trouvé toute cette doc ?

Tu pourrais me donner plus d'infos sur le mode aléatoire ?
Si je comprends, ce mode nécessite de créer des objets personnalisés (Type ... Dim as ...).
Mais ensuite, comment fait-on pour l'alimenter ? Le fichier peut être de quel type ? (.txt ?)

En espérant ne pas abuser ;)
 

Statistiques des forums

Discussions
312 467
Messages
2 088 671
Membres
103 914
dernier inscrit
VAL965698