Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.000 Datensätze verarbeitet werden!
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Willkommen im FlowHeater Support Forum!

Hier werden Fragen zum Umgang mit dem FlowHeater beantwortet.

THEMA: Doppelte Einträge in einer Zelle entfernen und sortieren.

Doppelte Einträge in einer Zelle entfernen und sortieren. 3 Jahre 10 Monate her #1195

  • Holger
  • Holgers Avatar
  • Offline
  • New Member
  • Beiträge: 3
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Doppelte Einträge in einer Zelle entfernen und sortieren. 3 Jahre 10 Monate her #1197

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
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.
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 Bespiel zur Anwendung.


Anhang Zeilenarray_sortieren_und_doppelte_filtern.zip nicht gefunden

Anhang:
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.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Doppelte Einträge in einer Zelle entfernen und sortieren. 3 Jahre 10 Monate her #1198

  • Holger
  • Holgers Avatar
  • Offline
  • New Member
  • Beiträge: 3
Hallo Herr Stark,

das funktioniert wunderbar - Sie haben es echt drauf!

Viele Grüße,

Holger
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.079 Sekunden