Announcement

Collapse
No announcement yet.

schleifenproblem

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

  • schleifenproblem

    hi leute,

    ich habe in einem programm eine löschfunktion!

    sie soll was in einer stringliste löschen!
    der inhalt in der stringliste sieht zum beispiel so aus:

    <pre>
    <Thema>t2</Thema><Kapitel>k2</Kapitel><Text1>test2
    test2</Text1>
    </pre>
    <b>test2</Text1></b> das hier steht also in der nächsten zeile. es könnte auch in der übernächsten oder drittnächsten kommen, ist also beliebig!

    meine löschfunktion soll einschließlich bis zu
    diesem <b></Text1></b> tag löschen!

    das hier löscht die erste zeile:
    <pre>
    //markierten eintrag in liste finden
    for i := archivinhalt.Count-1 downto 0 do
    if pos(tagsalt,archivinhalt.Strings[i]) > 0 then begin
    //wenn gefunden dann löschen
    //archivinhalt.Delete(i);
    z := i;
    end;

    </pre>

    aber wie geht es weiter?

    gruß

    markus
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    Was soll denn weiter passieren. Ich habe Deine Frage nämlich noch nicht richtig verstanden. Möchtets Du aus der Stringliste alles von <Text1>test2 <BR> bis
    test2</Text1> löschen (einschließlich

    Comment


    • #3
      Hallo Markus,

      wenn alle vorhergehenden Zeilen ebenfalls gelöscht werden sollen, kannst Du die Text-Eingenschaft der Stringliste nutzen. Folgendes Beispiel ist in C++, sollte aber einfach umzusetzen sein:

      <PRE>
      int pos = archivinhalt->Text.AnsiPos(tagsalt);
      if (pos)
      {
      pos += tagsalt.Length() + 1;
      archivinhalt->Text = archivinhalt->Text.Delete(1,pos);
      }
      </PRE>
      Ich hoffe das hilft Dir weiter.

      Grüße Joche

      Comment


      • #4
        hi,

        danke! habe es inzwischen mit replacestring gelöst!

        gruß

        marku
        Herzliche Grüße

        Markus Lemcke
        barrierefreies Webdesign

        Comment


        • #5
          hi jochen,

          nun ist das problem doch nochmal da!

          es sollen nicht alle vorhergenden, sondern alle die danach kommen!!

          einfacheres beispiel!
          ich will aus einer textdatei einen textblock, welcher aus mehreren zeilen bestehen kann extrahieren!

          der textblock beginnt mit der zeichenkette "textanfang" und endet mit der zeichenkette "textende" und alles was zwischen den beiden zeichenketten ist, möchte ich haben!
          wie geht das?

          gruß

          marku
          Herzliche Grüße

          Markus Lemcke
          barrierefreies Webdesign

          Comment


          • #6
            Sorry Markus,

            hab' Dein Posting nicht gesehen (Delphi hab' ich nicht abboniert...).

            Ist das Problem noch aktuell? <BR>
            Wenn ja: Möchtest Du den Text inklusive 'textanfang' und 'textende' haben. Können 'textanfang' und 'textende' mehrfach vorkommen? Sind 'textanfang' und 'textende' immer in dieser Reihenfolge vorhanden, oder kann auch, zb. 'textanfang', 'textanfang', 'textende' vorkommen?

            Grüße Jochen

            P.S. Hab' diese Diskussion jetzt abboniert. ;

            Comment


            • #7
              Hmm...<br>
              Wie wäre es denn damit?<br>
              <pre>
              function getBlock(var s:string):string;
              var aStart, aEnd:integer;
              begin
              result:='';
              aStart:=pos("textanfang",s);
              aEnd:=pos("textende",s);
              if (aStart<>0) and (aEnd<>0) then
              begin
              result:=copy(s,aStart+10,aEnd-aStart-10);
              s:=copy(s,aEnd+8,length(s-aEnd-8);
              end;
              end;
              </pre>
              <pre>
              procedure showAllBlocks(s:string);
              var aBlock:string;
              begin
              repeat
              aBlock:=getBlock(s);
              showMessage(aBlock);
              until aBlock='';
              end;
              </pre>
              Ich habe es jetzt nicht ausprobiert, aber so sollte es eigentlich gehen

              Comment


              • #8
                hi patrick,

                dein getblock sieht gut aus,
                aber textanfang und textende müßte als parameter übergeben werden!

                ich werde es mal testen!

                danke
                Herzliche Grüße

                Markus Lemcke
                barrierefreies Webdesign

                Comment

                Working...
                X