Avatar billede scharff Juniormester
11. december 2024 - 08:52 Der er 10 kommentarer

Dos program til at rette i .txt filer

Hej
Jeg har en 4040.txt fil, som jeg gerne ville have et lille dos script til...
der står i tekst filen (der kan godt være 50 linjer i filen)
EKS.
G700M700T238A0.B0.C18.D5.E10.F0.1H15.I15.J10.K5.X100.Q100.R10.S10.U50.V1.W10Z100.
men der skal rettes automatisk alle linjer i tekst filen, så at der efter  .F altid bliver rettet til
F0.0H200.I20.J200.K20.X200.Q200.R20.S20.U200.V10.W200Z20.

EKS.
G700M700T238A0.B0.C18.D5.E10.F0.0H200.I20.J200.K20.X200.Q200.R20.S20.U200.V10.W200Z20.
der må godt laves et nyt .txt 4040_ny.txt hvis med de nye værdier.
ved ikke om det kan lade sig gøre eller der allerede er et program der kan :-)

Peter
Avatar billede kulawig Guru
11. december 2024 - 09:26 #1
så du vil have slettet alt før .F ?
Avatar billede kulawig Guru
11. december 2024 - 09:48 #2
det er meget let i Excel

importer din txt fil så dine linjer står i A1,A2 osv

og indsæt
=HØJRE(A1; LÆNGDE(A1) - FIND(".F"; A1) + 1)
i B1

kopier den rensede tekst og indsæt i en ny textfil
Avatar billede scharff Juniormester
11. december 2024 - 10:04 #3
Nej alt det der står før .F skal blive som det er, jeg har prøvet at åbne med exel med der kommer det hele i A1 ?
Avatar billede kulawig Guru
11. december 2024 - 10:31 #4
:-o

ok så du vil erstatte al tekst efter .F så det bliver ens i alle linjer ?
Avatar billede scharff Juniormester
11. december 2024 - 10:40 #5
Ja :-)
Avatar billede kulawig Guru
11. december 2024 - 11:02 #6
OK

Lav et bibliotek indeholdende din fil (4040.txt)
lav en bat fil i samme bibliotek med følgende:



@echo off
setlocal enabledelayedexpansion

:: Angiv input- og outputfil
set "input_file=4040.txt"
set "output_file=erstat_efter_.F.txt"

:: Slet outputfilen, hvis den allerede findes
if exist "%output_file%" del "%output_file%"

:: Læs inputfilen linje for linje
for /f "usebackq delims=" %%A in ("%input_file%") do (
    set "line=%%A"

    :: Find positionen af ".F"
    for /f "tokens=1 delims=.F" %%B in ("!line!") do (
        set "trimmed_line=%%B"
    )

    :: Sæt den nye tekst på
    set "line_modified=!trimmed_line!.F0.0H200.I20.J200.K20.X200.Q200.R20.S20.U200.V10.W200Z20"

    :: Gem resultatet i outputfilen
    echo !line_modified! >> "%output_file%"
)

echo Erstatning færdig. Tjek filen "%output_file%" for resultatet.
endlocal



mvh
michael
Avatar billede scharff Juniormester
11. december 2024 - 15:53 #7
Tak, jeg prøver lige i morgen :-)
Avatar billede scharff Juniormester
12. december 2024 - 07:05 #8
Hej
det virker næsten men den sletter B, C, D, E, værdier de skal også stadig være der, der er kun A0.
kunne den lade være med at ændre linjer der starter med %, M99, O

Peter
Avatar billede kulawig Guru
12. december 2024 - 10:13 #9
:-o

prøv

@echo off
setlocal enabledelayedexpansion

:: Angiv input- og outputfil
set "input_file=4040.txt"
set "output_file=erstattet_før_.F.txt"

:: Slet outputfilen, hvis den allerede findes
if exist "%output_file%" del "%output_file%"

:: Læs inputfilen linje for linje
for /f "usebackq delims=" %%A in ("%input_file%") do (
    set "line=%%A"

    :: Spring linjer over, der starter med %, M99 eller O
    if "!line!"=="%*" goto skip_line
    if "!line:~0,3!"=="M99" goto skip_line
    if "!line:~0,1!"=="O" goto skip_line

    :: Find alt før .F
    for /f "tokens=1 delims=.F" %%B in ("!line!") do (
        set "before_f=%%B"
    )

    :: Tilføj ny tekst efter .F
    set "line_modified=!before_f!F0.0H200.I20.J200.K20.X200.Q200.R20.S20.U200.V10.W200Z20"

    :: Gem resultatet i outputfilen
    echo !line_modified! >> "%output_file%"
    goto end_of_line

    :skip_line
    echo Springer linje over: %%A

    :end_of_line
)

echo Erstatning færdig. Tjek filen "%output_file%" for resultatet.
endlocal


mvh
mchael
Avatar billede scharff Juniormester
12. december 2024 - 10:45 #10
Den virker ikke ?

mvh
Peter
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester