|
You last visited: Today at 00:01
Advertisement
StringRegExp - bestimmte Sachen ändern
Discussion on StringRegExp - bestimmte Sachen ändern within the AutoIt forum part of the Coders Den category.
06/04/2011, 18:54
|
#1
|
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
|
StringRegExp - bestimmte Sachen ändern
Hi epvpers,
ich habe vor nicht allzu langer Zeit einen Thread gepostet indem es um StringRegExp ging und wie man damit was aus einem Quelltext ausliest..
So jz wollte ich dazu fragen wie man es nun anstellt aus:
Code:
http://www.youtube.com/embed/r_JxFNU0F-Q?rel=0
zu das macht:
Code:
http://www.youtube.com/watch?v=r_JxFNU0F-Q
d.h Das "embed/" und das "?rel=0" muss weg...
dafür muss aber ein "watch?v=" hinzu...
Hoffe es funktioniert..
MfG Ludder231
|
|
|
06/05/2011, 21:07
|
#2
|
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
|
Keiner ne ahnung?? :/ -.-
|
|
|
06/05/2011, 21:32
|
#3
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by Ludder231
Keiner ne ahnung?? :/ -.-
|
PHP Code:
$var="http://www.youtube.com/embed/r_JxFNU0F-Q?rel=0"
$var=Stringreplace($var,"?rel=0","")
$var=Stringreplace($var,"embed/","watch?v=")
|
|
|
06/06/2011, 09:21
|
#4
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
über regexp könnte man das ganze so lösen:
Code:
$string = 'http://www.youtube.com/embed/r_JxFNU0F-Q?rel=0'
$new = StringRegExpReplace($string, 'http://www.youtube.com/embed/(.+)\?rel=0', 'http://www.youtube.com/watch?v=${1}')
ConsoleWrite($new&@CRLF)
|
|
|
06/06/2011, 11:57
|
#5
|
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
|
Danke euch beiden aber ich hab keine ahung wie ich das in mein Script einfügen/anpassen soll, da ich noch nicht so oft mit StringRegExp et6c. gearbeitet habt...
PHP Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\dokumente und einstellungen\ludder.luca\eigene dateien\facebooktool.kxf
$Form1 = GUICreate("Facebook Tool", 324, 176, 218, 255)
$Input1 = GUICtrlCreateInput("URL", 8, 40, 305, 21)
$Button1 = GUICtrlCreateButton("Check", 80, 72, 75, 25)
$Button2 = GUICtrlCreateButton("Clear", 168, 72, 75, 25)
$Label1 = GUICtrlCreateLabel("Insert the URL and press 'Check' to encode the URL", 8, 8, 312, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$List1 = GUICtrlCreateList("", 0, 104, 324, 75, BitOR($GUI_SS_DEFAULT_LIST,$WS_HSCROLL))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Do
$Msg = GUIGetMsg()
If $Msg == $button1 Then
$len = stringlen(".jpg")
$len2 =stringlen(".jpeg")
$String = StringRegExp(BinaryToString(InetRead(GUICtrlRead($input1))), 'src="http://www.youtube.com/(.*?)"', 3)
$string2 = StringRegExp(BinaryToString(InetRead(GUICtrlRead($input1))), 'content="http://(.*?)"', 3)
$string3 = stringright(binarytostring(inetread(guictrlread($input1))), $len or $len2)
$string4 = StringRegExpReplace($String, 'http://www.youtube.com/embed/(.+)\?rel=0', 'http://www.youtube.com/watch?v=${1}')
If IsArray($String) Then ;youtube
guictrlsetdata($list1, "["&@hour&":"&@min&":"&@sec&"]"&" "&$String[0])
ShellExecute("http://www.youtube.com/" &$String4[0])
elseif IsArray($String2&$string3) Then
guictrlsetdata($list1, "["&@hour&":"&@min&":"&@sec&"]"&" "&$string2[0])
ShellExecute("http://" &$string2[0])
elseif IsArray($String) or isArray($String2&$string3) = 0 Then
MsgBox(16, "Fehler", "Es wurde kein Video oder Bild gefunden!")
endif
endif
if $msg = $button2 Then
guictrlsetdata($input1, "")
EndIf
Sleep(10)
Until $Msg == -3
|
|
|
06/06/2011, 16:51
|
#6
|
elite*gold: 0
Join Date: Jul 2010
Posts: 475
Received Thanks: 130
|
Wenn ich dich jetzt nicht falsch verstanden habe dann so :
PHP Code:
#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <GUIListBox.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form=c:\dokumente und einstellungen\ludder.luca\eigene dateien\facebooktool.kxf $Form1 = GUICreate("Facebook Tool", 324, 176, 218, 255) $Input1 = GUICtrlCreateInput("URL", 8, 40, 305, 21) $Button1 = GUICtrlCreateButton("Check", 80, 72, 75, 25) $Button2 = GUICtrlCreateButton("Clear", 168, 72, 75, 25) $Label1 = GUICtrlCreateLabel("Insert the URL and press 'Check' to encode the URL", 8, 8, 312, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") $List1 = GUICtrlCreateList("", 0, 104, 324, 75, BitOR($GUI_SS_DEFAULT_LIST, $WS_HSCROLL)) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ###
Do $Msg = GUIGetMsg() If $Msg == $Button1 Then $len = StringLen(".jpg") $len2 = StringLen(".jpeg")
$String = StringRegExp(BinaryToString(InetRead(GUICtrlRead($Input1))), 'src="http://www.youtube.com/(.*?)"', 3) $string2 = StringRegExp(BinaryToString(InetRead(GUICtrlRead($Input1))), 'content="http://(.*?)"', 3) $string3 = StringRight(BinaryToString(InetRead(GUICtrlRead($Input1))), $len Or $len2) $string4 = StringRegExpReplace($String, 'http://www.youtube.com/embed/(.+)\?rel=0', 'http://www.youtube.com/watch?v=${1}') $String = StringReplace($String, "?rel=0", "") $String = StringReplace($String, "embed/", "watch?v=")
If Not IsArray($String) Then ;youtube GUICtrlSetData($List1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $String[0]) ShellExecute("http://www.youtube.com/" & $string4[0])
ElseIf IsArray($string2 & $string3) Then GUICtrlSetData($List1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $string2[0]) ShellExecute("http://" & $string2[0])
ElseIf IsArray($String) Or IsArray($string2 & $string3) = 0 Then MsgBox(16, "Fehler", "Es wurde kein Video oder Bild gefunden!")
EndIf EndIf
If $Msg = $Button2 Then GUICtrlSetData($Input1, "") EndIf
Sleep(10) Until $Msg == -3
... Da hat ja jemand gelernt mit Variablen zu arbeiten =)
Lg
|
|
|
06/06/2011, 19:08
|
#7
|
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
|
Quote:
Originally Posted by V8II
Wenn ich dich jetzt nicht falsch verstanden habe dann so :
... Da hat ja jemand gelernt mit Variablen zu arbeiten =)
Lg
|
Nee nicht ganz, weil er öffnet ja youtube mit dem "www.youtube/embed/dhasiopd?rel=0" und er soll das "?rel=0" wegmachen und das "embed/" durch "watch?v=" ersetzen, damit das Video nicht mehr auf vollbild ist und man auf die direkte Youtubeseite gelangt.
D.h: Man müsste bei shellexecute iwie noch was hinmachen...?
PHP Code:
ShellExecute("http://www.youtube.com/" &$string[0])
So "addiert" er ja nur "embed/blabla?rel=0"(was ich aus dem $string ausgelsenen habe) auf das "www.youtube.com/" rauf...
Aber er soll das ja noch umändern damit das nicht emhr Vollbild ist...
P.S: Ja hab ich
|
|
|
06/06/2011, 21:12
|
#8
|
elite*gold: 0
Join Date: Jul 2010
Posts: 475
Received Thanks: 130
|
Das wird doch eh durch das
PHP Code:
********$String*=*StringReplace($String,*"embed/",*"watch?v=")
erledigt oder?
P.S: Du musst es nicht per ShellExecute machen es geht auch per _IECreate und _IENavigate.
Edit: Ich sehe gerade dass ja gar nicht $String sondern $string4[0] aufgerufen wird. Einfach das StringRegExpReplace wegmachen und Shadows Lösung einfügen, die Variable $var in Shadows Script musst du halt noch in $string4[0] umbenennen. Ich kann es dir nicht machen, vom IPod ist es doch recht schwer ...
|
|
|
06/06/2011, 21:18
|
#9
|
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
|
Quote:
Originally Posted by V8II
Wenn ich dich jetzt nicht falsch verstanden habe dann so :
PHP Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=c:\dokumente und einstellungen\ludder.luca\eigene dateien\facebooktool.kxf
$Form1 = GUICreate("Facebook Tool", 324, 176, 218, 255)
$Input1 = GUICtrlCreateInput("URL", 8, 40, 305, 21)
$Button1 = GUICtrlCreateButton("Check", 80, 72, 75, 25)
$Button2 = GUICtrlCreateButton("Clear", 168, 72, 75, 25)
$Label1 = GUICtrlCreateLabel("Insert the URL and press 'Check' to encode the URL", 8, 8, 312, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$List1 = GUICtrlCreateList("", 0, 104, 324, 75, BitOR($GUI_SS_DEFAULT_LIST, $WS_HSCROLL))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Do
$Msg = GUIGetMsg()
If $Msg == $Button1 Then
$len = StringLen(".jpg")
$len2 = StringLen(".jpeg")
$String = StringRegExp(BinaryToString(InetRead(GUICtrlRead($Input1))), 'src="http://www.youtube.com/(.*?)"', 3)
$string2 = StringRegExp(BinaryToString(InetRead(GUICtrlRead($Input1))), 'content="http://(.*?)"', 3)
$string3 = StringRight(BinaryToString(InetRead(GUICtrlRead($Input1))), $len Or $len2)
$string4 = StringRegExpReplace($String, 'http://www.youtube.com/embed/(.+)\?rel=0', 'http://www.youtube.com/watch?v=${1}')
$String = StringReplace($String, "?rel=0", "")
$String = StringReplace($String, "embed/", "watch?v=")
If Not IsArray($String) Then ;youtube
GUICtrlSetData($List1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $String[0])
ShellExecute("http://www.youtube.com/" & $string4[0])
ElseIf IsArray($string2 & $string3) Then
GUICtrlSetData($List1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $string2[0])
ShellExecute("http://" & $string2[0])
ElseIf IsArray($String) Or IsArray($string2 & $string3) = 0 Then
MsgBox(16, "Fehler", "Es wurde kein Video oder Bild gefunden!")
EndIf
EndIf
If $Msg = $Button2 Then
GUICtrlSetData($Input1, "")
EndIf
Sleep(10)
Until $Msg == -3
... Da hat ja jemand gelernt mit Variablen zu arbeiten =)
Lg
|
Quote:
Originally Posted by V8II
Das wird doch eh durch das
PHP Code:
********$String*=*StringReplace($String,*"embed/",*"watch?v=")
erledigt oder?
P.S: Du musst es nicht per ShellExecute machen es geht auch per _IECreate und _IENavigate.
Edit: Ich sehe gerade dass ja gar nicht $String sondern $string4[0] aufgerufen wird. Einfach das StringRegExpReplace wegmachen und Shadows Lösung einfügen, die Variable $var in Shadows Script musst du halt noch in $string4[0] umbenennen. Ich kann es dir nicht machen, vom IPod ist es doch recht schwer ...
|
Aber ich bekomms nicht hin es in mein Script zu benutzen zmd funktioniert es nie
|
|
|
06/06/2011, 22:00
|
#10
|
elite*gold: 52
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
|
Änder die Variable $string4 zu $string.
|
|
|
06/06/2011, 22:15
|
#11
|
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
|
Quote:
Originally Posted by BlackHybrid
Änder die Variable $string4 zu $string.
|
Wenn ich das mache kommt aber nur "Http:www.youtube.com"
|
|
|
06/06/2011, 23:11
|
#12
|
elite*gold: 52
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
|
Sorry habs mir net genau angekuggt.
Hier ist nochmal eine Alternative:
PHP Code:
#include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <GUIListBox.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #Region ### START Koda GUI section ### Form=c:\dokumente und einstellungen\ludder.luca\eigene dateien\facebooktool.kxf $Form1 = GUICreate("Facebook Tool", 324, 176, 218, 255) $Input1 = GUICtrlCreateInput("URL", 8, 40, 305, 21) $Button1 = GUICtrlCreateButton("Check", 80, 72, 75, 25) $Button2 = GUICtrlCreateButton("Clear", 168, 72, 75, 25) $Label1 = GUICtrlCreateLabel("Insert the URL and press 'Check' to encode the URL", 8, 8, 312, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") $List1 = GUICtrlCreateList("", 0, 104, 324, 75, BitOR($GUI_SS_DEFAULT_LIST, $WS_HSCROLL)) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ###
Do $Msg = GUIGetMsg() If $Msg == $Button1 Then $len = StringLen(".jpg") $len2 = StringLen(".jpeg") $string = "http://www.youtube.com/embed/r_JxFNU0F-Q?rel=0" $string = StringSplit($string, "embed/",1) $string = $string[1]&"watch?v="&$string[2] $string2 = StringRegExp(BinaryToString(InetRead(GUICtrlRead($Input1))), 'content="http://(.*?)"', 3) $string3 = StringRight(BinaryToString(InetRead(GUICtrlRead($Input1))), $len Or $len2)
If Not IsArray($String) Then ;youtube GUICtrlSetData($List1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $String[0]) ShellExecute("http://www.youtube.com/" & $string)
ElseIf IsArray($string2 & $string3) Then GUICtrlSetData($List1, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "]" & " " & $string2[0]) ShellExecute("http://" & $string2[0])
ElseIf IsArray($String) Or IsArray($string2 & $string3) = 0 Then MsgBox(16, "Fehler", "Es wurde kein Video oder Bild gefunden!")
EndIf EndIf
If $Msg = $Button2 Then GUICtrlSetData($Input1, "") EndIf
Sleep(10) Until $Msg == -3
|
|
|
06/07/2011, 01:54
|
#13
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
würde noch empfehlen den html-code der seite nur einmalig zu laden.
die ganzen regexp funktionen kannste auch in einem schritt einlesen, so sparste dir noch jedes mal die regexp engine starten zu müssen.
zusätzlich kannst du noch alle funde in der listbox listen, und dann den gewünschten treffer in der listbox aussuchen und starten
das ganze könnte dann zb so aussehen:
Code:
$Form1 = GUICreate("Facebook Tool", 324, 176, 218, 255)
$Input1 = GUICtrlCreateInput("URL", 8, 40, 305, 21)
$Button1 = GUICtrlCreateButton("Check", 80, 72, 75, 25)
$Button2 = GUICtrlCreateButton("Clear", 168, 72, 75, 25)
$Label1 = GUICtrlCreateLabel("Insert the URL and press 'Check' to encode the URL", 8, 8, 312, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$List1 = GUICtrlCreateList("", 0, 104, 324, 75)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $button1
$found = False
$content = BinaryToString(InetRead(GUICtrlRead($input1)))
$test = StringRegExp($content, '(?:src="(http://www.youtube.com/[[:graph:]]*?)")|(?:(http://www.youtube.com/embed/[[:graph:]]*?)\?rel=0)|(?:content="(http://[[:graph:]]*?)")', 3)
For $i=0 To UBound($test)-1
If $test[$i]<>"" Then
GUICtrlSetData($list1, "["&@hour&":"&@min&":"&@sec&"] found: "&StringReplace($test[$i], 'embed/', 'watch?v='))
$found = True
EndIf
Next
If Not $found Then MsgBox(16, "Fehler", "Es wurde kein Video oder Bild gefunden!")
Case $button2
guictrlsetdata($input1, "")
Case $list1
$item = StringTrimLeft(GUICtrlRead($list1), 18)
If $item <> "" Then ShellExecute($item)
EndSwitch
WEnd
|
|
|
06/07/2011, 16:01
|
#14
|
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
|
Quote:
Originally Posted by BlackHybrid
Sorry habs mir net genau angekuggt.
Hier ist nochmal eine Alternative:
....
|
Ähm aber bei dir ist es ja eine Konstante adresse...Es wird ja eine mit Inetread rausgesucht aus einem Quellcode, also bringt mir das nciht viel ...
Trozdem danke
|
|
|
06/07/2011, 16:07
|
#15
|
elite*gold: 52
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
|
Vielleicht kannst du den Link mit StringBetween rausfinden. Dann hast du deinen String.
|
|
|
 |
|
Similar Threads
|
[HOW TO]Schmiedrate für bestimmte Items ändern
03/20/2010 - Metin2 PServer Guides & Strategies - 8 Replies
Nabend,
da schon wieder 2 neue Threads kamen wie man die Schmiedrate bei Items ändert sag ich hiers nochmal kurz und knapp.
Ihr öffnet Navicat , verbindet auf eure Datenbank.
Ihr geht auf die Tabelle Links => Player
Wenn die Tabelle Player sie geöffnet hab öffnet ihr die untergeordnete Tabelle => refine_proto auf
So nun sucht ihr eure ITEMID und ändert ganz rechts die letzte Spalte auf eure gewünschte Prozentchance der Schmiedmöglichkeit.
|
Bestimmte Sachen aus Truhe/Geschenk
12/24/2009 - Metin2 Private Server - 3 Replies
Hallo weiß jemand wo/wie ich das einstelle, dass NUR ein bestimmtes Item aus einem Geschenk/Truhe/Geldtasche kommt (5.Boni)???
|
[frage]pet bestimmte sachen aufsammen lassen
03/30/2009 - Flyff Private Server - 7 Replies
Hi leutz,
weis nicht ob schon mal jemand gefragt hat, aber ist es möglich das das pet nur bestimmte sachen auf sammelt ??? weil hab schon paar mal in fame welche gesehen bei denen nachm aoe nur noch meatsalats und icecream liegen geblieben sind.
|
All times are GMT +1. The time now is 00:02.
|
|