piwi17
Goto Top

Bestimmten Bereich aus einer .TXT einlesen bzw. ausgeben

Wer kann mir helfen?

Ich habe folgenden Code:

@echo off & setlocal enabledelayedexpansion

set "InFile1=Punktnummern-Liste.txt"
set "InFile2=Koordinaten-Liste.txt"
set "OutFile=out.txt"

( for /f "tokens=1* delims=:" %%a in ('findstr /n "^" "%InFile1%"') do (
set /p "Line="
>> "%OutFile%" echo\%%b!Line!
)
) < "%InFile2%"
endlocal

Läuft soweit gut. Allerdings werden hierbei die kompletten Zeilen zusammengefügt. Meine Textstellen die ich einlesen möchte befinden sich nicht am Zeilenanfang, sondern ich möchte ab einer bestimmten Spaltenposition eine bestimmte Länge einlesen. Davor und dahinter steht noch Text den ich nicht brauche.

Probiert habe ich es mit ~x,y aber scheinbar funktioniert der Zusatz nicht in Schleifen

Inhalt Punktnummern-Liste.txt:
Auswertung_31485.txt:Punktnummer 323625713000401: 2 Sessions
Auswertung_31485.txt:Punktnummer 323635712000021: 2 Sessions
Auswertung_31485.txt:Punktnummer 323635713000400: 2 Sessions
Auswertung_31485.txt:Punktnummer 323645713000405: 2 Sessions

Inhalt Koordinaten-Liste.txt:
Auswertung_31485.txt:Mittelwert [m]: 32362778.623 5713376.774 86.501
Auswertung_31485.txt:Mittelwert [m]: 32363559.585 5712441.497 88.638
Auswertung_31485.txt:Mittelwert [m]: 32363385.440 5713318.306 98.788
Auswertung_31485.txt:Mittelwert [m]: 32364651.150 5713414.628 82.698

Aussehen soll es so:
323625713000401;32362778.623;5713376.774;86.501

Content-ID: 6259562186

Url: https://administrator.de/forum/bestimmten-bereich-aus-einer-txt-einlesen-bzw-ausgeben-6259562186.html

Ausgedruckt am: 04.04.2025 um 06:04 Uhr

TK1987
Lösung TK1987 07.03.2023 um 16:31:20 Uhr
Goto Top
Moin,

@echo off
SetLocal EnableDelayedExpansion

set "InFile1=Punktnummern-Liste.txt"  
set "InFile2=Koordinaten-Liste.txt"  
set "OutFile=out.txt"  

<"%InFile2%" >"%OutFile%" (  
  For /F "Tokens=3 UseBackQ Delims=: " %%A in ("%InFile1%") do (  
    set /p "line="  
    For /F "Tokens=3-5" %%B in ("!line!") do echo %%A;%%B;%%C;%%D  
  )
)

Gruß Thomas
Piwi17
Lösung Piwi17 08.03.2023 um 09:44:50 Uhr
Goto Top
Vielen Dank. Das Problem mit Hilfe des Token Befehls zu lösen hatte ich nicht auf dem Schirm.
TK1987
Lösung TK1987 08.03.2023 aktualisiert um 10:00:46 Uhr
Goto Top
Zitat von @Piwi17:
Vielen Dank.
Gerne

Probiert habe ich es mit ~x,y aber scheinbar funktioniert der Zusatz nicht in Schleifen
grundsätzlich funktioniert das auch in Schleifen (man muss diese jedoch in eine andere Variable zwischenlagern)

Das Problem mit Hilfe des Token Befehls zu lösen hatte ich nicht auf dem Schirm.
Das ist auf jeden Fall die bessere Lösung.

Du hast hier jetzt komplette ETRS-Koordinaten. Was aber, wenn du...
  • beim nächsten mal, wie oft üblich, gekürzte Rechtswerte erhälst?
  • alte Gauß-Krüger Koordinaten erhälst, welche auch noch entweder vollständig, oder aber gekürzt sein können?
  • ein örtliches System hast, wo die Anzahl der Stellen von vorneherein gar nicht klar ist?
In all diesen Fällen würde das mit ~x,y nicht mehr funktionieren - über die Tokens hingegen funktioniert das weiterhin, solange das grundsätzliche format gleich bleibt.

Gruß Thomas
Piwi17
Lösung Piwi17 08.03.2023 um 10:11:25 Uhr
Goto Top
Sehr gut, jemand vom Fach. Da hast du Recht, die Trennung über Leerzeichen und Doppelpunkt ist auf jeden Fall die bessere Lösung.

Gruß Stefan