Zeilen sortieren - in Blöcken - Textzeilen sortieren

  • Hallo Freunde der automatisierten Schritte,

    wie sortiert man mit Autoit am einfachsten Zeilen, die in Blöcke unterteilt sind?

    Ich vermute mit einer verschachtelten Schleife?

    Ich möchte die Zeilen eines Textes sortieren. Dieser Text besteht aus mehreren Abschnitten (Blöcken).
    Jeder Block beginnt mit einem Ausrufezeichen und endet mit einem Leerzeichen.

    Ich habe zuerst versucht, die Vorgehensweise zu formulieren – wäre das der richtige Weg für eine Umsetzung mit Autoit?

    Wenn ja, habt ihr dafür einen Programmschnipsel? Die blockweise Sortierung inklusive verschachtelte Schleifen sind für mich totales Neuland.

    Hier der Versuch, die Vorgehensweise im Klartext zu formulieren:

    1. Lese aus der Variablen $clp die Zeilen bis zur ersten Leerzeile in die Variable $tmp ein.
    Lösche diese Zeilen aus der Variablen $clp.

    Damit hätten wir den ersten Block des Textes, der durch Leerzeilen in Blöcke unterteilt ist.

    2. Wenn die Zeile mit einem Ausrufezeichen beginnt, füge diese Zeile der Variable $neu hinzu und entferne sie aus dem Block $tmp.

    3 (a). Wenn die nächste Zeile
    - mit "www." beginnt, ersetze "www." durch "*" (soll wirklich) durch einen Stern ersetzt werden.
    - mit "http://" beginnt, lösche http://.
    - mit "ftp://" beginnt, ersetze das durch "'ftp://" (Hochkommata voranstellen)

    (das wären dann mehre IF Then Abfragen oder lässt sich das eleganter lösen?)

    3 (b). Wenn die Zeile eines der folgenden Worte enthält:
    Cookie, css, https
    dann überspringe die Zeile.

    (das wären dann mehre IF Then Abfragen oder lässt sich das eleganter lösen?)

    4. Sortiere alphabetisch von A bis Z die nun folgenden Zeilen des Blocks $tmp und füge die sortierten Zeilen der Variablen $neu hinzu.

    5. Weiter gehts mit dem nächsten Block aus der Variablen $clp.


    Viele Grüße
    AutoMit

    4 Mal editiert, zuletzt von AutoMit (20. Oktober 2015 um 14:50)

  • Ich rate dir dich in Array's Definition und _Array_*-Funktionen und/oder StringRegEx*-, _String & String*-Funktionen einzuarbeiten. Nach 3 Monaten AutoIterfahrung solltest du eigentlich diese Basics schon beherschen. Danach fängst du mit deinem Projekt an, daß du das ganze in 2 Jahren ganz anders lösen würdest ist eine andere Sache.

  • Hi,
    vorab, versuche mal, den Post vom geschätzten Kollegen AspirinJunkie umzusetzen, ich meine das xy-Problem...
    Fragen zu StringRegExp - Array in mehreren Spalten und leere Zeilen

    Ansonsten:
    Deine obige Text-Vorlage in die Zwischenablage kopieren, und folgendes Script laufen lassen.


    sollte dir weiterhelfen.
    Btw,. wenn du schon in der Lage bist, das Problem bis runter zum Pseudocode zu benennen, wieso schreibst du in dieser Zeit kein lauffähiges Script?