[Scripting-Übung] by INk

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link

  • stock IsEqual( str[ ] , _str[ ] ) {
    for ( new index; index < strlen ( str ) && strlen ( str ) == strlen ( _str ); index ++ ) {
    if ( str[ index ] != _str[ index ] )
    return false;
    if ( index == strlen ( str ) - 1 )
    return true;
    }
    return false;
    }

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • stock compare(str1[], str2[]) {
    new
    i=0,
    len=strlen(str1)
    ;
    if(len!=strlen(str2)) {
    return false;
    }
    for(;i<len;i++) {
    if(str1[i]!=str2[i]) return false;
    }
    return true;
    }
    Is aber ungetestet, und im grunde auch nix anderes als das was hauke gepostet hat^^

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Ich habe gerade mal aus Langerweile ein "Benchmark" Plugin geschrieben. Das verwendet einen mit ca. 3,2 Mhz getakteten Mikroprozessor zur Zeitmessung. Viel genauer als diese 0,3 Mikrosekunden genaue Messung geht´s schon fast garnicht.
    Getestet habe ich strcmp und meine IsEqual Funktion mit jeweils immer 500 Durchläufen.


    [table='Wörter im Vergleich,strcmp,IsEqual']
    [*]"AliBabaUndDIe40RäUber" und "AliBabaUndDIe40RäUber"[*]2.88 ms[*]3.32 ms[*]
    [*]"AliBabaUndDIe40RäUber" und "AliBabaUndDIe40RäUbe"[*]3.45 ms[*]3.09 ms[*]
    [/table]


    Viel tut sich da nicht, aber wer davon aus geht, dass Werte oft unterschiedlich sind, wie z.B. das Vergleichen von Spielernamen in einer Schleife, sollte statt strcmp lieber IsEqual nehmen.

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.