Reading from an external file in random access

Y compris Power BI, Power Query et toute autre question en lien avec Excel
L
Loski
Jeune membre
Jeune membre
Messages : 40
Inscrit le : 15 mars 2015
Version d'Excel : 71

Message par Loski » 11 mai 2015, 00:12

Comment définir ma Open pathname for mode input random?
et comment définir la longueur "reclength".

Chacune des plus de 2000 lignes a lire en random ont 81 characters.
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 415
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 11 mai 2015, 11:12

Bonjour,

Si j'ai bien compris ta demande ... :wink:

To open a file for random access from VBA you can use the Open statement, as follows :

Open filename For Random As filenumber Len=buffersize
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
L
Loski
Jeune membre
Jeune membre
Messages : 40
Inscrit le : 15 mars 2015
Version d'Excel : 71

Message par Loski » 11 mai 2015, 11:30

En fait, après avoir envoyé ma demande, j'ai réalisé que je n'avais pas très bien expliqué. Mais tu as déjà répondu.

J'ai près de 2000 lignes dans mon fichier (diffèrent nombre dans d'autres fichiers aussi à lire). Chaque ligne est de 81 charactères, et parfois 162 (avec les virgules).
Je souhaite a chaque lecture d'un fichier, prendre une ligne randomly., pas du tout en séquence.
Donc je me demande si " Open filename for Random" est correct.
Peut être devrait je générer un random number (avec "randint") et le soumettre pour piquer une ligne parmi celles disponibles dans les 2000.
Dans ce cas quelle serait le format de mon Open filename ?
et quoi mettre dans le buffersize? La valeur 2000? ou la valeur 81?
Chaque ligne est séparée par un carriage return évidemment.

Merci,
Avatar du membre
Marc L
Membre dévoué
Membre dévoué
Messages : 821
Appréciation reçue : 1
Inscrit le : 27 janvier 2015
Version d'Excel : 2003 / 2007

Message par Marc L » 11 mai 2015, 11:43

 
  Hi !

  It's a bit weird to open a variable line length text file in binary mode ‼


  Lire le fichier texte normalement et affecter chaque ligne (remaniée si besoin) dans une variable tableau

  puis utiliser la fonction   Rnd   pour un tirage au sort d'un indice de cette variable …


  Je suis Charlie   -   Je suis Bardo
L
Loski
Jeune membre
Jeune membre
Messages : 40
Inscrit le : 15 mars 2015
Version d'Excel : 71

Message par Loski » 11 mai 2015, 12:02

Hello. Je corrige.

Each line of all text files does have a defined length of 81 numeric characters (0 to 9).

But each file to open does have a different number of lines. Some of a few, other of several hundred, even several thousand.

Donc tu suggère que je génère un numéro random pour lire n'importe quelle ligne en random? Right?
Peut être que Input for random is not correct then?

Merci,
L
Loski
Jeune membre
Jeune membre
Messages : 40
Inscrit le : 15 mars 2015
Version d'Excel : 71

Message par Loski » 11 mai 2015, 12:03

Hello. Je corrige.

Each line of all text files does have a defined length of 81 numeric characters (0 to 9).

But each file to open does have a different number of lines. Some of a few, other of several hundred, even several thousand.

Donc tu suggère que je génère un numéro random pour lire n'importe quelle ligne en random? Right?
Peut être que Input for random is not correct then?

Merci,
Avatar du membre
Marc L
Membre dévoué
Membre dévoué
Messages : 821
Appréciation reçue : 1
Inscrit le : 27 janvier 2015
Version d'Excel : 2003 / 2007

Message par Marc L » 11 mai 2015, 12:31

  Donc le titre est en anglais mais tu ne comprends rien à l'anglais, reste en français alors ‼   :lol:

  Je suggère que c'est franchement beaucoup pas mal idiot d'ouvrir un fichier en binaire qui n'en est pas un !
  Surtout avec une structure de ligne  - qui dit ligne dit fichier texte et non binaire ! -  variable car de longueurs différentes …
  Qui plus est pour un novice confondant taille de texte et longueur d'enregistrement !

  Donc l'idée pour un débutant est de lire le fichier texte normalement ligne à ligne, scinder la ligne si elle en contient plusieurs
  (encore une conception de fichier effectuée avec les pieds au lieu de la tête !) puis l'affecter dans une variable tableau par exemple
  afin de pouvoir tirer au sort un numéro d'indice s'il y a besoin de réitérer le tirage plusieurs fois dans la procédure sinon,
  il suffit juste d'incrémenter un compteur pour atteindre le numéro de la ligne souhaitée …

  Évidemment avec une conception du fichier digne de ce nom, pas de souci avec le mode binaire (simple en consultant l'aide VBA).
  Maintenant pour un connaisseur VBA avec un tant soit peu de jugeote, avec un éditeur de fichier (hexadécimal) il suffit de vérifier
  la longueur réelle des enregistrements (81 est donc faux !) et s'ils sont tous égaux, le mode binaire est alors possible sur un texte …

  Mais comme déjà précisé dans le cas d'une opération répétitive, préférer la rapidité de l'accès en mémoire
  dans une variable tableau à l'accès redondant au disque dur …
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
L
Loski
Jeune membre
Jeune membre
Messages : 40
Inscrit le : 15 mars 2015
Version d'Excel : 71

Message par Loski » 11 mai 2015, 13:12

comprend rien en Français.

En Angalis please?
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message
  • Random
    par Phantom88 » 15 octobre 2019, 17:15 » dans Excel - VBA
    6 Réponses
    82 Vues
    Dernier message par Phantom88
    16 octobre 2019, 15:18
  • Random et Seed
    par Starbuck » 30 mars 2019, 14:01 » dans Excel - VBA
    3 Réponses
    60 Vues
    Dernier message par Starbuck
    30 mars 2019, 15:25
  • Utilisation de Random (Aléatoire)
    par saucenak » 4 février 2016, 13:16 » dans Excel - VBA
    3 Réponses
    233 Vues
    Dernier message par saucenak
    8 février 2016, 12:50
  • Fonction random, données manquantes
    par YaxleY » 26 mars 2016, 18:07 » dans Excel - VBA
    7 Réponses
    376 Vues
    Dernier message par jmd
    27 mars 2016, 08:52
  • File Input
    par kamellias » 27 mars 2017, 04:22 » dans Excel - VBA
    1 Réponses
    118 Vues
    Dernier message par i20100
    27 mars 2017, 05:20
  • Select case me file la migraine...
    par atlonia » 3 septembre 2018, 14:40 » dans Excel - VBA
    9 Réponses
    104 Vues
    Dernier message par atlonia
    4 septembre 2018, 19:21