Hallo StackExchange-Community!Gleitkommazahlen im Stapel sortieren
Ich versuche, das Problem des Sortierens Gleitkommawerte mit Charge zu lösen.
Auf den Punkt. Ich habe eine Protokolldatei (input.txt) in der folgenden Form:
889.W_1.153,46
889.W_1.37,43
889.W_1.28,81
889.W_1.34,70
155.W_2.22,67
155.W_2.108,06
155.W_2.22,11
155 W_2 22,65
Ich möchte dies sortieren von 1. und 3. Spalte. Ich möchte Ausgang (output.txt) in dieser Form:
155.W_2.22,11
155.W_2.22,65
155.W_2.22,67
155.W_2.108,06
889.W_1.28,81
889.W_1.34,70
889.W_1.37,43
889.W_1.153,46
ich ein kleines Skript geschrieben und es funktioniert fast gut, weil mein Ergebnis ist:
155 108,06 W_2
155 22,11 W_2
155 22,65 W_2
155 22,67 W_2
889 153,46 W_1
889 28,81 W_1
889 34,70 W_1
889 37,43 W_1
Punkte und Spaltenreihenfolge sind nicht so wichtig, tatsächliches Problem ist mit Zahlen länger als 2 Ziffern. Ein Komma wird als "höher" als die Zahl behandelt. Unten ist das Skript:
@echo off
setlocal enabledelayedexpansion
for /F "tokens=1-3 delims=." %%a in (INPUT.txt) do set "a[%%a %%c ]=%%b"
for /F "tokens=2-4 delims=[.]=" %%a in ('set a[') do echo %%a%%c%%b>> OUTPUT.txt
korrekte Sortierung ist nicht alles was ich brauche. Ich hätte auch die Möglichkeit (später im Skript), eine ganze Zeile zu löschen, in der die Nummer länger als 2 Ziffern ist, in diesem Fall wird es Zeile mit 153,49
und 108,06
sein. Jede Hilfe wäre sehr wertvoll für mich.
In der letzten Zeile Ihres 'INPUT.txt' Datensamples gibt es keine Punkte' .' ('155 W_2 22,65'); Ich nehme an, das ist ein Tippfehler, oder? – aschipfl