Announcement

Collapse
No announcement yet.

Text in Teilstring

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

  • Text in Teilstring

    Hallo Leute,

    ich möchte einen langen String (Text) in mehrere Teilstrings von 40 Zeichen pro Zeile zerlegen. Das Problem bei der Sache ist, das Wörter nicht zerissen werden soll.

    Beispiel: der Text ist :'GebüH 39.1 a' 3,26; 25.6 a' 7,70; 39.12 a' 5,04; 35.2 a' 15,40; 20.4 a' 4,72; 21.1 a' 10,30; 20.7 a' 7,34'

    dieser soll nun in mehrer Zeilen je nach Länge des Textes in Telstrings von max 40 Zeichen umgewandelt werden. z.B.

    1 Teilstring = 'GebüH 39.1 a' 3,26; 25.6 a' 7,70; 39.12 '
    2 Teilsting = 'a' 5,04; 35.2 a' 15,40; 20.4 a' 4,72;'
    3 Teilstring = '21.1 a' 10,30; 20.7 a' 7,34'

    Hat jemand eine Funktion oder Komponente die das macht.

    mfg
    Walter

  • #2
    Hallo!

    Wenn Du den Satz in die einzelnen Worte zerlegst und dann pro Zeile die Worte bis zur maximalen Zeilenlänge wieder zusammensetzt sollte das doch gehen...

    Mit
    function BreakApart (
    instr : String;
    break : String;
    var ar : tstringlist ): integer;

    var
    p, Start : pchar;
    Count : integer;
    help : String;
    begin

    p := pchar ( instr );
    count := 0;

    ar.clear;
    while p^ <> #0 do begin
    if pos ( p^, break ) <> 0 then begin
    inc ( p );
    end
    else begin
    Start := p;
    while (P^ <> #0) and (pos ( p^, break ) = 0) do begin
    inc ( p );
    end;
    SetString ( help, Start, p-start );
    ar.add ( help );
    Count := Count + 1;
    end;
    end;
    breakapart := count;
    end;

    kannst Du einen Satz in die einzelnen Worte zerlegen
    BreakApart ( 'Hallo/Test' '/', mystringlist )
    liefert dann Hallo und Test in der Stringlist

    BYE BERND

    Comment


    • #3
      Hallo Bernd,

      jetzt hast Du aber das Rad neu erfunden. Deine function BreakApart gibt es schon in TStrings als Property DelimitedText .

      Gruß
      Peter

      Comment


      • #4
        Danke für Eure Tips, werds mal so probieren.
        Gruß Walter

        Comment


        • #5
          Hallo!

          @Peter
          Nicht in D5, da gibt es das property noch nicht!

          BYE BERND

          Comment


          • #6
            Hallo Bernd,

            ah, klar. Aber an D5 denke ich halt nicht mehr. Ich bin schon bei D6. ;-)

            Gruß
            Peter

            Comment

            Working...
            X