Neue Antwort erstellen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

Neu erstellte Beiträge unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.

Informationen
Frage Bitte beantworten Sie die untenstehende Frage bzw. lösen Sie die untenstehende Aufgabe.
Nachricht
Internet-Adressen werden automatisch erkannt und umgewandelt.
Smiley-Code wird in Ihrer Nachricht automatisch als Smiley-Grafik dargestellt.
Sie können BBCodes zur Formatierung Ihrer Nachricht nutzen.

Vorherige Beiträge 16

  • Oops, dann war's doch nicht die Good-Table...
    Danke Heinz! Die Suche geht weiter, diesmal mit 'TraceOn'.
    EDIT: Gefunden :thumbsup: :!:

    XProfan 11.2a kann im INC i&,... Befehl noch keine Funktionen auflösen, MaxL() funktioniert dort nicht. Geht man den Weg über eine Zwischenvariable, klappt alles. Mit folgender Änderung der Proc BoyerMoore_Search klappt es nun auch in älteren XProfan-Versionen!
    Gruss

    P.S. Nochmal großes DANKE an Michael und alle Mitwirkenden!

    Quellcode

    1. Proc BoyerMoore_Search
    2. Parameters SourceStart&,SourceLen&,PatternStart&,PatternLen&,MaxTreffer&,BadTab&[],GoodTab&[]
    3. Declare TrefferTab&[],i&,j&,Treffer&,v11&
    4. Treffer& = 0
    5. Case PatternLen& > SourceLen& : Return TrefferTab&[]
    6. i& = 0
    7. While i& <= (SourceLen& - PatternLen&)
    8. j& = PatternLen& - 1
    9. While (j&>=0) and (Char$(PatternStart&,j&,1) = Char$(SourceStart&,i&+j&,1))
    10. Dec j&
    11. EndWhile
    12. If j&<0
    13. TrefferTab&[Treffer&] = i&
    14. Inc Treffer&
    15. Inc i&,GoodTab&[0]
    16. Else
    17. v11&=MaxL( GoodTab&[j&+1], j&-BadTab&[Ord(Char$(SourceStart&,i&+j&,1))] )
    18. Inc i&,v11&
    19. EndIf
    20. if (MaxTreffer& <> 0) and (Treffer& >= MaxTreffer&)
    21. BREAK
    22. endif
    23. EndWhile
    24. Return TrefferTab&[]
    25. EndProc
    Alles anzeigen
  • Leere weisse Fläche in $ProfVer=11.2a, weil aus _Search nicht rausgebreakt wird. Habe da so einen Verdacht:
    EDIT: Hat sich erledigt - dank Heinz!
    [...prüfbar mit Codestück-Ersatz beim 1. Testfall

    Quellcode

    1. Tab1&[] = BoyerMoore_Tab_Bad(addr(Muster$),len(Muster$))
    2. :::print sizeof(tab1&[]):whileloop sizeof(tab1&[]):print tab1&[&loop-1],:endwhile
    3. Tab2&[] = BoyerMoore_Tab_Good(addr(Muster$),len(Muster$))
    4. :::print "\n\n",sizeof(tab2&[]):whileloop sizeof(tab2&[]):print tab2&[&loop-1],:endwhile