Auch ein StringBetween Problem..

11/07/2010 00:21 rexfox#1
also habe untenstehenden code... und es kommt immer der fehler:
Subscript used with non array varriable.

woran könnte es liegen^^ die youtube seite ist eig geöffnet und bei nem andren code hat genau das gefunzt..

alle includes sind eig gemacht...
weis es net^^
sagt wenn ihr mehr infos braucht^^


PHP Code:
Func settime()
$oForm=_IEAttach("YouTube")
$sHTML _IEDocReadHTML ($oForm)
$videotime_stringbetween($sHTML,'"length_seconds":',',')

GUICtrlSetData($lzeit,$videotime[0],0)
EndFunc 
11/07/2010 00:59 PenGuin :O#2
D.h. er findet keinen Wert durch Stringbetween.
11/07/2010 01:00 lolkop#3
von welchem video sprichst du denn?

poste mal den videolink bitte
11/07/2010 01:03 rexfox#4
ähm @ lolkop war ein zufälliges video.. ich hoffe mal das ist egal
aber wenn du willlst trotzdem ^^
"http://www.youtube.com/watch?v=JvGktPaDAPM"

und @pinguin94 woran könnte das liegn?
11/07/2010 01:08 lolkop#5
also der von mir [Only registered and activated users can see links. Click Here To Register...] gepostete weg funktioniert auch mit diesem video =)
11/07/2010 01:18 rexfox#6
okay...
ich kann mal gucken ob ichs raff aber ist komplizierter wies aussieht
kann die befehle von dort nicht^^

PHP Code:
$length StringRegExp(BinaryToString(InetRead('http://www.youtube.com/watch?v=m7zUlIITPps')), '&length_seconds=(.*?)&',1
aber thx^^


und was kommt das als variable raus?^^
en array oder einfach nur text?
11/07/2010 01:23 lolkop#7
guck dir die nächste zeile an und du siehst es =)

Edit:
btw wenn du dir mal die _StringBetween funktion anschaust, wirst du sehen, das die ja auch über StringRegExp definiert ist...
Code:
Func _StringBetween($s_String, $s_Start, $s_End, $v_Case = -1)

	; Set case type
	Local $s_case = ""
	If $v_Case = Default Or $v_Case = -1 Then $s_case = "(?i)"

	; Escape characters
	Local $s_pattern_escape = "(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)"
	$s_Start = StringRegExpReplace($s_Start, $s_pattern_escape, "\\$1")
	$s_End = StringRegExpReplace($s_End, $s_pattern_escape, "\\$1")

	; If you want data from beginning then replace blank start with beginning of string
	If $s_Start = "" Then $s_Start = "\A"

	; If you want data from a start to an end then replace blank with end of string
	If $s_End = "" Then $s_End = "\z"

	Local $a_ret = StringRegExp($s_String, "(?s)" & $s_case & $s_Start & "(.*?)" & $s_End, 3)

	If @error Then Return SetError(1, 0, 0)
	Return $a_ret
EndFunc   ;==>_StringBetween
habe quasi nur ein par nutzlose aktionen und definitionen eingespart, und direkt über stringregexp das ganze gelöst
11/07/2010 01:36 rexfox#8
hm achso okay das heißt ich könnte auch bei stringbetween bleiben?^^

weil das finde ich ehrlich gesagt einfacher :D
11/07/2010 01:38 lolkop#9
sich könntest du das. kannst ja deine pattern einfach durch meine ersetzen...
auch wenn ich nicht so ganz verstehe was darann einfacher ist :P
11/07/2010 01:52 rexfox#10
weil bei dir 3 befehle ineinander geschachtelt sind :D drei die ich net gut kenn^^

und stringbetween hab ich halt schon eher verstanden.. funzt trotzdem net kp

ich geb mal ne andre stelle wo das gleiche problem ist vllt sieht man da was^^

PHP Code:
$oForm=_IEAttach("YouTube")
$sHTML _IEDocReadHTML ($oForm)
$seitenname_stringbetween($sHTML,'<meta property="og:url" content="http://','"')
$liedname=_stringbetween($sHTML,'<meta property="og:title" content="','"')


_GUICtrlListView_AddItem($List1,$seitenname[0]&"--"&$liedname[0]) 


das mit dem _GUICtrlListView_AddItem will auch net^^ hab damit noch nie gearbeitet und die autoithilfe gibt net sehr viel her..


zwei probleme suche nach lösungen XD
11/07/2010 02:19 PenGuin :O#11
BinaryToString(InetRead('http://www.youtube.com/watch?v=m7zUlIITPps'))

gitb einfach nur den Quellcode aus, von der URL ;)
Nichts anderes, was _InetGetSource auch macht.

Und regex = Regular Expression:

Regulärer Ausdruck ? Wikipedia
11/07/2010 12:58 rexfox#12
wie kann ich den webseitennamen rausbekommen? weil da müsste ich doch auch ein stringbetween einsetzten? also im html code steht des ja auch^^
oder gibt dafür einen befehl?
thx für antworten^^
11/07/2010 17:18 rexfox#13
ich komme echt net weiter egal was ich mache bei stringbetween kommt immer 0 raus..
und wie geht des mit list view in autoit?

biiitteee antworten :D will weiterkommen



€ mit list hat sich geklärt :D aber hab ne neue frage: wie mache ich zusammengesetzte variablen also zb: $i=1
while(1)
$item($i)=
$i=$i+1
wend

also es soll immer wieder $item heißen, aber mit einer zahl hinten dran,nur die zahl soll sich ändern...
und wie kann ich ein list item auswählen? also dass der benutzer das anklickt und es dann verwendet wird...
HEEEEEEEEEEEEEEEEELLLLLLLLLLLLPPPPPPPPPPPPPPPP
11/07/2010 20:55 PenGuin :O#14
Code:
Dim $i = 1

While 1
Sleep(50)
MsgBox(0,"", "Item" & $i)
$i += 1
WEnd
keine Ahnung was du meinst, oder meinste:

Code:
Dim $i = 1

While 1
Sleep(50)
$Item = "Item" & $i
$i += 1
WEnd
11/07/2010 21:01 rexfox#15
nein^^ die variable soll praktisch aus zwei variablen bestehen.. also aus einer zahl, die eine zweite variable hervorgibt
wie oben gesagt:
$i=0
$item+($i)= <--$i soll $item ergänzen und zwar um eine zahl.... das man unendlich ähnliche variablen erstellen kann...
$i=$i+1


und hab immer noch das problem mit dem stringbetween...


PHP Code:
$oForm=_IEAttach("YouTube")

    
$sHTML _IEDocReadHTML ($oForm)
    
GUICtrlSetData($Iseite,"www.youtube.com"&_stringbetween($sHTML,'<META content=http://','  property="og:url">'))
    
GUICtrlSetData($Iname,_stringbetween($sHTML,'<H1 id=watch-headline-title><SPAN dir=ltr id=eow-title title="','">'))