FlowHeater Demo Video
 
FlowHeater - The Data Import / Export Specialist
 
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Schauen Sie sich auch die verfügbaren allgemeinen Beispiele an evtl. kann Ihre Frage hiermit schon beantwortet werden: Hello World 1 / 2 / 3 , Zahlen in Zeichenketten formatieren , Einfache Wenn-Dann-Sonst Bedingung , Komplexe If-Then-ElseIf ... Bedingung , Daten filtern und gruppieren , Daten gruppieren und Werte über die Gruppierung summieren
  • Seite:
  • 1

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

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

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.

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

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Beiträge: 1429
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 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.
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

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.

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

Hallo Herr Stark,

das funktioniert wunderbar - Sie haben es echt drauf!

Viele Grüße,

Holger

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

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

Follow us on

twitter  facebook

YouTube

 de en