Délimiter ou filtrer ou..

Bonjour,
j'ai un fichier txt (recievers et sources pour le contrôle des donnes sismique)
le fichier contient xxx lignes commence par G1 et yyy lignes commence par G2 et .........zzz lignes commence par G300.alors je veux faire 300 fichier G1,G2,G3,G4,G5,...G300
Merci beaucoup

3 réponses

  1. Bonjour,

    1) Pour commencer télécharge Wfile 1.5 ici :
    https://www.horstmuc.de/w32dial.htm#wfile

    Décompresse l'archive téléchargée, puis copie FileToOpen.exe et FileToSave.exe dans le dossier C:\Windows\System32

    2) Ensuite tu peux utiliser ce script fabriqué spécialement pour toi :
    @echo off
    Setlocal enableextensions enabledelayedexpansion

    if not exist %windir%\System32\FileToOpen.exe goto :eof

    timeout /t 3 /nobreak

    FileToOpen "set data=" "%USERPROFILE%\Desktop\*.txt" "Selectionnez le fichier texte a traiter" > temp0123456.bat
    call temp0123456.bat

    set destination=%USERPROFILE%\Desktop\OTMANE_CCM

    if exist %destination% rmdir /S /Q %destination%
    mkdir %destination%\OTMANE

    for /f "usebackq tokens=* delims=ù" %%A in (%data%) do (
    set ligne=%%A
    set entete=G

    for /L %%E in (1,1,3) do (
    set chiffre=!ligne:~%%E,1!

    if "!chiffre!"=="0" (set entete=!entete!!chiffre!)
    if "!chiffre!"=="1" (set entete=!entete!!chiffre!)
    if "!chiffre!"=="2" (set entete=!entete!!chiffre!)
    if "!chiffre!"=="3" (set entete=!entete!!chiffre!)
    if "!chiffre!"=="4" (set entete=!entete!!chiffre!)
    if "!chiffre!"=="5" (set entete=!entete!!chiffre!)
    if "!chiffre!"=="6" (set entete=!entete!!chiffre!)
    if "!chiffre!"=="7" (set entete=!entete!!chiffre!)
    if "!chiffre!"=="8" (set entete=!entete!!chiffre!)
    if "!chiffre!"=="9" (set entete=!entete!!chiffre!)
    )

    set entete=%destination%\!entete!.txt
    if not exist !entete! (echo !ligne! > !entete!) else (echo !ligne! >> !entete!)
    )

    del /F temp0123456.bat

    explorer /select,"%destination%\OTMANE"

    Endlocal
    exit
    1. Contributeur
      hello
      peut-on voir un exemple de ligne ?
      y a-t-il un caractère particulier après le nombre qui puisse servir de séparateur ?
      1. Voilà une légère amélioration du script :

        @echo off
        Setlocal enableextensions enabledelayedexpansion

        if not exist %windir%\System32\FileToOpen.exe goto :eof

        timeout /t 3 /nobreak

        FileToOpen "set data=" "%USERPROFILE%\Desktop\*.txt" "Selectionnez le fichier texte a traiter" > temp.bat
        call temp.bat

        if not defined %data% goto :eof

        set destination=%USERPROFILE%\Desktop\OTMANE_CCM

        if exist %destination% (rmdir /S /Q %destination%)
        mkdir %destination%\OTMANE

        for /f "usebackq tokens=* delims=ù" %%A in (%data%) do (
        set ligne=%%A
        if "!ligne:~0,1!"=="G" call :action
        )

        del /F temp.bat

        explorer /select,"%destination%\OTMANE"

        Endlocal
        exit

        :action
        set entete=G

        for /L %%E in (1,1,3) do (
        set chiffre=!ligne:~%%E,1!
        echo !chiffre! | findstr "0 1 2 3 4 5 6 7 8 9" > nul && (set entete=!entete!!chiffre!)
        )

        set entete=%destination%\!entete!.txt
        if not exist !entete! (echo !ligne! > !entete!) else (echo !ligne! >> !entete!)

        goto :eof
        rem