moin
erstmal kurz was ich machen möchte:
das online-spiel "die stämme" bietet informationen über die server zum download als textdatei an
(karte, welcher spieler sitzt wo / wiviele punkte / wiviele dörfer etc)
die koordinaten der welt sind 0:0 bis 1000:1000
die textdatei sieht folgendermassen aus:
dorfid,name,xxx,yyy,spielerid,dorfpunkte,rang
dorfid,name,xxx,yyy,spielerid,dorfpunkte,rang
dorfid,name,xxx,yyy,spielerid,dorfpunkte,rang
...
ich will ein script schreiben dass:
die datei einliest
alle dörfer die im koordinatenbereich 600:800 bis 700:900 liegen herausfiltert
diese mit ein paar zusatzdaten in eine excel tabelle einfügt
ich scheiter dummerweise schon am einlesen - bei dorf 509 gibts nen fehler:
Line 29 (file: ...)
if $y ...
If ^error
Error: Array variable has incorrect number of subscripts or subscript dimension range exceeded
hier mal mein script
#include<File.au3> ;ermitteln der menge der zeilen (nich elegant ich weiss ^^)
dim $zaehlen
_filereadtoarray("village.txt", $zaehlen)
msgbox(0, "test", $zaehlen[0]) ;ausgabe weil ich was testen wollte
dim $village
Dim $map[100][100] ;das array in das die verarbeiteten datensätze gespeichert werden sollen
For $i = 1 to ($zaehlen[0] )
$village = FileOpen("village.txt", 0)
$x = FileReadLine($village, $i)
$y = StringSplit($x, ",")
if $i > 500 then ;die schleife hatte ich reingesetzt um zu sehen in welcher zeile der fehler auftritt
msgbox(0, $i, $x)
EndIf
If $y[3] <600 and $y[3]>500 and $y[4]<900 and $y[4]>800 Then
$y[3] = $y[3] - 500
$y[4] = $y[4] - 800
$map[$y[3]][$y[4]] = ("id" & $y[1] & "--" & "name" & $y[2] & "punkte" & $y[6] & "uID" & $y[5])
EndIf
Next
msgbox(0, "test", $map[31][64]) ;ausgabe des wertes für x = 531 y = 864
Alles anzeigen
vielleicht kann mir ja wer weiterhelfen