Announcement

Collapse
No announcement yet.

Textdateien ändern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Textdateien ändern

    Hallo,

    ich möchte eine definierte Textdatei um Adressendaten bereinigen. Die Textdatei besteht aus verschiedenen Zeilen, die über Satzarten (also einem bestimmten Eintrag an einer vorgegebenen Stelle) verfügt. Dort stehen Auftragsdaten eines Zeitraumes (Tages) aufgezeichnet.

    Ich lade die Datei in eine StringList. Solange ich ALLE Adressdaten leeren will ist das auch kein Problem. Ich gehe einfach die Datei durch und ersetze alle relevanten Daten durch Leerzeichen.

    Der Anwender soll nun aber pro aufgezeichnetem AUftrag entscheiden ob die Kundendaten entfernt werden solle. Dazu lade ich die relevanten Daten in ein TabMemDataSet und stelle sie in einem Grid dar. Per Doppelklick entscheidet der Anwender nun, welche Aufträge bereinigt werden sollen und welche nicht.

    Wie gehe ich nun die Datei durch um nur die im Grid markierten Aufträge zu verändern??? Ich brech mir dabei echt die Füsse...

    Heiko

  • #2
    Kannst du mir mal sagen, was ein TabMemDataset ist? Ist habe das noch nie gesehen oder gehört und mit Google finde ich auch nichts dazu ...

    Comment


    • #3
      TMemDataSet! Sorry

      Das ist eine Tabellen-komponente. Ich habe die Daten aus der Textdatei in diese Tabelle geschrieben

      Comment


      • #4
        Moin Heiko,

        ich verstehe das eigentliche Problem nicht.

        Wenn ich das richtig sehe, machst Du Folgendes:

        - Liest eine Datei in eine Stringliste ein
        - Wirfst diese Liste einer Komponente vor die Füße
        - Die Komponente generiert aus den Daten eine Tabelle (ich postuliere: eine Zeile = ein Datensatz)
        - Diese Tabelle wir in einem Grid dargestellt
        - In dem Grid kann der Anwender Zeilen markieren (ich postuliere wiederum: ich kann die Markierung abfragen)
        - Diese markierten Zeilen sollen in der Datei auf <""> gesetzt werden

        Wenn meine beiden obigen Postulate stimmen und zusätzlich auch die Zuordnung Gridzeile zu Stringlist-"Zeile" nachvollziehbar ist, kann man doch die Stringeinträge der entsprechenden Zeilen leeren und die Stringliste rückspeichern (?).

        Gruß,

        Geer

        Comment


        • #5
          Hallo Geert,

          >Wenn meine beiden obigen Postulate stimmen und zusätzlich auch die Zuordnung Gridzeile zu
          >Stringlist-"Zeile" nachvollziehbar ist, kann man doch die Stringeinträge der entsprechenden Zeilen
          >leeren und die Stringliste rückspeichern (?).

          Nein, nicht ganz.

          Meine Textdatei besteht aus Kopfdaten und dazugehörigen Positionsdaten, ähnlich einerRechnung und deren Rechnungspositionen.

          In meinem Grid (Tabelle) stelle ich nur die Kopfdaten dar, da es sonst zu unübersichtlich wird. Wenn der Kunde nun diese Kopfddaten in meinem Grid sieht und sich in dem "KopfGrid" entscheidet Daten zu entfernen (mitt Leerzeichen zu ersetzen), habe ich im ersten Moment nur die Information in der KopfTabelle: "Positionsdaten dieses Kopfdatensatzes bearbeiten"

          Nun müsste ich alle Datensätze der Textdatei durchgehen, die - nennen wir sie - Auftragsnummer die in meiner Kopftabelle markiert wurden heranziehen und nur die Datensätze in der Textdatei ändern, die laut Grid/Tabelle bearbbeitet werden sollen.

          Ich hoffe diese Beschreibung bringt ein wenig Licht ins Dunkel

          Heik

          Comment


          • #6
            Hallo Heiko,
            mein Vorschlag: Erweitere das TMemDataSet um ein Feld 'ID', in dem die Zeilennummer der Stringliste eingetragen wird. Dann kannst Du nachher die Tabelle/das Grid durchgehen und durch diese ID erkennen, welche Zeilen der Stringliste zu bearbeiten sind. (Dann kann der Anwender notfalls auch die Zeilen neu sortieren...)
            <u><b>Warnung:</u></b> Wenn Zeilen der Stringliste gelöscht werden sollen, muss dies <u><b>vom Ende her</u></b> erfolgen. Du musst dann auch die MemTabelle von hinten her bearbeiten und sicherstellen, dass die ID vom Maximum nach 0 durchlaufen wird (also z.B. vorher nochmals nach ID sortieren).
            Viel Erfolg!
            Jürge

            Comment

            Working...
            X