Pipes
-
Ich habe eine Tabellendatei, aus der ich alle Kombinationen von Spaltenmöglichkeiten auslesen möchte.
Ich mach besser ein Beispiel
Header: Winkel Frequenz Anmerkung Medium Resultat 30 300 # Glas 27 ...
Da mehrere Versuche öfter ausgeführt worden sind, möchte ich nun zB alle Versuchsparameter wissen, die es gab.
Als Ergebnis also etwas wie
Header: Winkel Frequenz Medium 30 300 Glas ...
Hier stehen alle vorgekommenen Möglichkeiten der Spalten, welche ich näher spezifiere, zB hier : (Winkel, Frequenz,Medium)
Da solche Ergebnisse sehr groß werden können (mehrere Millionen Einträge in der Datei), ist mein bisheriger Ansatz vielleicht eher suboptimal.
Lege Liste an Lese Datei Zeile für Zeile durch: für jede Zeile: wähle die Spalten aus, welche gewünscht sind ist die Kombination schon in der Liste, mache weiter, ansonsten: Trage Kombination in Liste ein
Ziel ist es die verschiedenen Versuchbedingungen zu trennen, da viele nicht miteinander vergleichbar sind. Hier lege ich aber eventuell riesige Listen von tupeln im Hauptspeicher ab. Da dieser beschränkt ist, sollte das so wenig wie möglich passieren.
Wie kann ich nun erreichen, möglichst wenig Speicher zu verbrauchen, aber dennoch halbwegs "schön" an mein Ziel zu kommen=?
-
pfeife schrieb:
Da solche Ergebnisse sehr groß werden können (mehrere Millionen Einträge in der Datei), ist mein bisheriger Ansatz vielleicht eher suboptimal.
Klingt nach einem Fall von verfrühter Optimierung, wenn du nicht gerade einen 486er als Zielplattform hast. Nutze deine Hardwareresourcen. Wenn's ein paar Milliarden Einträge sind, würde ich anfangen, mir Sorgen zu machen.
-
Oder Du sortierst die Master-Datei über Nacht. Dann kannste so viele Attribute ausblenden, wie Du willst, die Liste bleibt sortiert und das Entfernen von Duplikaten geht supi, weil sie benachbart sind.