Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 17:56

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Error: Subscript used with non-Array variable

Discussion on Error: Subscript used with non-Array variable within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Mar 2010
Posts: 91
Received Thanks: 3
Error: Subscript used with non-Array variable

Ich bin gerade dabei ein Script zu machen, bei dem ich mehr Überblick über das Lets Play schauen bekomme. Nur jetzt häng ich an einer Fehlermeldung: Subscript used with non-Array variable. Der Fehler soll in Zeile 89 sein..
Ich hab zwar schon gegooglet, aber da hab ich keine konkrete antwort auf mein Problem bekommen..
In der Schleife in Zeile 88 Soll das Script überprüfen, ob ein Wert eingetragen ist und ob der noch aktiv ist, wenn es einen eintrag gibt, welcher noch aktiv ist, dann soll das in die Tabelle eingetragen werden.
Ich würde mich freuen, wenn sich jemand das mal anschauen könnte (und eventuell noch andere Verbesserungsvorschlage machen könnte, ich lerne ja noch )
Hier der Code:
Code:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.6.1
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Gui = GUICreate("YT LP Watch", 300, 300, 500, 250)
$NewSerieLabel = GUICtrlCreateLabel("Neue Serie eintragen:", 10, 10, 110, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$NewSerieInput = GUICtrlCreateInput("", 10, 30, 110, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$NewLPerLabel = GUICtrlCreateLabel("LPer der Serie:", 130, 10, 110, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$NewLPerInput = GUICtrlCreateInput("", 130, 30, 110, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$NewSerieButton = GUICtrlCreateButton("Eintragen", 10, 55, 70, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")

$OutSerieLabel = GUICtrlCreateLabel("Serie als beendet eintragen (ID):", 10, 80, 170, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$OutSerieInput = GUICtrlCreateInput("", 10, 100, 110, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$OutSerieButton = GUICtrlCreateButton("Abschließen", 10, 125, 70, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")

$DeleteSerieLabel = GUICtrlCreateLabel("Alte Serie austragen (ID):", 10, 150, 140, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$DeleteSerieInput = GUICtrlCreateInput("", 10, 170, 110, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$DeleteSerieButton = GUICtrlCreateButton("Austragen", 10, 195, 70, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")

$Weiter = GUICtrlCreateButton("Zu den Serien ->", 10, 260, 100, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")

IniWrite(@scriptdir & "/IDs.ini","ID","0","")

GUISetState()

While 1
	$msg = GUIGetMsg()
	Select
		Case $msg = -3
			Exit
		Case $msg = $NewSerieButton
			$New = GUICtrlRead($NewSerieInput)
			$NewLPer = GUICtrlRead($NewLPerInput)
				While 1
					$FreeId = Random(1,800,1)
					$EmptyCheck = IniRead(@scriptdir & "/IDs.ini","ID",$FreeId,"")
					If $EmptyCheck == "" Then ExitLoop
				Wend
				IniWrite(@scriptdir & "/IDs.ini","ID",$FreeId,$New)
				IniWrite(@scriptdir & "/IDs.ini","Active",$FreeId,"y")
				IniWrite(@scriptdir & "/IDs.ini","Lper",$FreeId,$NewLper)
				IniWrite(@scriptdir & "/IDs.ini","Folge Momentan",$FreeId,"0")
				IniWrite(@scriptdir & "/IDs.ini","Folge Angesehen",$FreeId,"0")
			Case $msg = $OutSerieButton
				$Out = GUICtrlRead($OutSerieInput)
				IniWrite(@scriptdir & "/IDs.ini","Active",$Out,"n")
			Case $msg = $DeleteSerieButton
				$Del = GUICtrlRead($DeleteSerieInput)
				IniDelete(@scriptdir & "/IDs.ini","Active",$Del)
				IniDelete(@scriptdir & "/IDs.ini","Lper",$Del)
				IniDelete(@scriptdir & "/IDs.ini","ID",$Del)
				IniDelete(@scriptdir & "/IDs.ini","Folge Momentan",$Del)
				IniDelete(@scriptdir & "/IDs.ini","Folge Angesehen",$Del)
			Case $msg = $Weiter
				ExitLoop
	EndSelect
WEnd


GUIDelete($Gui)
$Gui = GUICreate("YT LP Watch", 300, 300, 500, 250, -1, $WS_EX_ACCEPTFILES)
Dim $Item
$liste = GUICtrlCreateListView(" ID |   Serie   | Lets Player ", 10, 10, 280, 230)
$ID = 1
#cs
Zeile 88: 
#ce
While 1
	$Item[$ID] = IniRead(@scriptdir & "/IDs.ini","ID",$ID,"")
	$Item[$ID] = IniRead(@scriptdir & "/IDs.ini","Active",$ID,"n")
	$ID +=1
	Wend
	GUISetState()
While 1
	$msg = GUIGetMsg()
	Select
		Case $msg = -3
			Exit
	EndSelect	
WEnd
piper332 is offline  
Old 09/16/2012, 20:35   #2
 
Achat's Avatar
 
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
Code:
(92) : ==> Subscript used with non-Array variable.:
$Item[$ID] = IniRead(@scriptdir & "/IDs.ini","ID",$ID,"")
$Item^ ERROR
Irgendwie verstehe ich dein Skript nicht.
Der Fehler scheint bei dem Array zu liegen.

Code:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.6.1
 Author:         myName

 Script Function:
	Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Gui = GUICreate("YT LP Watch", 300, 300, 500, 250)
$NewSerieLabel = GUICtrlCreateLabel("Neue Serie eintragen:", 10, 10, 110, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$NewSerieInput = GUICtrlCreateInput("", 10, 30, 110, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$NewLPerLabel = GUICtrlCreateLabel("LPer der Serie:", 130, 10, 110, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$NewLPerInput = GUICtrlCreateInput("", 130, 30, 110, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$NewSerieButton = GUICtrlCreateButton("Eintragen", 10, 55, 70, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")

$OutSerieLabel = GUICtrlCreateLabel("Serie als beendet eintragen (ID):", 10, 80, 170, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$OutSerieInput = GUICtrlCreateInput("", 10, 100, 110, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$OutSerieButton = GUICtrlCreateButton("Abschließen", 10, 125, 70, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")

$DeleteSerieLabel = GUICtrlCreateLabel("Alte Serie austragen (ID):", 10, 150, 140, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$DeleteSerieInput = GUICtrlCreateInput("", 10, 170, 110, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")
$DeleteSerieButton = GUICtrlCreateButton("Austragen", 10, 195, 70, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")

$Weiter = GUICtrlCreateButton("Zu den Serien ->", 10, 260, 100, 20)
guictrlsetfont(-1,8,800,0,"Comic Sans MS")

IniWrite(@scriptdir & "/IDs.ini","ID","0","")

GUISetState()

While 1
	$msg = GUIGetMsg()
	Select
		Case $msg = -3
			Exit
		Case $msg = $NewSerieButton
			$New = GUICtrlRead($NewSerieInput)
			$NewLPer = GUICtrlRead($NewLPerInput)
				While 1
					$FreeId = Random(1,800,1)
					$EmptyCheck = IniRead(@scriptdir & "/IDs.ini","ID",$FreeId,"")
					If $EmptyCheck == "" Then ExitLoop
				Wend
				IniWrite(@scriptdir & "/IDs.ini","ID",$FreeId,$New)
				IniWrite(@scriptdir & "/IDs.ini","Active",$FreeId,"y")
				IniWrite(@scriptdir & "/IDs.ini","Lper",$FreeId,$NewLper)
				IniWrite(@scriptdir & "/IDs.ini","Folge Momentan",$FreeId,"0")
				IniWrite(@scriptdir & "/IDs.ini","Folge Angesehen",$FreeId,"0")
			Case $msg = $OutSerieButton
				$Out = GUICtrlRead($OutSerieInput)
				IniWrite(@scriptdir & "/IDs.ini","Active",$Out,"n")
			Case $msg = $DeleteSerieButton
				$Del = GUICtrlRead($DeleteSerieInput)
				IniDelete(@scriptdir & "/IDs.ini","Active",$Del)
				IniDelete(@scriptdir & "/IDs.ini","Lper",$Del)
				IniDelete(@scriptdir & "/IDs.ini","ID",$Del)
				IniDelete(@scriptdir & "/IDs.ini","Folge Momentan",$Del)
				IniDelete(@scriptdir & "/IDs.ini","Folge Angesehen",$Del)
			Case $msg = $Weiter
				ExitLoop
	EndSelect
WEnd


GUIDelete($Gui)
$Gui = GUICreate("YT LP Watch", 300, 300, 500, 250, -1, $WS_EX_ACCEPTFILES)
Dim $Item ;<---- Array ohne Elemente definiert?? WTF?
;Dim [Const] $array[subscript 1]...[subscript n] [ = initializer ]
$liste = GUICtrlCreateListView(" ID |   Serie   | Lets Player ", 10, 10, 280, 230)
$ID = 1
#cs
Zeile 88:
#ce
For $i = 0 To UBound($Item)-1 ;Bei Arrays benutzt man normalerweise FOR - Schleifen ;)
	$Item[$ID] = IniRead(@scriptdir & "/IDs.ini","ID",$ID,"")
	$Item[$ID] = IniRead(@scriptdir & "/IDs.ini","Active",$ID,"n")
Next
	GUISetState()
While 1
	$msg = GUIGetMsg()
	Select
		Case $msg = -3
			Exit
	EndSelect
WEnd
MfG

€dit:
PS:
Achat is offline  
Reply


Similar Threads Similar Threads
subscript used with non-array variable
06/09/2013 - AutoIt - 6 Replies
Hey Leute, ich bin vor kurzem auf AutoIT gestoßen und interessiere mich für die ImageSearch Funktion, also habe ich mir ein kleines Script gebastelt. Das Script soll nach einem bestimmten Bild suchen und wenn dieses Bild nicht gefunden wurde die F1 Taste drücken (F1 generiert in einem Spiel für welches ich das Script nutzen will ein neues Bild). Das Script soll dann solange F1 drücken, bis ein bestimmtes Bild gefunden wurde, und dann eine MsgBox anzeigen. Da es mein erstes kleines mini...
[HELP] _FTP_ListToArrayEx Subscript used with non Array variable
02/29/2012 - AutoIt - 2 Replies
Ich habe das problem das bei meinem Script der Fehler : "Subscript used with non Array variable" auftaucht. Der Fehler ist angeblich auf Linie 25 aber _FTP_ListToArrayEx müsste eigentlich ein Array zurückgeben sogar bei einem Fehler und ich bin mir sicher das die Connection Stimmt. Ich hoffe ihr könnt mir Helfen Ja ich weis ich könnte das auch kürzer machen aber für`n Momment is es so okey also bitte unterlasst diesbezügliche Kommentare Script: #include-once
Problem error: Subscript used whit non-Array variable "
08/26/2010 - Last Chaos - 1 Replies
hey leute, seitdem mein laptop ein windows update gemacht hat funktioniert der ultra bot nicht. es dann kommt immer die fehlermeldung " error: Subscript used whit non-Array variable " vor diesem update ging der bot noch.
beliebiege variable aus array
04/21/2010 - AutoIt - 3 Replies
hallo zusammen. ich arbeite zur zeit an einem kleinen programm und dafür ist es nötig, dass autoit vergleicht, ob eine bestimmte variable innerhalb eines array vorhanden ist. das array enthält zum bsp variabeln mit den werten: 1, 2 und 3. jetzt soll überprüft werden, ob die variable a im array ist (a=1, z.B.). das array hab ich natürlich schon erstellt (1dimensional), nur der abgleich ist knifflig. ich habs mit if $a= $array_items Then $score= $score+1 EndIf



All times are GMT +2. The time now is 17:56.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.