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
Please also mark the comments that contributed to the solution of the article
Content-Key: 354239
Url: https://administrator.de/contentid/354239
Printed on: April 24, 2024 at 19:04 o'clock
7 Comments
Latest comment
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!