Capior: Korrektes (Ab)schneiden

Hi

Hat mir jemand grad ein Script, das zu lange Texte nach x Zeichen korrekt schneidet?!?!

Mit korrekt meine ich, dass das Script überprüft ob es bei einem Space " " (Leerschlag) schneidet und nicht mitten im Text bzw. mitten in einem Wort.

Bsp:
"Hallo, ich habe keine Ahnung, was ich schreiben soll"
  ->
"Hallo, ich habe keine Ahn ..." (so ist's falsch)
  ->
"Hallo, ich habe keine Ahnung ..." (so ist's natürlich richtig :-))

Danke und tschüss
  Capior

PS: Ob JScript oder VBScript ist egal.

  1. Hallo,

    Hat mir jemand grad ein Script, das zu lange Texte nach x Zeichen korrekt schneidet?!?!

    Mit korrekt meine ich, dass das Script überprüft ob es bei einem Space " " (Leerschlag) schneidet und nicht mitten im Text bzw. mitten in einem Wort.

    Dieses Konstrukt nimmt einen String, schneidet ihn an der 40. Stelle ab und überprüft in einer Funktion, ob das letzte Zeichen mit einem vorgegebenen Charakter übereinstimmt. Wenn nein, wird der String um eine Stelle gekürzt - und die Funktion nochmal aufgerufen.

    Spiel mal mit rum ;-)

    <%strMyText = "Hallo, ich habe keine Ahnung, was ich schreiben soll"
    i = 40
    do until cutString(strText) = true
    strText = Mid(strMyText,i,1)
    i = i - 1
    loop
    strText = trim(strText)%>

    <%function cutString(strText)
    strZeichen(0) = chr(32)   ' sapce
    strZeichen(1) = chr(33)   ' !
    strZeichen(2) = chr(44)   ' ,
    strZeichen(3) = chr(46)   ' .
    strZeichen(4) = chr(58)   ' :
    strZeichen(5) = chr(59)   ' ;
    strZeichen(6) = chr(63)   ' ?

    for i=0 to 6
     if strText = str_zeichen(i) then
     cutString = true
     exit function
     end if
    next

    cutString = false
    end function%>

    Viele Grüße aus Köln
    Markus

    1. Hallo,

      Hat mir jemand grad ein Script, das zu lange Texte nach x Zeichen korrekt schneidet?!?!

      Mit korrekt meine ich, dass das Script überprüft ob es bei einem Space " " (Leerschlag) schneidet und nicht mitten im Text bzw. mitten in einem Wort.

      Dieses Konstrukt nimmt einen String, schneidet ihn an der 40. Stelle ab und überprüft in einer Funktion, ob das letzte Zeichen mit einem vorgegebenen Charakter übereinstimmt. Wenn nein, wird der String um eine Stelle gekürzt - und die Funktion nochmal aufgerufen.

      Spiel mal mit rum ;-)

      <%strMyText = "Hallo, ich habe keine Ahnung, was ich schreiben soll"
      i = 40
      do until cutString(strText) = true
      strText = Mid(strMyText,i,1)
      i = i - 1
      loop
      strText = trim(strText)%>

      <%function cutString(strText)
      strZeichen(0) = chr(32)   ' sapce
      strZeichen(1) = chr(33)   ' !
      strZeichen(2) = chr(44)   ' ,
      strZeichen(3) = chr(46)   ' .
      strZeichen(4) = chr(58)   ' :
      strZeichen(5) = chr(59)   ' ;
      strZeichen(6) = chr(63)   ' ?

      for i=0 to 6
      if strText = str_zeichen(i) then
      cutString = true
      exit function
      end if
      next

      cutString = false
      end function%>

      Viele Grüße aus Köln
      Markus

      Hi

      Vielen Dank für das Script, nur leider bring ich es nicht anständig zum Laufen.
      Entweder schneidet es alles oder der PC crasht (ich denk die Bedingung wird nie erfüllt oder das Script ist wirklich so extrem ressourcenfressend [PIII 800Mhz, 256RAM, win2000]).

      Kannst du sonst das Script nochmals überfliegen, ich habs nicht geschafft.

      Danke und tschüss
        Capior

      ---------------------------------------------

      PS: "if strText = str_zeichen(i) then" -> "if strText = strZeichen(i) then"

      1. Hallo,

        <%strMyText = "Hallo, ich habe keine Ahnung, was ich schreiben soll"
        i = 40
        do until cutString(strText) = true
        strText = Mid(strMyText,i,1)
        i = i - 1
        loop

        strMyText = Trim(Mid(strMyText, 1, i))
        response.write(strMyText)
        %>

        <%function cutString(strText)
        strZeichen(0) = chr(32)
        strZeichen(1) = chr(33)
        strZeichen(2) = chr(44)
        strZeichen(3) = chr(46)
        strZeichen(4) = chr(58)
        strZeichen(5) = chr(59)
        strZeichen(6) = chr(63)

        for i=0 to 6
        if strText = strZeichen(i) then
        cutString = true
        exit function
        end if
        next

        cutString = false
        end function%>

        Vielen Dank für das Script, nur leider bring ich es nicht anständig zum Laufen.

        Versuch es jetzt nochmal - da war eine Zeile falsch gecodet. Sorry

        Gruß Markus

        PS: "if strText = str_zeichen(i) then" -> "if strText = strZeichen(i) then"

        1. Hallo,

          <%strMyText = "Hallo, ich habe keine Ahnung, was ich schreiben soll"
          i = 40
          do until cutString(strText) = true
          strText = Mid(strMyText,i,1)
          i = i - 1
          loop
          strMyText = Trim(Mid(strMyText, 1, i))
          response.write(strMyText)
          %>

          <%function cutString(strText)
          strZeichen(0) = chr(32)
          strZeichen(1) = chr(33)
          strZeichen(2) = chr(44)
          strZeichen(3) = chr(46)
          strZeichen(4) = chr(58)
          strZeichen(5) = chr(59)
          strZeichen(6) = chr(63)

          for i=0 to 6
          if strText = strZeichen(i) then
          cutString = true
          exit function
          end if
          next

          cutString = false
          end function%>

          Vielen Dank für das Script, nur leider bring ich es nicht anständig zum Laufen.

          Versuch es jetzt nochmal - da war eine Zeile falsch gecodet. Sorry

          Gruß Markus

          Hi

          Sorry, aber das Ganze geht immer noch nicht. Jetzt erhalt ich zwar keine Fehlermeldung mehr, aber es schreibt auch nichts..der string ist einfach leer.

          do until cutString(strText) = true
          diese zeile stört mich.....weiss nicht, strText ist ja noch gar nicht definiert...wenn ich strText durch strMyText ersetze, hängt der aber pc wieder..

          sorry, aber ich weiss nicht weiter...
          kannst mir nochmals helfen :-)

          danke und tschüss
            capior

          1. Hallo,

            ist vielleicht ein bißchen heiß heute - aber auf jeden Fall läuft es jetzt. http://www.netbrush.net/muehlich/index.asp

            <%
            Dim strZeichen(7)
            strMyText= "Hallo, ich habe keine Ahnung, was ich schreiben soll"
            j = 30
            strText = Mid(strMyText,j,1)
            do until cutString(strText) = true
            strText = Mid(strMyText,j,1)
            j = j - 1
            loop
            strMyText = left(strMyText,j)
            response.write("<b>Lang:</b> Hallo, ich habe keine Ahnung, was ich schreiben soll<br><br>")
            response.write("<b>Kurz: </b>" & strMyText)
            function cutString(strText)
            strZeichen(0) = chr(32)
            strZeichen(1) = chr(33)
            strZeichen(2) = chr(44)
            strZeichen(3) = chr(46)
            strZeichen(4) = chr(58)
            strZeichen(5) = chr(59)
            strZeichen(6) = chr(63)
            for i=0 to 6
             if strText = strZeichen(i) then
             cutString = true
             exit function
             end if
            next
            cutString = false
            end function%>

            Viele Grüße aus Köln
            Markus

            1. Hallo,

              ist vielleicht ein bißchen heiß heute - aber auf jeden Fall läuft es jetzt. http://www.netbrush.net/muehlich/index.asp

              <%
              Dim strZeichen(7)
              strMyText= "Hallo, ich habe keine Ahnung, was ich schreiben soll"
              j = 30
              strText = Mid(strMyText,j,1)
              do until cutString(strText) = true
              strText = Mid(strMyText,j,1)
              j = j - 1
              loop
              strMyText = left(strMyText,j)
              response.write("<b>Lang:</b> Hallo, ich habe keine Ahnung, was ich schreiben soll<br><br>")
              response.write("<b>Kurz: </b>" & strMyText)
              function cutString(strText)
              strZeichen(0) = chr(32)
              strZeichen(1) = chr(33)
              strZeichen(2) = chr(44)
              strZeichen(3) = chr(46)
              strZeichen(4) = chr(58)
              strZeichen(5) = chr(59)
              strZeichen(6) = chr(63)
              for i=0 to 6
              if strText = strZeichen(i) then
              cutString = true
              exit function
              end if
              next
              cutString = false
              end function%>

              Viele Grüße aus Köln
              Markus

              Hi

              ja, war wohl sehr heiss :-)
              Ne, danke auf jeden Fall!!!!!!!!!!

              Es läuft tatsächlich :-)

              Schöne, tschüss
                Capior