1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. peethebee

Beiträge von peethebee

  • For Schleifen mit Array.. Gibt es da noch ähnliche Möglichkeiten?

    • peethebee
    • 2. April 2009 um 13:24

    Hi!

    Hatte ein wenig daran rumgespielt, aber so einfach ist es dann doch wieder nicht, weil ich einen definierten Anfang brauche für die Suche. Da scheint mir ein Regulärer Ausdruck evtl. doch besser, weil man den greedy oder non-greedy machen könnte.
    Hast du mal nach solche Algorithmen gesucht, das ist ja ein klassisches Problem, solche Tippfehler oder ausgelassene Buchstaben zu finden (Google)?

    Mein letzter Stand (funktioniert nicht, aber vielleicht die Idee interessant):

    [autoit]

    Func _findMisspelledWord($_longWord, $_searchWord, $_length_factor, $_similarity_factor, $_caseSens = 1)
    ; by peethebee (dont remove this!)

    [/autoit][autoit][/autoit][autoit]

    Local $_good = 0
    Local $_bad = 0
    Local $_firstPos = -1
    Local $_lastPos = -1

    [/autoit][autoit][/autoit][autoit]

    ; Wort1 durchlaufen
    For $_i = 1 To StringLen($_searchWord)
    ;~ ConsoleWrite(StringFormat("Testing letter %s", StringMid($_word1, $_i, 1)) & @CRLF)
    $_pos = StringInStr($_longWord, StringMid($_searchWord, $_i, 1), $_caseSens)
    If ($_pos = 0) Then
    ; nicht in Wort2
    ;~ ConsoleWrite(StringFormat("Not in Word2, like %i more so far.", $_bad) & @CRLF)
    $_bad = $_bad + 1
    Else
    ; schon in Wort2 -> Entfernen, damit Buchstabenanzahl korrekt beachtet wird
    ;~ ConsoleWrite(StringFormat("In Word2, like %i more so far.", $_good) & @CRLF)
    If ($_good = 0) Then
    $_firstPos = $_pos
    EndIf
    $_lastPos = $_pos

    [/autoit][autoit][/autoit][autoit]

    $_good = $_good + 1
    $_longWord = StringTrimLeft($_longWord, $_pos)
    EndIf
    Next

    [/autoit][autoit][/autoit][autoit]

    ; Tests
    If ($_good / ($_good + $_bad) < $_similarity_factor) Then Return $_searchWord
    Local $_length_factor_found
    Local $_foundLength = $_lastPos - $_firstPos
    If ($_foundLength < StringLen($_searchWord)) Then
    $_length_factor_found = $_foundLength / StringLen($_searchWord)
    Else
    $_length_factor_found = StringLen($_searchWord) / $_foundLength
    EndIf
    If $_length_factor_found < $_length_factor Then Return $_searchWord

    [/autoit][autoit][/autoit][autoit]

    Return StringMid($_longWord, $_firstPos, $_lastPos - $_firstPos)
    EndFunc ;==>_findMisspelledWord

    [/autoit][autoit][/autoit][autoit]

    $ret = _findMisspelledWord("BtrekAutoitzppoitro", "Auttoi", 0.4, 0.8, True)
    ConsoleWrite(StringFormat("Meinten Sie vielleicht %s?", $ret) & @CRLF)

    [/autoit]

    peethebee

  • Was möchten mir die Admins damit sagen ???

    • peethebee
    • 1. April 2009 um 19:16

    Ich denke nicht, dass eure Adressen den Server verlassen haben, es dürfte gelaufen sein wie progandy angedeutet hat.

    peethebee

  • Was möchten mir die Admins damit sagen ???

    • peethebee
    • 1. April 2009 um 19:08

    User ist gelöscht.
    Tut uns leid ist aber wohl nicht wirklich zu verhindern :(.
    Natürlich nicht darauf antworten (Spam)!

    peethebee

  • Anfänger sucht Hilfe.

    • peethebee
    • 1. April 2009 um 18:22

    Hallo,

    1. Das Bot-Forum wird nicht wieder eröffnet, wer dabei war, als es noch offen war, weiß auch, warum. Es ist nicht gut für die Community, wirklich :).
    2. Man kann nicht unterscheiden, ob jemand Support für SP- oder MP-Spiele will, die Techniken sind ja gleich.
    3. Auch für SP-Bots wäre mir "unsere Zeit" als Forum verschwendet.
    4. Tutorials posten lassen wäre inkonsequent (ich muss zugeben, dass das lesbare Bot-Forum auch schon ein wenig inkonsequent ist, aber es erspart vielleicht doch ein paar Fragen ab und zu...).

    Ich glaube, dass das unter den aktiven Usern auch Konsens ist und uns gut tut :-).
    AutoIt kann soviel mehr und das wollen wir hier zeigen.

    peethebee

    p.s. Seiten refreshen ist natürlich kein Bot meiner Meinung nach, die Definition, die ich da anlege, bezieht sich schon auf Spiele, nicht generell roBOTer.

  • DNA Programm

    • peethebee
    • 31. März 2009 um 22:07
    [autoit]

    $mRNA = StringReplace ($DNA, "T", "G")
    $mRNA = StringReplace ($mRNA, "U", "C")

    [/autoit]


    So?

    peethebee

  • Push regel fehlt

    • peethebee
    • 31. März 2009 um 19:23

    Ich finde, dass wir das schon ganz gut regeln.
    Pauschal kann man das ohnehin nicht sagen.
    Alles unter 24 Stunden ist mir zumindest zuwider...

    peethebee

  • Dateien ausschließen

    • peethebee
    • 31. März 2009 um 16:30

    Ich antworte mal so klar die wie Frage ist:

    Ja.

    peethebee

  • For Schleifen mit Array.. Gibt es da noch ähnliche Möglichkeiten?

    • peethebee
    • 31. März 2009 um 15:56

    Baue ich gleich mal was zu, muss erst noch was anderes machen.

    peethebee

  • For Schleifen mit Array.. Gibt es da noch ähnliche Möglichkeiten?

    • peethebee
    • 31. März 2009 um 15:35

    Wenn auch der/die erste(n) oder der/die letze(n) Buchstaben fehlen kann/können und Wortanfänge nicht feststellbar sind, hast du ja keine Chance festzustellen, wo der gesuchte Teil anfängt.
    Zum Verständnis noch mal: In was für einem Tool willst du das verwenden (vielleicht geht es ja auch ganz anders)? Gegen welche Art von Liste vergleichst du die Eingabe (Wörterbuch)?

    peethebee

  • For Schleifen mit Array.. Gibt es da noch ähnliche Möglichkeiten?

    • peethebee
    • 31. März 2009 um 15:28

    Dann splitte vorher an _ und Leerzeichen oder so mit StringSplit und teste die Einzelteile.

    peethebee

  • For Schleifen mit Array.. Gibt es da noch ähnliche Möglichkeiten?

    • peethebee
    • 31. März 2009 um 15:11

    Ist

    [autoit]

    $ret = _wordCompareInOrder("is_string_a", "sing", False)

    [/autoit]


    nicht genau das, was du willst?
    Ich meine, du weißt doch, welches das "Ausgangswort" ist, oder?

    peethebee

  • For Schleifen mit Array.. Gibt es da noch ähnliche Möglichkeiten?

    • peethebee
    • 31. März 2009 um 14:54

    Danke für das Lob :).

    Er prüft vom ersten Wort aus.
    Entweder Wörter tauschen oder die Funktion müsste angepasst werden, allerdings müsstest du dann erklären, wie ;).

    peethebee

  • For Schleifen mit Array.. Gibt es da noch ähnliche Möglichkeiten?

    • peethebee
    • 31. März 2009 um 14:34

    Neuer Versuch:

    [autoit]

    Func _wordCompare($_word1, $_word2, $_caseSens)
    ; by peethebee (dont remove this!)

    Local $_good = 0
    Local $_bad = 0

    ; Wort1 durchlaufen
    For $_i = 1 to StringLen($_word1)
    ;~ ConsoleWrite(StringFormat("Testing letter %s", StringMid($_word1, $_i, 1)) & @CRLF)
    $_pos = StringInStr($_word2, StringMid($_word1, $_i, 1), $_caseSens)
    if ($_pos = 0) Then
    ; nicht in Wort2
    ;~ ConsoleWrite(StringFormat("Not in Word2, like %i more so far.", $_bad) & @CRLF)
    $_bad = $_bad + 1
    Else
    ; schon in Wort2 -> Entfernen, damit Buchstabenanzahl korrekt beachtet wird
    ;~ ConsoleWrite(StringFormat("In Word2, like %i more so far.", $_good) & @CRLF)
    $_good = $_good + 1
    $_word2 = StringLeft($_word2, $_pos - 1) & StringTrimLeft($_word2, $_pos)
    EndIf
    Next
    ; formatieren und zurückgeben
    Local $_retArray[4] = [$_good + $_bad, $_good, $_bad, StringFormat("%d", $_good / ($_good + $_bad) * 100)]
    Return $_retArray
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _wordCompareInOrder($_word1, $_word2, $_caseSens)
    ; by peethebee (dont remove this!)

    Local $_good = 0
    Local $_bad = 0

    ; Wort1 durchlaufen
    For $_i = 1 to StringLen($_word1)
    ;~ ConsoleWrite(StringFormat("Testing letter %s", StringMid($_word1, $_i, 1)) & @CRLF)
    $_pos = StringInStr($_word2, StringMid($_word1, $_i, 1), $_caseSens)
    if ($_pos = 0) Then
    ; nicht in Wort2
    ;~ ConsoleWrite(StringFormat("Not in Word2, like %i more so far.", $_bad) & @CRLF)
    $_bad = $_bad + 1
    Else
    ; schon in Wort2 -> Entfernen, damit Buchstabenanzahl korrekt beachtet wird
    ;~ ConsoleWrite(StringFormat("In Word2, like %i more so far.", $_good) & @CRLF)
    $_good = $_good + 1
    $_word2 = StringTrimLeft($_word2, $_pos)
    EndIf
    Next
    ; formatieren und zurückgeben
    Local $_retArray[4] = [$_good + $_bad, $_good, $_bad, StringFormat("%d", $_good / ($_good + $_bad) * 100)]
    Return $_retArray
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    $ret = _wordCompareInOrder("AtutIo", "Autoit", true)
    ConsoleWrite("Compared AutoIt to Autoit with Case Sensitivity" & @CRLF)
    ConsoleWrite(StringFormat("Total number of characters: %i", $ret[0]) & @CRLF)
    ConsoleWrite(StringFormat("Number of common characters: %i", $ret[1]) & @CRLF)
    ConsoleWrite(StringFormat("Number of different characters: %i", $ret[2]) & @CRLF)
    ConsoleWrite(StringFormat("Number of common characters (percentage): %i", $ret[3]) & @CRLF)

    [/autoit]

    peethebee

  • For Schleifen mit Array.. Gibt es da noch ähnliche Möglichkeiten?

    • peethebee
    • 31. März 2009 um 13:40

    Ich bastele mal schnell was.

    Edit:
    Es geht wie so oft hauptsächlich darum, einen guten Algorithmus zu finden, das Programmieren ist dann nicht mehr schwer:

    [autoit]

    Func _wordCompare($_word1, $_word2, $_caseSens)
    ; by peethebee (dont remove this!)

    Local $_good = 0
    Local $_bad = 0

    ; Wort1 durchlaufen
    For $_i = 1 to StringLen($_word1)
    ;~ ConsoleWrite(StringFormat("Testing letter %s", StringMid($_word1, $_i, 1)) & @CRLF)
    $_pos = StringInStr($_word2, StringMid($_word1, $_i, 1), $_caseSens)
    if ($_pos = 0) Then
    ; nicht in Wort2
    ;~ ConsoleWrite(StringFormat("Not in Word2, like %i more so far.", $_bad) & @CRLF)
    $_bad = $_bad + 1
    Else
    ; schon in Wort2 -> Entfernen, damit Buchstabenanzahl korrekt beachtet wird
    ;~ ConsoleWrite(StringFormat("In Word2, like %i more so far.", $_good) & @CRLF)
    $_good = $_good + 1
    $_word2 = StringLeft($_word2, $_pos - 1) & StringTrimLeft($_word2, $_pos)
    EndIf
    Next
    ; formatieren und zurückgeben
    Local $_retArray[4] = [$_good + $_bad, $_good, $_bad, StringFormat("%d", $_good / ($_good + $_bad) * 100)]
    Return $_retArray
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    ; Beispiel
    $ret = _wordCompare("AutoIt", "Autoit", true)
    ConsoleWrite("Compared AutoIt to Autoit with Case Sensitivity" & @CRLF)
    ConsoleWrite(StringFormat("Total number of characters: %i", $ret[0]) & @CRLF)
    ConsoleWrite(StringFormat("Number of common characters: %i", $ret[1]) & @CRLF)
    ConsoleWrite(StringFormat("Number of different characters: %i", $ret[2]) & @CRLF)
    ConsoleWrite(StringFormat("Number of common characters (percentage): %i", $ret[3]) & @CRLF)

    [/autoit]

    Beispielausgabe:

    Zitat

    Compared AutoIt to Autoit with Case Sensitivity
    Total number of characters: 6
    Number of common characters: 5
    Number of different characters: 1
    Number of common characters (percentage): 83

    peethebee

  • firefox leiste auslesen

    • peethebee
    • 31. März 2009 um 13:22

    Ja, ein Bot für "Die Stämme" afair, jedenfalls war so ein Ortsbild da...
    Jetzt ist das Bild weg, aber das ändert an der Thematik imo nicht wirklich etwas :S.

    peethebee

  • autoit + dll-call + irrlicht.dll

    • peethebee
    • 31. März 2009 um 13:21

    Hallo,

    Was sind Irrlicht-GUIs und warum willst du die unbedingt haben?
    Soweit ich weiß, ist Irrlicht halt ein C++-3D-Framework, warum sollte das einfach so in AutoIt laufen!? Warum sollte Koda einen so extremen Spezialfall unterstützen? Leuchtet mir gerade irgendwie nicht ein :D.

    Enlight me ;).

    peethebee

  • Tab per Button hinzufügen?

    • peethebee
    • 31. März 2009 um 13:13

    Titel korrigiert. Liest du eigentlich die Verwarnungen, die du bekommst?
    Großschreibung ist hier nicht erwünscht, auch nicht im Titel!

    peethebee

  • firefox leiste auslesen

    • peethebee
    • 30. März 2009 um 22:00

    Die Forenregeln sind dir bekannt?

    peethebee

  • REGISTRIE EINTRAG ÄNDERN ??

    • peethebee
    • 29. März 2009 um 19:36

    Ne, so nicht.

    -> Verwarnung

    peethebee

  • Alle Dateien einlesen

    • peethebee
    • 28. März 2009 um 21:53

    Och such halt bitte mal vorher :(.

    Stichwort: Dateisuche rekursiv.

    peethebee

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™