JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Fichiers texte et chaînes de caractères Dim 10 Jan 2016 - 14:52 | |
| Quatre petites subs sans prétention (TouTanPanoramic ): 1) Lecture de l'intégralité d'un fichier texte dans le presse-papier, pour récupération dans une chaîne de caractères (pour faciliter les recherches, par exemple). 2) Écriture d'une chaîne de caractères dans un fichier texte. 3) Recherche d'une chaîne de caractères donnée dans un fichier texte, à partir d'une position donnée (avec rendu de la position trouvée, pour recherches successives). 4) Remplacement d'une chaîne par une autre dans tout un fichier texte, résultat dans le même fichier ou dans un nouveau fichier. (je ne vous fais pas l'injure de mettre des exemples d'utilisation, c'est trop simple !) - Code:
-
' ============================================================================== SUB File2Str(f$) ' Copier tout le fichier texte f$ dans le presse-papier DIM_LOCAL sz% MEMO 950: HIDE 950: WIDTH 950,800 FILEBIN_OPEN_READ 1,f$: sz%=FILEBIN_SIZE(1): FILEBIN_CLOSE 1 FILE_LOAD 950,f$: SELECT_TEXT 950,1,sz%: CLIPBOARD_COPY 950 DELETE 950 END_SUB ' ============================================================================== SUB Str2File(a$,f$) ' Ecrire la chaîne de caractères a$ dans le fichier texte f$ MEMO 950: HIDE 950: WIDTH 950,800 CLIPBOARD_STRING_COPY a$: CLIPBOARD_PASTE 950 FILE_SAVE 950,f$ DELETE 950 END_SUB ' ============================================================================== SUB FindStr(f$,a$,p%) ' Rechercher la chaîne de caractères a$ dans le fichier texte f$, à partir de p% DIM_LOCAL sz%,b$,k% MEMO 950: HIDE 950: WIDTH 950,800 FILEBIN_OPEN_READ 1,f$: sz%=FILEBIN_SIZE(1): FILEBIN_CLOSE 1 FILE_LOAD 950,f$: SELECT_TEXT 950,1,sz%: CLIPBOARD_COPY 950 DELETE 950 b$ = CLIPBOARD_STRING_PASTE$ k% = INSTR_POS(b$,a$,p%): CLIPBOARD_STRING_COPY STR$(k%) p% = k% END_SUB ' ============================================================================== SUB ReplaceStr(f$,a$,b$,fr$) ' Dans le fichier texte f$, remplacer toutes les occurences de a$ par b$, ' résultat dans le fichier texte fr$ (peut être égal à f$) ' Au retour, dans le presse-papier: nombre de remplacements effectués DIM_LOCAL sz%,ch$,p%,k%,ls%,nr% MEMO 950: HIDE 950: WIDTH 950,800 FILEBIN_OPEN_READ 1,f$: sz%=FILEBIN_SIZE(1): FILEBIN_CLOSE 1 FILE_LOAD 950,f$: SELECT_TEXT 950,1,sz%: CLIPBOARD_COPY 950 CLEAR 950 ch$ = CLIPBOARD_STRING_PASTE$: ls% = LEN(a$): p% = 1 k% = INSTR_POS(ch$,a$,p%) WHILE k%>0 ch$=LEFT$(ch$,k%-1)+b$+RIGHT_POS$(ch$,k%+ls%): p% = k%+ls%: nr% = nr%+1 k% = INSTR_POS(ch$,a$,p%) END_WHILE CLIPBOARD_STRING_COPY ch$: CLIPBOARD_PASTE 950 FILE_SAVE 950,fr$ DELETE 950 CLIPBOARD_STRING_COPY STR$(nr%) END_SUB ' ============================================================================== | |
|