Ankündigung

Einklappen
Keine Ankündigung bisher.

VB Code Highlight funktion

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • VB Code Highlight funktion

    Hallo,

    ich möchte gerne eine Funktion schreiben die einen VB Quellcode Highlighten kann.
    Ist an und für sich nicht schwer da ich einfach nur die meisten befehle in Blau schreiben muss und halt die schriftart anpassen.
    Allerdings gibt es ein Kopblem denn kommntare werden mit einem hochkommer gesetzt, was mich zu meiner frage bringt:

    Wie kann ich ein text nach einem zeichen bis zur neuen Zeile in einer bestimmten farbe einfärben?

    Beispiel was ich meine:

    ' das ist ein Kommentar! <- und hierrum gehts
    If Frage_Verstanden = True Then

    AntwortAbwarten = True
    End If

    Vielen dank im voraus!
    MFG
    DJ Nuno


  • #2
    Machst du die Einfärbung mit Regulären Ausdrücken? Wenn ja, dann könnte dir das $ Zeichen helfen, das bei einem regulären Ausdruck für das Ende einer Zeile steht. Das würde dann also irgendwie so aussehen:

    PHP-Code:
    preg_replace("/('.*?)$/",'<span style="color: #00FF00">\\0</span>',$text); 

    Kommentar


    • #3
      Danke für die antwort werde das mal probieren, der Text soll direkt aus einer Textarea bzw. der datenbank ausgegeben werden und dann entsprechend eingefärbt.

      Vielen dank erstmal!
      MFG
      DJ Nuno

      Kommentar


      • #4
        Hallo,

        Leider hat das nicht funktioniert.
        Habe mitlerweile folgenden code:

        PHP-Code:
        <?
            if(isset($_POST['Submit'])) {
                $text = htmlspecialchars($_POST['textarea']);
                $text = nl2br($text);
                $text = str_replace("\'", "'", $text);
                $text = preg_replace("/'(.*)\<br>/","<font color=\"#FF0000\">\\1</font>",$text); 
                echo $text;
            }
        ?>
        <br><hr><br>
        <form name="form1" method="post" action="">
          <p>
            <textarea name="textarea" cols="80" rows="10"><? 
            $_POST['textarea'] = str_replace("\'", "'", $_POST['textarea']); 
            echo $_POST['textarea']; ?></textarea>
          </p>
          <p>
            <input type="submit" name="Submit" value="Senden">
          </p>
        </form>
        Allerdings funktioniert das nicht

        Es liegt wohl an der Suchdefinition von preg_replace, kann mir jemand sagen wie es aussehen muss?

        Habe es auch mit "/('.*?)$/" versucht ging allerdings auch nicht
        MFG
        DJ Nuno

        Kommentar


        • #5
          Hm kannst du dir den Inhalt von $text mal vor und nach dem nl2br() ausgeben lassen und hier den Quellcode posten?

          Damit sollte es eigentlich nach dem nl2br() funktionieren:

          Code:
          /('.*?)<br>/
          Aber Reguläre Ausdrücke sind immer so ne Sache ^^ Ausprobieren, ausprobieren und ausprobieren...

          Kommentar


          • #6
            Habs hinbekommen,
            hatte ne blitz idee (^_^)

            Wenn man schon nicht das hochkomma erkennt dann wird einfach das hochkomma duch ein [c]' ersetzt, so bleibt das hochkomma erhalten und das [c] verschwindet

            Hier der code der funktioniert:

            PHP-Code:
            <?
                if(isset($_POST['Submit'])) {
                    echo '<strong>Visual Basic Quelltext:</strong><br><br><font face="Courier New, Courier, monospace">';
                    $text = htmlspecialchars($_POST['textarea']);
                    $text = str_replace("\n", "<br>", $text);
                    $text = str_replace("\'", "[c]'", $text);
                    $text = preg_replace("/\[c](.*)\<br>/siU","<font color=\"#009900\" face=\"Courier New, Courier, monospace\">\\1</font><br>",$text); 
                    echo $text;
                    echo '</font>';
                }
            ?>
            <br><hr><br>
            <form name="form1" method="post" action="">
              <p>
                <textarea name="textarea" cols="80" rows="10"><? 
                $_POST['textarea'] = str_replace("\'", "'", $_POST['textarea']); 
                echo $_POST['textarea']; ?></textarea>
              </p>
              <p>
                <input type="submit" name="Submit" value="Senden">
              </p>
            </form>
            Vielen dank für die hilfe und die denkanstöße

            [edit]
            Eine kleine frage bleibt aber noch, es gibt soviel ich weiss auch in PHP ein funktion die einen String in Groß Buchstaben bzw. in Klein Buchstaben ausgibt.
            Kann mir jemand noch sagen wie die funktion hieß?

            Vielen dank im vorraus!

            P.S. Werde den Fertigen code als Funktion in den Codeschnipseln posten falls es jemand brauchen sollte außer mir
            [/edit]
            MFG
            DJ Nuno

            Kommentar


            • #7
              der Fehler war, dass nl2br() aus \n usw <br /> macht, nicht <br>
              deswegen wurde die Zeile nicht erkannt.
              folgendes hätte funktioniert:
              PHP-Code:
              <?php
              $string 
              preg_replace("#'(.*)(\r\n|\n|\r)#Uis"'<span style="color: #090">\\1</span>", $string);
              ?>

              Kommentar


              • #8
                Ich war mir nicht mehr sicher, ob nl2br() ein <br> oder ein <br /> macht, hätte aber eigentlich auch auf <br /> getippt, aber weil Nuno <br> genommen hat, hab ich gedacht, er hätte es sicher überprüft, obs stimmt ^^ Deshalb wollte ich auch, dass er den String mal hier postet nach dem nl2br()...

                @Gross- und Kleinbuchstaben:
                PHP: strtoupper - Manual
                PHP: strtolower - Manual

                Kommentar


                • #9
                  Ja war auch teilweise mein fehler, hätte mir denken sollen das PHP die "richten" bzw. Aktuellen <br /> nimmt. naja ist ja nun gelösst und funktioniert das was ich jetzt noch machen muss ist halt die ganzen VB Befehle und Variablen hinzufügen.

                  Würde allerdings immernoch ganz gerne wissen welcher PHP befehl alle buchstaben eines strings in kleinburchstaben oder in großbuchstaben wandelt.

                  Danke im voraus
                  MFG
                  DJ Nuno

                  Kommentar


                  • #10
                    Wenn du meinen Post komplett gelesen hättest, wüsstest du es schon seit du ihn gelesen hast...

                    Kommentar


                    • #11
                      Zitat von Montellese Beitrag anzeigen
                      Wenn du meinen Post komplett gelesen hättest, wüsstest du es schon seit du ihn gelesen hast...
                      ups... sorry dachte das währe deine Signatur, warum auch immer. Sorry, und vielen dank!
                      MFG
                      DJ Nuno

                      Kommentar

                      Lädt...
                      X