Comment lire un fichier texte ligne par ligne.Il est possible de lire dans un script JSL ligne par ligne (en fait JMP fait une liste avec chaque ligne comme élément de liste) en utilisant le code ci-dessous.
monFichier= open("$PATH\testScript.jsl");
mesCfLignes = monFichier[scriptBox(1)] << getLines();
Cependant, lorsque j'essaie de le faire avec un fichier texte qui a une extension '*.txt', JMP l'ouvre automatiquement en tant que table de données et je ne peux donc pas utiliser cette méthode pour obtenir les lignes (car ce n'est pas une boîte de script !)
Existe-t-il une autre méthode ? Je ne veux pas utiliser la fonction loadTextFile() car cela gratte le fichier whold dans une chaîne. Idéalement, j'aimerais ouvrir le fichier, lire chaque ligne une à la fois et faire une expression rationnelle pour extraire les données dont j'ai besoin !
Re : Comment lire un fichier texte ligne par ligne.JMP ne diffuse pas sur le fichier texte. Vous devrez utiliser la solution pour charger l'intégralité du fichier, puis séparer les lignes. Vous pouvez parcourir les éléments de la liste (lignes individuelles) pour déterminer s'ils répondent à votre critère.
Vous pouvez également importer le fichier texte dans un classeur Excel, puis utiliser Fichier > Base de données > Ouvrir une table ou Fichier > Base de données > Générateur de requêtes pour définir la clause WHERE afin de sélectionner les lignes que vous souhaitez extraire.
Re : Comment lire un fichier texte ligne par ligne.J'ai un énorme fichier texte mais je ne veux lire et charger que quelques lignes. En gros, je veux charger toutes les lignes commençant par A_ ou B_ ou C_ ou D_. Si la condition peut fonctionner?
Re : Comment lire un fichier texte ligne par ligne.Je dois donner la récompense à Jeff sur celui-ci malgré ma réticence initiale sur la fonction loadTextFile. Les trois méthodes fonctionnent, j'ai donc effectué une comparaison temporelle rapide à l'aide d'un fichier texte 250M, 5M Line de l'un de nos testeurs. Incidemment, mon cas d'utilisation est que j'ai besoin de passer au crible ces énormes fichiers journaux, ligne par ligne, et de filtrer certains résultats en fonction d'un tableau d'expressions régulières.
Je suppose que ce n'est pas juste car j'ai dit que je voulais éviter loadTextFile 
***Ian ***
myNumSeconds = 66 ;
N éléments (myCfLines) = 5059756 ;
*** Jeff ***
myNumSeconds = 7;
N Articles(mesLignes) = 5059755 ;
*** Craig ***
myNumSeconds = 67 ;
N éléments (myCfLines) = 5059756 ;
Re : Comment lire un fichier texte ligne par ligne.Il existe une option "script" que vous pouvez donner à open pour que cela fonctionne :
open("$sample_data/../Import Data/bigclass.txt","script")
Maintenant, au lieu de s'ouvrir en tant que "texte" (ce à quoi l'extension .txt est par défaut) et de créer une table de données, elle s'ouvrira dans une fenêtre de script. Oui, l'option "texte" a été nommée bizarrement, mais elle fait référence au texte CSV.
Re : Comment lire un fichier texte ligne par ligne.JSL ne dispose pas actuellement d'outils pour ouvrir un fichier et le lire une ligne à la fois.
Cependant, si vous utilisez Charger le fichier texte() alors vous pouvez utiliser le Mots() fonction pour entrer les lignes individuelles dans une liste.
bctxt=load text file ("$SAMPLE_IMPORT_DATA\Bigclass.txt");
lines=words(bctxt,"\!n");
Re : Comment lire un fichier texte ligne par ligne.Comme vous le voyez, JMP utilise les extensions de fichier pour essayer de faire une chose appropriée.
Je ne suis pas sûr de bien comprendre votre cas d'utilisation, mais si une extension '.jsl' donne le comportement que vous souhaitez, vous pouvez envisager d'utiliser 'RenameFile()' :
renameFile("$DESKTOP/Test.txt", "Test.jsl");
myFile = open("$DESKTOP/Test.jsl");
myCfLines = myFile[scriptBox(1)] << getLines();
renameFile("$DESKTOP/Test.jsl", "Test.txt");