Avatar billede sjh Nybegynder
14. december 2003 - 07:01 Der er 12 kommentarer og
1 løsning

highlight VB/ASP

Jeg kunne godt bruge en funktion som highlight_string(), den skal bare virke til VB/ASP kode.

Jeg har en som er lavet til asp og jeg har prøvet med noget ASP2PHP conv.. men den virker altså ikke helt som den skal :(

Så hvis i kan hjælpe / lave et script som kan det :-)

Altså:
En funktion som kan tjekke nogle bestemte ord.. og lave dem om med <font color.... osv..
Avatar billede sjh Nybegynder
14. december 2003 - 07:08 #1
Hvis i skal bruge nogle VB syntax:


$gsBlueKeyWords = "#Const,#Else,#ElseIf,#End If,#If,Alias,Alias,And,As,Base,Binary,Boolean,Byte,ByVal,Call,Case,CBool,CByte,CCur,CDate,CDbl,CDec,CInt,CLng,Close,Compare,Const,CSng,CStr,Currency,CVar,CVErr,Decimal,Declare,DefBool,DefByte,DefCur,DefDate,DefDbl,DefDec,DefInt,DefLng,DefObj,DefSng,DefStr,DefVar,Dim,Do,Double,Each,Else,ElseIf,End,Enum,Eqv,Erase,Error,Exit,Explicit,False,For,Function,Get,Global,GoSub,GoTo,If,Imp,In,Input,Input,Integer,Is,LBound,Let,Lib,Like,Line,Lock,Long,Loop,LSet,Name,New,Next,Not,Object,On,Open,Option,Or,Output,Print,Private,Property,Public,Put,Random,Read,ReDim,Resume,Return,RSet,Seek,Select,Set,Single,Spc,Static,String,Stop,Sub,Tab,Then,True,Type,UBound,Unlock,Variant,Wend,While,With,Xor,Nothing,To";

$gsGreenComments = "'";
Avatar billede sjh Nybegynder
14. december 2003 - 07:17 #2
glemt lige at sige gsGreenComments afsluttes men nylinje, Hvis ikke der står  _

fx.

'kommentar tekst 1 _
kommentar tekst 2 skutter først her.
Avatar billede detox Nybegynder
14. december 2003 - 12:28 #3
Det er vidst ikke så enkelt endda. Jeg prøvede med:

$find = explode(",", $gsBlueKeyWords);
foreach ($find as $item) {
    $erstat[] = "<span style='color: #CC0000'>".$item."</span>";
}
$new_str = str_replace($find, $erstat, $gsBlueKeyWords);
echo $new_str;

men det giver problemer med fx: 'Do' og 'Double', da den erstatter 'Do' i 'Double'.
Avatar billede detox Nybegynder
14. december 2003 - 13:53 #4
Måske hvis du får rettet '$pat' til i den her (er ikke så ferm til regexp):

$arr = explode(",", $gsBlueKeyWords);
foreach ($arr as $item) {
    $pat = "|($item)|";
    $gsBlueKeyWords = preg_replace($pat, "<span style='color: #CC0000'>\\1</span>", $gsBlueKeyWords);
}
echo $gsBlueKeyWords;
Avatar billede detox Nybegynder
14. december 2003 - 14:44 #5
Eller hvis man ændrer rækkefølgen af ordene:

<?
$gsBlueKeyWords = "#Const,#Else,#ElseIf,#End If,#If,Alias,Alias,And,As,Base,Binary,Boolean,CByte,
    ByVal,Call,Case,CBool,DefByte,CCur,CDate,CDbl,CDec,CInt,CLng,Close,Compare,Const,CSng,CStr,
    Currency,CVar,CVErr,Decimal,Declare,DefBool,Byte,DefCur,DefDate,DefDbl,DefDec,DefInt,
    DefLng,DefObj,DefSng,DefStr,DefVar,ReDim,Double,Do,Each,Else,ElseIf,End,Enum,Eqv,Erase,Error,
    Exit,Explicit,False,For,Function,Get,Global,GoSub,GoTo,If,Imp,Input,Integer,In,Is,
    LBound,Let,Lib,Like,Line,Lock,Long,Loop,LSet,Name,New,Next,Nothing,Object,On,Open,Option,Or,
    Output,Print,Private,Property,Public,Put,Random,Read,Dim,Resume,Return,RSet,Seek,Select,
    Set,Single,Spc,Static,String,Stop,Sub,Tab,Then,True,Type,UBound,Unlock,Variant,Wend,While,
    With,Xor,Not,To";
$arr = explode(",", $gsBlueKeyWords);
foreach ($arr as $item) {
    $pat = "|($item)|";
    $gsBlueKeyWords = preg_replace($pat, "<span style='color: #CC0000'>\\1</span>", $gsBlueKeyWords);
}
echo $gsBlueKeyWords;
?>
Avatar billede sjh Nybegynder
14. december 2003 - 18:22 #6
øø hvor kan $vbcode ind???

<body>
<html>

<?php echo $vbcode;?>

<?
$gsBlueKeyWords = "#Const,#Else,#ElseIf,#End If,#If,Alias,Alias,And,As,Base,Binary,Boolean,CByte,
    ByVal,Call,Case,CBool,DefByte,CCur,CDate,CDbl,CDec,CInt,CLng,Close,Compare,Const,CSng,CStr,
    Currency,CVar,CVErr,Decimal,Declare,DefBool,Byte,DefCur,DefDate,DefDbl,DefDec,DefInt,
    DefLng,DefObj,DefSng,DefStr,DefVar,ReDim,Double,Do,Each,Else,ElseIf,End,Enum,Eqv,Erase,Error,
    Exit,Explicit,False,For,Function,Get,Global,GoSub,GoTo,If,Imp,Input,Integer,In,Is,
    LBound,Let,Lib,Like,Line,Lock,Long,Loop,LSet,Name,New,Next,Nothing,Object,On,Open,Option,Or,
    Output,Print,Private,Property,Public,Put,Random,Read,Dim,Resume,Return,RSet,Seek,Select,
    Set,Single,Spc,Static,String,Stop,Sub,Tab,Then,True,Type,UBound,Unlock,Variant,Wend,While,
    With,Xor,Not,To";
$arr = explode(",", $gsBlueKeyWords);
foreach ($arr as $item) {
    $pat = "|($item)|";
    $gsBlueKeyWords = preg_replace($pat, "<span style='color: #CC0000'>\\1</span>", $gsBlueKeyWords);
}
echo $gsBlueKeyWords;
?>
<form name="code" method="post" action="index.php">
<textarea name="vbcode" rows="8" cols="45" class="textarea">
Sub Main()
  'kommentar tekst 1 _
  kommentar tekst 2 skutter først her.
End Sub
</textarea><br>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
Avatar billede sjh Nybegynder
17. december 2003 - 14:16 #7
detox < Kunne du ikke lige hjælpe mig med det sidste.. og lægge et svar..

(øø hvor kan $vbcode ind???)
Avatar billede detox Nybegynder
18. december 2003 - 00:55 #8
Hmmm, det er som jeg sagde ikke så enkelt endda, det kræver nok noget mere tilpasning af den regexp, så den kun tager hele ord. Problemet er stadig at den finder 'Do' i 'Double' o.l. Og mht. kommentarerne har jeg slet ikke taget dem med. Da jeg ikke er så skrap til regexp, må du nok høre om der er en anden, der kan hjælpe med den.
Avatar billede sjh Nybegynder
18. december 2003 - 10:38 #9
ellers prøver jeg en anden løsning.. smid er svar.. jeg vil godt give din 30 point for din hjælp :-)
Avatar billede sjh Nybegynder
18. december 2003 - 10:38 #10
give din 30 point = give dig 30 point
Avatar billede sjh Nybegynder
21. december 2003 - 22:01 #11
når men så tager jeg selv de 30 point
Avatar billede detox Nybegynder
22. december 2003 - 12:35 #12
Bare i orden, håber du får det løst ;o)
Avatar billede sjh Nybegynder
22. december 2003 - 13:15 #13
Tak jeg har fået lavet det med ASP2PHP conv.. jeg ville bare høre om der måske ikke vare en beder/funktion som kunne det.. :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester