Announcement

Collapse
No announcement yet.

Problem mit Copy und/oder Pos

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

  • Problem mit Copy und/oder Pos

    Hallo,

    ich habe folgenden Code:

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
       s : string;
    begin
    
    s :='<1>c:\test.pas</1> <2>c:\TestOrdner</2>';
    
    showmessage(Copy(s,Pos('<' + IntToStr(2) + '>',s)+3,Pos('</' + IntToStr(2) + '>',s)-4));
    
    end;

    Die Ausgabe ist demnach: c:\TestOrdner</2>

    Das Problem ist nun, dass er den SuchString </2> mitausgibt...
    Das sollte doch eigentlich nicht passieren, da Pos mir das 1. Zeichen zurückgibt, wenn er denn den SuchString gefunden hat.

    Nun stellt sich mir die Frage, warum ist das so...


    Liegt es an den Zeichen (</> usw...), dass Copy mit diesen Zeichen nicht klarkommt oder habe ich einen Denkfehler...


    Noch hinzuzufügen wäre vllt., dass wenn ich nach dem Wert zwischen den <1> Tags suche, die Ausgabe wie gewünscht ist, also: c:\test.pas

    Für Aufklärung wäre ich sehr dankbar..

  • #2
    Würde mal tippen es liegt an +3, welche zur Position aufaddiert werden
    Christian

    Comment


    • #3
      leider nicht...

      die erste Position also: Pos('<' + IntToStr(2) + '>',s)+3
      wird auch korrekt gefunden bzw. auch ausgegeben. Daran kann es nicht liegen.

      Der Fehler muss meiner Meinung nach an der zweiten Position liegen, also:
      Pos('</' + IntToStr(2) + '>',s)-4

      Nur leider wenn ich anstelle der "-4" die "-1" angebe, verändert sich an der Ausgabe rein gar nichts! (Es bleibt c:\TestOrdner</2> )

      Gibt es vllt eine andere möglichkeit den gesuchten index über einen SuchString (wie mit Pos) zu ermitteln; AnsiPos und PosEx liefern mir die selben Ergebnisse..

      Comment


      • #4
        Mann mann mann, bin ich deppert

        Hab die Lösung... also close pls

        P.S.
        Die Lösung falls jemand wissen will...
        Der dritte Parameter bei Copy ist Count, und dieser zählt ab dem Index und nicht ab 0...

        und ich such mich blöde...
        xD

        Comment

        Working...
        X