Zum Hauptinhalt springen
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Flowheater Chart

Doppelte Einträge in einer Zelle entfernen und sortieren.

Mehr
11 Jahre 10 Monate her #1195 von Holger
Hallo,

liebes FlowHeater Team, erstmal ein ganz großes Kompliment zu diesem genialen Werkzeug. Es hat meine tägliche Arbeit extrem entlastet und wurde von mir auch schon oft an Freunde weiterempfohlen. Es macht mir immer wieder große Freude mit dem FlowHeater zu arbeiten.

Jetzt stehe ich aber vor einem kleinen Problem.

In einer Zelle habe ich z. Bsp. folgenden Inhalt:

10|11|7|124|40|11|34|11|34|36|11|34|40|10|34|10|34|36|10|34|40|

Wie kann ich mit dem FlowHeater (.NET, C# oder VB) Heater diese Reihe sortieren und zugleich die doppelten Zahlenwerte entfernen?

Die fertige Zelle sollte dann so ausschauen (ohne Pipes vorne und hinten):

7|10|11|34|36|40|124

Ich bin schon ganz gespannt ;-)

Viele Grüße,

Holger

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
11 Jahre 10 Monate her #1197 von FlowHeater-Team
Hallo Herr Esser,

vielen Dank für das Lob und die Empfehlungen, wird immer wieder gerne angenomen :)

Mit folgenden C# Skript für den .NET Script Heater können Sie das umsetzen.
Code:
public object DoWork() { if (InValues.Length != 1) throw new Exception("1 Eingangsparameter erwartet!"); char [] c = {'|'}; // Feldtrennzeichen ggf. hier anpassen string sIn = (string)InValues[0].GetString(); string [] a = sIn.Split(c); // Vorbereitung fürs sortieren object[] aI = new object[a.Length]; for (int i = 0; i < a.Length; i++) { if (a[i] != null && a[i].Length > 0) aI[i] = Convert.ToInt32(a[i]); else aI[i] = null; } // Sortieren anhand der Zahlenwerte! Array.Sort(aI); string ret = String.Empty; // dopplete Einträge filtern object oLast = null; for (int i = 0; i < aI.Length; i++) { if (aI[i] == null) continue; // wenn gleicher Wert wie der vorherige dann überspringen if (oLast != null && Convert.ToInt32(oLast) == Convert.ToInt32(aI[i])) continue; if (ret.Length != 0) ret += c[0]; // Trennzeichen hinzufügen int iTemp = (int)aI[i]; ret += iTemp.ToString("0"); // letzten Wert merken oLast = aI[i]; } return ret; }

Im Anhang finden Sie ein kleines Beispiel zur Anwendung.


Anhang Zeilenarray_sortieren_und_doppelte_filtern.zip wurde nicht gefunden.


gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
11 Jahre 10 Monate her #1198 von Holger
Hallo Herr Stark,

das funktioniert wunderbar - Sie haben es echt drauf!

Viele Grüße,

Holger

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.264 Sekunden
FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.