Ich würde außerdem noch gerne die Links zu den Profilen der Mods in den Array einlesen, habe hier schon selbst was versucht (kenne mich mit RegExp nicht so aus -.-):
Code:
#include <Array.au3>
$asSectionMod=BuildSectionModArray()
_ArrayDisplay($asSectionMod)
Func BuildSectionModArray()
Local $array,$i
Local $regexp = StringRegExp(BinaryToString(InetRead("http://j.mp/mods-sections")), 'target="_blank">([^/]*?)<\/a><\/td><td><a href=.*? target="_blank">(.*?)<\/a> <\/td>', 3), $array[UBound($regexp)/2][3]
FileWrite('regexp.txt',$regexp)
For $i=0 To UBound($regexp)-1 Step 2
$array[$i/2][0] = $regexp[$i]
$array[$i/2][1] = StringReplace(StringRegExpReplace($regexp[$i+1], '<\/a> <a href=.*? target="_blank">', ', '),'&','')
Next
_ArrayDisplay($array)
Local $regexp = StringRegExp(BinaryToString(InetRead("http://j.mp/mods-sections")), '<a href="(http://www.elitepvpers.com/forum/members/\d.*?.html)" target="_blank">(.*?)</a>', 3)
ReDim $array[Ubound($array)+Ubound($regexp)][3]
for $i = 0 to UBound($regexp)-1 step 2
$array[$i/2][2]=$regexp[$i]
Next
Return $array
EndFunc
Es werden zwar Links zu den Profilen zurückgegeben, aber leider stimmen die nicht mit dem Namen überein. Wäre cool, wenn du mir da auch noch helfen könntest.
Danke nochmal an alle, die sich am Thread beteiligt haben.
EDIT4:
Also es funktioniert, aber in manchen Teilen der Tabelle gibt es mehr als einen Mod, meine Funktion
Code:
Func _EPVP_STAFF()
local $sHTML=BinaryToString(InetRead("http://j.mp/mods-sections"))
local $asTable=_StringBetween($sHTML,'<img src="http://www.elitepvpers.com/forum/images/teamicons/relaunch/moderator.png" border="0" alt="" class="tcattdimgresizer" ','by StG')
$sHTML=$asTable[0]
Local $asRegexp = StringRegExp($sHTML, '<a href=(.*?) target="_blank">([^/]*?)</a></td><td><a href="(.*?).html" target="_blank">([^/]*?)</a>', 3)
local $asReturn[Ubound($asRegexp)][4],$iLoop,$asReturnFormatted[1][4] =[['ThreadLink','ThreadName','ModProfileLink','ModName']]
for $i = 0 To UBound($asRegexp)-5 step 4
$asThreadLink=_StringBetween($asRegexp[$i],'<a href="','"')
$asThreadLink=StringRegExp($asRegexp[$i],'http://www.elitepvpers.com/forum/[^members](.*)',3)
If IsArray($asThreadLink) Then
$asReturn[$i][0]='http://www.elitepvpers.com/forum/'&$asThreadLink[0]
EndIf
$asReturn[$i][1]=StringReplace($asRegexp[$i+1],'&','')
$asReturn[$i][2]=$asRegexp[$i+2]
$asReturn[$i][3]=StringReplace(StringReplace($asRegexp[$i+3],'Α','A'),'Crαnk','')
Next
for $i=0 to UBound($asReturn)-1
If $asReturn[$i][0] <> '' And $asReturn[$i][1] <> '' and $asReturn[$i][2] <> '' and $asReturn[$i][3] <>'' Then
Redim $asReturnFormatted[UBound($asReturnFormatted,1)+1][4]
$asReturnFormatted[Ubound($asReturnFormatted)-1][0]=$asReturn[$i][0]
$asReturnFormatted[Ubound($asReturnFormatted)-1][1]=$asReturn[$i][1]
$asReturnFormatted[Ubound($asReturnFormatted)-1][2]=$asReturn[$i][2]
$asReturnFormatted[Ubound($asReturnFormatted)-1][3]=$asReturn[$i][3]
EndIf
Next
Return $asReturnFormatted
;$asReturn[$x][0]=Threadlink
;$asReturn[$x][1]=Threadname
;$asReturn[$x][2]=Modlink
;$asReturn[$x][3]=Modname
EndFunc
gibt aber immer nur den ersten Mod zurück, der in der Tabelle steht - wie kann ich die Modnamen & ModUrls von allen Mods in einer Zeile auslesen?
#include <array.au3>
$array = BuildSectionModArray()
_ArrayDisplay($array)
Func BuildSectionModArray()
Local $regexp = StringRegExp(BinaryToString(InetRead("http://j.mp/mods-sections")), 'target="_blank">([^/]*?)<\/a><\/td><td>(.*?) <\/td>', 3), $array[UBound($regexp)/2][3]
For $i=0 To UBound($regexp)-1 Step 2
Local $mod = ArrayToString(StringRegExp($regexp[$i+1], '<a href="(.*?)" target="_blank">(.*?)</a>', 3))
$array[$i/2][0] = $regexp[$i]
$array[$i/2][1] = $mod[0]
$array[$i/2][2] = $mod[1]
Next
Return $array
EndFunc
Func ArrayToString($array)
Local $string[2]
For $i=0 To UBound($array)-1 Step 2
$string[1]&=$array[$i]&', '
$string[0]&=$array[$i+1]&', '
Next
Local $return[2]=[StringTrimRight($string[0],2),StringTrimRight($string[1],2)]
Return $return
EndFunc
die arraytostring funktion ist eigentlich überflüssig, und braucht man so natürlich nicht (deshalb auch sehr ineffizient, aber kurz und bündig geschrieben). wollte nur alles sauber gepresst für die _ArrayDisplay funktion ausgeben =)
Func _EPVP_STAFF()
local $iSize,$asReturn1[1][4]
Local $sHTML = _InetReadWinHttp('elitepvpers.com', 'forum/main/1421118-elitepvpers-staff-overview.html')
Local $asRegexp = StringRegExp($sHTML, '<a href="(.*?)" (target="_blank">[^/].*?</a>)</td><td>(<a href=".*?.html)" (target="\w*?">.*?</a>) </td></tr>', 3), $asReturn[UBound($asRegexp)][4]
;<a href="http://www.elitepvpers.com/forum/say-hello/" target="_blank">Say Hello</a></td><td><a href="(http://www.elitepvpers.com/forum/members/.*)" target="_blank">°Status</a> </td></tr>
;[5]|http://www.elitepvpers.com/forum/ion-hacks-bots-cheats-exploits/"|Aion Hacks, Bots, Cheats ; Exploits|http://www.elitepvpers.com/forum/members/296414-darkopm.html|http://www.elitepvpers.com/forum/members/296414-darkopm
_ArrayDisplay($asRegexp)
;~ ReDim $asReturn[Ubound($asReturn)/4]
For $i = 0 To UBound($asReturn) - 5 Step +4
;~ If $i = 0 Then ReDim $asReturn[Round(Ubound($asReturn)/4)][3]
$asReturn[$i / 4][0] = $asRegexp[$i]
Local $asArrayThreadName = StringRegExp($asRegexp[$i + 1], 'target="_blank">([^/].*?)</a>', 3)
Local $asArrayModLink = StringRegExp($asRegexp[$i + 2], 'href="(.*\.html)?', 3)
Local $asArrayModName = StringRegExp($asRegexp[$i + 3], 'target="_blank">(.*?)</a>', 3)
$asReturn[$i / 4][1] = StringReplace(StringReplace(_ArrayToString($asArrayThreadName, ','),'<b>',''),'</b>','')
$asReturn[$i / 4][2] = _ArrayToString($asArrayModLink, ',')
$asReturn[$i / 4][3] = _ArrayToString($asArrayModName, ',')
Next
local $sReturn1
$i=0
Do ;Leere Zeilen werden gelöscht
ReDim $asReturn1[Ubound($asReturn1)+1][4]
$asReturn1[$i][0]=$asReturn[$i][0]
$asReturn1[$i][1]=$asReturn[$i][1]
$asReturn1[$i][2]=$asReturn[$i][2]
$asReturn1[$i][3]=$asReturn[$i][3]
$i+=1
until $asReturn[$i][0] =''
Return $asReturn1
;$asReturn[$x][0]=Threadlink
;$asReturn[$x][1]=Threadname
;$asReturn[$x][2]=Modlink
;$asReturn[$x][3]=Modname
EndFunc ;==>_EPVP_STAFF
Es funktioniert auch soweit alles. Aber wenn es in einer Section mehrere Mods gibt, bekomme ich immer nur eine URL zu einem Modprofil. Die Namen der anderen Mods werden zwar angezeigt, aber nicht deren URL. Was kann man da machen? Geht das überhaupt in einem RegExp oder werden wie bei Lolkop's Beispiel zwei benötigt?
Es funktioniert auch soweit alles. Aber wenn es in einer Section mehrere Mods gibt, bekomme ich immer nur eine URL zu einem Modprofil. Die Namen der anderen Mods werden zwar angezeigt, aber nicht deren URL. Was kann man da machen? Geht das überhaupt in einem RegExp oder werden wie bei Lolkop's Beispiel zwei benötigt?
das mit den mods hatte nur funktioniert, weil ich den rest einfach gelöscht habe.
in der realität will man ja aber ohnehin nicht etwa einen string der modnamen, durch komma getrennt erhalten, sondern ein array von mods (im bestenfall als 2d array inclusive ihrer urls).
wie bereits gesagt hatte ich die funktion mit dem string nur eingebaut, um das ganze schöner ausgeben zu können.
das ganze in einem einzigen befehl auslesen kann deshalb nicht funktionieren, da selbst wenn man es bewerkstelligen könnte, die anzahl unbekannt wäre, und man das ganze nicht wie in meinem beispiel sortieren könnte...
das hauptarray bei meinem beispiel sieht ja so aus:
Code:
[0] = Sektion 0
[1] = string von mods und links 0
[2] = Sektion 1
[3] = string von mods und links 1
[4] = Sektion 2
[5] = string von mods und links 2
[...]
so lässt sich das ganze ja einfach wie in meinem beispiel mit einer for schleife zusammen sortieren.
Code:
[$i*2] entspricht jeweils einer Sektion für alle natürlichen zahlen ab 0, da dies die geraden zahlen sind
[$i*2+1] ist jeweils der nachfolger und somit der string von mods und links
würden wir aber die mods und strings mit einlesen, erhielten wir soetwas:
Code:
[0] = Sektion 0
[1] = link 0
[2] = mod 0
[3] = Sektion 1
[4] = link 1
[5] = mod 1
[6] = link 1
[7] = mod 1
[8] = link 1
[9] = mod 1
[10] = Sektion 2
[11] = link 2
[12] = mod 2
[13] = Sektion 3
[...]
da wir nun nicht wissen, wieviele mods und links wir pro sektion erhalten, können wir unmöglich anfangen das ganze in ein array zu sortieren.
Man kann aber die URL aufrufen und die Modanzahl auslesen
Quote:
Originally Posted by lolkop
da ist es immernoch wesentlich effizienter das ganze über 2 regexp befehle auszulesen, bevor man mehrere seiten läd :P
Die Modanzahl von jeder Sektion abzurufen würde lange dauern, aber dafür ist sie dann auch aktuell.
In dem epvp staff Thread steht Lawliet! noch nicht als Moderator drin.
[Joomla][HTML] modul in einer html datei verlinken? 11/11/2011 - Web Development - 1 Replies ich hab vorher im joomla forum schon ein thread geöffnet aber da antwortet mir niemand und ich ich langsam keine gedult mehr.. will heute noch weiter probieren und so.
----------------------------------------
Bei den Modulen gibt es ein leeres, wo man ein editor hat. Ist es möglich eine verlinkung zum modul in der html zu machen?
Hier ein beispiel vom aufbau meiner website: Vorstellung wie die website ungefähr sein soll, wo ich welche div container gemacht habe, wie das ganze zur zeit...
Array 06/18/2011 - AutoIt - 0 Replies Array Fehler
Ich habe hier mal wieder einen Fehler den ich nicht beheben kann
#include "WebTcp.au3"
#include <Array.au3>
#Include <File.au3>
TCPStartup()
_AutoITObject_Startup()
[HTML]Auswahl in Tabelle posten? 07/11/2010 - Web Development - 4 Replies Hi,
ich bin noch neu hier also bitte nicht gleich bissige Antworten geben nur weil ich im erstellen von Websites noch ein ziemlicher noob bin.
Aaalso hier zu meiner Frage ( hört sich vielleicht komisch an für die HTML Profis unter euch, aber ich hoffe trotzdem, dass ich eine verständliche Antwort bekomme) :
Ich bin grad am basteln einer Homepage und da hätte ich gerne ein paar Sachen wie eine Textbox, Auswahlfenster usw.
Auf jeden Fall hat man dann am Ende einen Button, und jetzt zu...
[C] Pointer auf Array 08/26/2009 - General Coding - 3 Replies Hallo,
Ich habe folgendende Pointer deklariert:
char *Menu0 = {"Gerd","Egon","Juergen&q uot;,"Karl","Hans-Dieter",&quo t;Hans-Guenther"};
char *Menu1 = {"Anna","Inge","Franziska ","Lisa","Maria"};
usw..
[HTML]HELP[/HTML]range hack and skill speed in extreme 08/21/2009 - Dekaron Private Server - 5 Replies hey guys i need a little help about range hack and skill speed in extreme
i already unpack the Data its all done..1! my problem is wer i can edit the range ang skill speed in extreme..! pls :):):):):)