le 03-23-2015 08:43 AM
Bonjour,
Alors voici mon problème: j'ai un fichier texte contenant un tableau de 9 colonnes et environ 15 millions de lignes. J'utilise labview pour traiter ces données, ce qui ne pose pas de problème hormis pour un point: lire partiellement le fichier sans avoir à effectuer une lecture complète, qui sature la mémoire du pc.
Par exemple, je veux extraire 1000 lignes de ce tableau, à partir de la 10 000 ème ligne. J'ai essayé avec le sous VI: "lire un fichier tableur" mais celui-ci ne propose qu'un offset de caratère à la lecture et non un offset de lignes, et c'est compliqué de connaître simplement la relation entre le nombre de caractères et le nombre de lignes.
Donc est ce que vous auriez une autre solution pour lire paratiellement un tableau ?
Merci d'avance pour votre aide
Résolu ! Accéder à la solution.
le 03-23-2015 11:38 AM
Bonjour,
Peut-être en un utilisant la fonction "définir la position dans le fichier", puis "lire un fichier texte" ?
@+
le 03-24-2015 04:11 AM
Bonjour,
quel est le caractère de fin de ligne ?
@+
le 03-24-2015 04:31 AM
Bonjour,
Merci pour vos réponses.
Alors le problème avec "obtenir la postion" et "lire un fichier texte" c'est que les offsets sont en octet.
Sinon le caractère de fin de ligne est un retour à la ligne. Je suis justement en train d'essayer de faire un sous-VI qui compte les /n /r, en m'inspirant de ce qui est fait dans le VI express:"lire mesures", mais pour l'instant j'ai toujours ce problème de saturation de la mémoire...
le VI ci-joint
le 03-24-2015 05:06 AM
bonjour j'ai le sentiment qu'un fichier binaire conviendrait mieux, afin d'avoir une structure d'octets fixe par ligne et de pouvoir utiliser la capacité à récupérer facilement des données à n'importe quel endroit du fichier du fait que nous connaissons le nombre d'octets nécessaire à l'écriture d'une donnée. via " Définir la position" qui est en octet.
Toutes les autres méthodes (sur fichier ASCII) seront consommatrices de ressource.
Un autre fichier binaire est intéressant : le fichier journal, qui est un tableau de cluster (par exemple pour vous une ligne ou un ensemble fixe de ligne = un élément du journal).
Le grand avantage de cette méthode est qu’il est très simple d’accéder en lecture à la valeur d’un des éléments du tableau (index d'un des clusteur). Il suffit uniquement de spécifier son numéro à la fonction « Définir la position dans le fichier journal LabVIEW ». En effet cette fonction travaille sur des valeurs qui sont en nombre d’enregistrement, et pas en offset d’octets comme les fonctions binaires standards. Il est ainsi plus simple d’exploiter les essais réalisés.
Mais je ne sais pas si cela est possible pour vous.
A+
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group
le 03-24-2015 09:41 AM
Bonjour,
J'ai testé l'utilisation des journaux Labview et ça a solutionné mon problème.
Merci beaucoup !
le 03-24-2015 10:07 AM
super!!!
Pas souvent utilisé. pourtant le fichier journal est un tableau de cluster dans lequel « Définir la position dans le fichier journal LabVIEW » permet de récuperer facilement un numéro d'enregistrement. Il n'est pas géré en offset d’octets comme les fonctions binaires standards.
fichier journal sera dans le livre....
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group