VBscript Zeilen verbinden und rechnen
Hallo liebe Mitglieder,
Ich habe ein kleines Problem.
Ich würde gerne die Zeilen mit den Namen "Werte" mit den Zeilen mit darunter verbinden.
Und dann bei werte an dritter Stelle nach Komma Trennung den wert von Offset/werte abziehen. -> -3.66976-0.30079=-3.97055
Hoffe ihr könnt mir helfen.
Vielen Dank
Original:
Daten,2,12,2322
Daten,1,11,2
Daten,13,6,2
Werte,12.56778,0.45333,-3.66976
Werte,-12.56778,0.45333,-3.66976
Werte,11.56778,0.35333,-3.66976
Werte,13.56778,0.55333,-3.66976
Werte,9.56778,0.77333,-3.66976
Werte,7.56778,0.45285,-3.66976
,0.33334,0.30000,-0.96666
,0.23334,0.40000,-0.96666
,0.13334,0.20000,-0.96666
,0.03334,-0.10000,-0.96666
,0.43334,0.00000,-0.96666
,0.93334,0.00000,-0.96666
offset/werte,0,0.30079
Geändert sollte so aussehen:
Daten,2,12,2322
Daten,1,11,2
Daten,13,6,2
Werte,12.56778,0.45333,-3.97055,0.33334,0.30000,-0.96666
Werte,-12.56778,0.45333,-3.97055,0.33334,0.30000,-0.96666
Werte,11.56778,0.35333,-3.97055,0.13334,0.20000,-0.96666
Werte,13.56778,0.55333,-3.97055,0.03334,-0.10000,-0.96666
Werte,9.56778,0.77333,-3.97055,0.43334,0.00000,-0.96666
Werte,7.56778,0.45285,-3.97055,0.93334,0.00000,-0.96666
offset/werte,0,0.30079
Ich habe ein kleines Problem.
Ich würde gerne die Zeilen mit den Namen "Werte" mit den Zeilen mit darunter verbinden.
Und dann bei werte an dritter Stelle nach Komma Trennung den wert von Offset/werte abziehen. -> -3.66976-0.30079=-3.97055
Hoffe ihr könnt mir helfen.
Vielen Dank
Original:
Daten,2,12,2322
Daten,1,11,2
Daten,13,6,2
Werte,12.56778,0.45333,-3.66976
Werte,-12.56778,0.45333,-3.66976
Werte,11.56778,0.35333,-3.66976
Werte,13.56778,0.55333,-3.66976
Werte,9.56778,0.77333,-3.66976
Werte,7.56778,0.45285,-3.66976
,0.33334,0.30000,-0.96666
,0.23334,0.40000,-0.96666
,0.13334,0.20000,-0.96666
,0.03334,-0.10000,-0.96666
,0.43334,0.00000,-0.96666
,0.93334,0.00000,-0.96666
offset/werte,0,0.30079
Geändert sollte so aussehen:
Daten,2,12,2322
Daten,1,11,2
Daten,13,6,2
Werte,12.56778,0.45333,-3.97055,0.33334,0.30000,-0.96666
Werte,-12.56778,0.45333,-3.97055,0.33334,0.30000,-0.96666
Werte,11.56778,0.35333,-3.97055,0.13334,0.20000,-0.96666
Werte,13.56778,0.55333,-3.97055,0.03334,-0.10000,-0.96666
Werte,9.56778,0.77333,-3.97055,0.43334,0.00000,-0.96666
Werte,7.56778,0.45285,-3.97055,0.93334,0.00000,-0.96666
offset/werte,0,0.30079
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 354239
Url: https://administrator.de/forum/vbscript-zeilen-verbinden-und-rechnen-354239.html
Ausgedruckt am: 22.04.2025 um 03:04 Uhr
7 Kommentare
Neuester Kommentar

Ich würde gerne die Zeilen mit den Namen "Werte" mit den Zeilen mit darunter verbinden.
Zeilen oder Zellen? Textdatei oder Exceldatei?Wenn Textdatei mit Powershell z.B. so
$datei = 'C:\messwerte.txt'
$txt = gc $datei
$offset = $txt | ?{$_ -match '^offset/werte,0,([\d\.-]+)'} | %{[double]$matches[1]}
$numbers = $txt | ?{$_ -match '^,'}
$cnt = 0
$txt | %{
if($_ -match '(Werte,[\d\.-]+,[\d\.-]+,)([\d\.-]+)'){
$matches[1] + ([double]$matches[2] - $offset) + $numbers[$cnt]
$cnt++
}elseif ($_ -notmatch '^,'){
$_
}
} | sc $datei
Ich habe ein kleines Problem.
Wer hat das nich 
Schnell ne Schleife drum ...
Bidde.
$ordner = 'C:\ordner'
gci $ordner -Filter *.txt |%{
$txt = gc $_.Fullname
$offset = $txt | ?{$_ -match '^offset/werte,0,([\d\.-]+)'} | select -first 1 | %{[double]$matches[1]}
$numbers = $txt | ?{$_ -match '^,'}
$cnt = 0
$txt | %{
if($_ -match '(Werte,[\d\.-]+,[\d\.-]+,)([\d\.-]+)'){
$matches[1] + ([double]$matches[2] - $offset) + $numbers[$cnt]
$cnt++
}elseif ($_ -notmatch '^,|^daten|^offset'){$_}
} | sc $_.Fullname
}

Im letzten Post angepasst.

Das nächste mal bitte gleich alles auf einmal.
Wenn's dann noch für ein gelöst reicht ... Danke!
$ordner = 'C:\ordner'
gci $ordner -Filter *.txt |%{
$txt = gc $_.Fullname
$offset = $txt | ?{$_ -match '^offset/werte,0,([\d\.-]+)'} | select -first 1 | %{[double]$matches[1]}
$numbers = $txt | ?{$_ -match '^,([\d\.-]+),([\d\.-]+),([\d\.-]+)'} | %{
",$([double]$matches[1] * -1),$([double]$matches[2] * -1),$([double]$matches[3] * -1)"
}
$cnt = 0
$txt | %{
if($_ -match '(Werte,[\d\.-]+,[\d\.-]+,)([\d\.-]+)'){
$matches[1] + ([double]$matches[2] - $offset) + $numbers[$cnt]
$cnt++
}elseif ($_ -notmatch '^,|^daten|^offset'){$_}
} | sc $_.Fullname
}
Wenn's dann noch für ein gelöst reicht ... Danke!