0

Wie kann die Werte mit einem @ aus einem Array herausfiltern?

Hallo liebes Forum,

 

gleich noch eine zweite Frage. Z.B. wenn die Werte des Array wie folgt lauten:

    Jim Schmidt,<jimschmidt@abc.de>,<123@123.com>,Ulli Lustig,<ulli.lustig@super.com>

 

Herzlichen Dank für Eure Unterstützung

Björn

8 Antworten

null
    • Michi.1
    • vor 5 Monaten
    • Gemeldet - anzeigen

    Nicht schön, aber selten....

    'Text 2' := first(split(text(item(split(Text, "<"), 1)), ">"));
    'Text 3' := first(split(text(item(split(Text, "<"), 2)), ">"));
    'Text 4' := first(split(text(item(split(Text, "<"), 3)), ">"))
    
    • Horst_Fertig
    • vor 5 Monaten
    • Gemeldet - anzeigen

    Servus!

    Ich würde es vielleicht in etwa folgendermaßen angehen...

    Script hierzu in einem Button...

    let myArr := split(MyArrayValues, ",");
    let anz := length(myArr);
    let mailadresses := "";
    let value := "";
    let title := "Mailadressen gefunden";
    for i from 0 to anz do
        value := item(myArr, i);
        if contains(value, "@") = true then
            if mailadresses = "" then
                mailadresses := value
            else
                mailadresses := mailadresses + " | " + value
            end;
            "// tun, was auch immer nötig oder sinnvoll ist"
        end
    end;
    if not mailadresses = "" then
        mailadresses := replacex(mailadresses, "[<>]", "");
        Result := mailadresses;
        let myMsg := dialog(title, mailadresses, ["OK"]);
        void
    end;
    void
    

    Wobei das von den Feldern zu diesem Beispiel wie folgt ausschauen müsste und ich die einzelnen gefundenen Mailadressen jetzt nicht einzeln behandele, sondern am Ende (und von eventuellen "<" und ">" Zeichen bereinigt) nur als Message ausgebe und in das Textfeld "Result" schreibe...

    Vielleicht hilft's ja als Anregung etwas weiter.

    Grüße

    Horst

      • B²KC Klinger GmbH
      • Bjorn_Klinger
      • vor 5 Monaten
      • Gemeldet - anzeigen

      Vielen Dank Euch beiden für die Unterstützung! 👍

       

      Der Code löst auch gleich noch eine zusätzlich aufgetauchte Herausforderung. Es gibt nämlich auch Email-Adressen ohne < > in den Aufzählungen.

      👋

    • Ninox-Professional
    • planoxpro
    • vor 5 Monaten
    • Gemeldet - anzeigen

    Oder per Regex.

    Textfeld mit Namen und E-Mail-Adressen:  
    Jim Schmidt,<jimschmidt@abc.de>,<123@123.com>,Ulli Lustig,<ulli.lustig@super.com>

    Formelfeld:

    concat(for i in split(TEXTFELD, ",") do substr(extractx(i, "(?=<).*?(?=>)"), 1) end)

    Ergebnis (String):
    jimschmidt@abc.de, 123@123.com, ulli.lustig@super.com

      • Ninox-Professional
      • planoxpro
      • vor 5 Monaten
      • Gemeldet - anzeigen

      Okay, da war ich wohl zu spät. Oder zu früh, wie man's nimmt.

      • B²KC Klinger GmbH
      • Bjorn_Klinger
      • vor 5 Monaten
      • Gemeldet - anzeigen

       Das hat sich gerade überschnitten.

      Schick: 2 Lösungen

      Bei den nun aufgetauchten Email-Adressen ohne < > dürfte es sicherlich mit ein paar Anpassungen auch funktionieren.

       

      Vielen Dank Euch allen!

      • Ninox-Professional
      • planoxpro
      • vor 5 Monaten
      • Gemeldet - anzeigen

       Nee, das extractx() liest gezielt die Zeichen zwischen "<" und ">" aus. Wenn auch Adressen ohne dabei sind, würde ich auch eher den Ansatz von  mit contains() verfolgen:

      concat(for i in split(Text, ",") do
              if contains(i, "@") then
                  replace(replace(i, "<", ""), ">", "")
              end
          end)

      Ergebnis wäre dann:

      jimschmidt@abc.de, 123@123.com, ulli.lustig@super.com

      • B²KC Klinger GmbH
      • Bjorn_Klinger
      • vor 5 Monaten
      • Gemeldet - anzeigen

       

      Na das ist doch kurz und knackig. Prima!

      Mit contains in der Schleife hatte ich probiert. Ich bin aber nicht auf die Idee concat voranzustellen. 👍👋

Content aside

  • Status Answered
  • vor 5 MonatenZuletzt aktiv
  • 8Antworten
  • 72Ansichten
  • 4 Folge bereits