FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» ajouter des blancs dans un TXT
par lepetitmarocain Hier à 13:00

» Planétarium virtuel.
par Oscaribout Mar 14 Aoû 2018 - 19:45

» 11 (en analyse): commandes sur TAB et SUB_MENU.
par Jack Mar 14 Aoû 2018 - 14:10

» 10 (en analyse): Erreur sur variable locale.
par Jack Mar 14 Aoû 2018 - 14:05

» Métamatière, éternité et renouvellement
par Oscaribout Mar 14 Aoû 2018 - 12:40

» De retour...
par Yannick Lun 13 Aoû 2018 - 15:11

» bug SEVERE fnc+sub : (35)name already defined
par Oscaribout Dim 12 Aoû 2018 - 23:55

» Encadrement
par Jean Claude Dim 12 Aoû 2018 - 11:53

» Des rectangles...
par JL35 Dim 12 Aoû 2018 - 10:53

» TRIGGER_KEY_COMBINED_TOUCH
par Jean Claude Mar 7 Aoû 2018 - 20:58

» ITEM_SELECT N,L pour synedit
par Jean Claude Mar 7 Aoû 2018 - 19:11

» amélioration panoramic
par silverman Dim 5 Aoû 2018 - 18:34

» Commande file_readln.
par Pedro Alvarez Dim 5 Aoû 2018 - 17:08

» Klaus ?
par Jack Sam 4 Aoû 2018 - 22:48

» Défragmentation du disque dur
par JL35 Sam 4 Aoû 2018 - 21:06

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2018
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier

Partagez | 
 

 Recherches dans un fichier texte

Aller en bas 
AuteurMessage
JL35



Nombre de messages : 6311
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Recherches dans un fichier texte   Dim 20 Mai 2018 - 9:38

Il est beaucoup plus facile de lire le fichier entier dans une variable unique, et de faire dans cette variable les recherches, remplacements, suppressions, insertions, etc. avec les fonctions de traitement de chaînes.
C'est vraiment simple et rapide, grâce à la commande 'type':
Code:
FileToString("C:\TEXTES\Lorem.txt"): ' un fichier quelconque
message str$(len(buf$)): ' pour voir
END
' -----
SUB FileToString(f$)
  ' Copie d'un fichier de type texte f$ dans une chaîne buf$
  IF VARIABLE("buf$") = 0 THEN DIM buf$
  EXECUTE_WAIT "cmd.exe /c type "+CHR$(34)+f$+CHR$(34)+" | clip"
  buf$ = CLIPBOARD_STRING_PASTE$
END_SUB

On peut ensuite réécrire éventuellement la chaîne modifiée dans un fichier texte résultat, en une seule fois (File_Writeln'. (noter que l'écriture ajoute un retour chariot interligne à la fin)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 664
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Recherches dans un fichier texte   Dim 20 Mai 2018 - 10:21

Je confirme puisque c'est ainsi que je procède Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Oscaribout



Nombre de messages : 189
Date d'inscription : 29/12/2016

MessageSujet: Re: Recherches dans un fichier texte   Dim 20 Mai 2018 - 15:50

Juste une remarque.

Si on veut lire le contenu entier d'un memo:

Code:
FileToString("C:\TEXTES\Lorem.txt"): ' un fichier quelconque
message str$(len(buf$)): ' pour voir
' autre posssibilité:
memo 10 : full_space 10:file_load 10,"z:\prg_teste_debog.txt"
message str$(len(text$(10)))
END
' -----
SUB FileToString(f$)
   ' Copie d'un fichier de type texte f$ dans une chaîne buf$
   IF VARIABLE("buf$") = 0 THEN DIM buf$
   EXECUTE_WAIT "cmd.exe /c type "+CHR$(34)+f$+CHR$(34)+" | clip"
   buf$ = CLIPBOARD_STRING_PASTE$
END_SUB

La fonction TEXT$() est une fonction pour EDIT, mais elle fonctionne aussi pour un memo, même si cela devrait provoquer une erreur.

Text$(10) (ici) prend le contenu entier d'un memo.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 6311
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Recherches dans un fichier texte   Dim 20 Mai 2018 - 20:18

Exact Oscaribout, ça donne exactement le même résultat d'une façon encore plus simple, et il me semble, plus rapide !

On peut juste éventuellement ajouter un HIDE 10 derrière le MEMO 10, pour que ce soit plus discret.

Et finalement j'adopte ta solution qui est meilleure que la mienne et plus discrète (pas d'affichage, même si c'est bref, de fenêtre noire)
Code:
DIM f$: f$ = "C:\TEXTES\Lorem.txt"
FileToString_ex(f$): ' un fichier quelconque
message "Ancien_ "+str$(len(buf$)): ' pour voir
buf$ = ""
' autre posssibilité:
FileToString(f$)
message "Nouveau_ "+str$(len(buf$))
END
' -----
SUB FileToString_ex(f$)
   ' Copie d'un fichier de type texte f$ dans une chaîne buf$
   IF VARIABLE("buf$") = 0 THEN DIM buf$
   EXECUTE_WAIT "cmd.exe /c type "+CHR$(34)+f$+CHR$(34)+" | clip"
   buf$ = CLIPBOARD_STRING_PASTE$
END_SUB
' Nouvelle formule :
SUB FileToString(f$)
   ' Copie d'un fichier de type texte f$ dans une chaîne buf$
   ' (Merci Oscaribout !)
   IF VARIABLE("buf$") = 0 THEN DIM buf$
   MEMO 9000: HIDE 9000: WIDTH 9000,2000: FILE_LOAD 9000,f$
   buf$ = TEXT$(9000): DELETE 9000
END_SUB
C'est vrai que le TEXT$(N) n'est pas prévu pour un MEMO, mais si ça marche, autant en profiter.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Recherches dans un fichier texte   

Revenir en haut Aller en bas
 
Recherches dans un fichier texte
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Mise en forme de fichier source Panoramic (nième version)
» Comment voir ce qu'il y a dans un fichier GPI
» Déplacer fichiers carto dans 2340LMT (résolu)
» Camoufler un fichier texte dans une image
» POI avec ou sans "Guillemets"

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: