Hallo
Ich bin neu hier und noch relativ unerfahren mit AutoIt.
Ich habe zwar schon kleinere Sachen gemacht in AutoIt, auch mit GUI aber bei dem hier find ich keinen Anfang.
Ich möchte einen Makro-Konverter für das Spiel World of Warcraft erstellen. Makros beinhalten ausführbare Aktionen im Spiel wie zb. Angriffe, Essen usw. Diese Makros kann man im Spiel erstellen. Sie werden in einer Datei namens macros-cache.txt abgelegt mit der ich nun arbeiten möchte. Ein einzelnes Makro sieht in dieser Datei dann so aus:
MACRO 16777239 und END sind für mich irrelevant. Ich möchte folgendes weiterverarbeiten: Beschreibung(Siegel1), Icon(Ability_ThunderBolt) und das Makro selbst(/cast Siegel der Rechtschaffenheit)
Eine komplette Makro-Datei mit mehreren Makros kann so aussehen:
MACRO 16777239 "Siegel1" Ability_ThunderBolt
/cast Siegel der Rechtschaffenheit
END
MACRO 16777234 "Segen1" Spell_Holy_FistOfJustice
/cast Segen der Macht
END
MACRO 16777233 "Aura1" SPELL_HOLY_DEVOTIONAURA
/cast Aura der Hingabe
END
MACRO 16777235 "Aura2" Spell_Holy_AuraOfLight
/cast Aura der Vergeltung
END
MACRO 16777237 "Finishing" Ability_ThunderClap
/cast Hammer des Zorns
END
MACRO 16777221 "Gesundheit" Spell_ChargeNegative
/use Räucherschinkensteak
/use Hammelkoteletts
/use Stoppelfühlerwels
/use Langzahniger Matschschnapper
/use Schnapprankenwassermelone
END
Alles anzeigen
Der Konverter soll erkennen wo ein Makro beginnt und ended und die für mich relevanten Teile in eine andere Text-Datei Schreiben(erstmal).
Habe schon einiges probiert aber so richtig versteh ich nicht wie das am besten geht.
Habe folgendes Beispiel aus dem Forum:
#include <Array.au3>
Local $path = "macros-cache.txt"
If FileExists($path) Then
$aArray = _WriteToArray(FileRead($path))
_ArrayDisplay($aArray)
EndIf
Func _WriteToArray($sSource)
Local $aLines = StringSplit(StringStripWS($sSource, 2), @CRLF, 1)
Local $arr[$aLines[0]][100], $iMaxCol = 0, $a, $i, $x
For $i = 1 To $aLines[0]
$a = StringSplit($aLines[$i], ",")
If $a[0] > $iMaxCol Then $iMaxCol = $a[0]
For $x = 1 To $a[0]
$arr[$i - 1][$x - 1] = $a[$x]
Next
Next
ReDim $arr[$aLines[0]][$iMaxCol]
Return $arr
EndFunc
Alles anzeigen
Das sieht schonmal ganz gut aus aber wie zerlegt man jetzt den Text am besten so, das ich an meine gewünschten Daten komme? Irgendwie mit StringSplit, aber wie genau in diesem Fall...?
Bin für jeden Tip dankbar.