ik zit met een probleempje met perl, en kom er niet meer uit, dus ben ik hier aangeland.
wat ik probeer te doen is het volgende: omdat ik nogal eens de bus mis wil ik een simpel scriptje maken dat de halte tijden tabel van diverse bussen van de dichtsbijzijnde bushalte haalt en weergeeft (ik knal het scriptje in samurize als het gaat werken..)
dit ben ik in elkaar aan het draaien in perl, alleen ben ik daar op zn zachts gezegd niet echt een held in, en ik ben nu dus ook nogal vastgelopen.
wat ik wil doen is het volgende:
per buslijn haalt het script de halte tabel op van de site van connexxion, vervolgens probeer ik met een reguliere expressie eruit te halen op welke tijden de betreffende bus dit uur rijdt. dat gaat op dit moment ongeveer als volgt:
het probleem echter is dat de gegevens van het huidige uur (regel 27) telkens terug gegeven worden van de eerste buslijn, hoewel ik toch heb gecontroleerd (niet alleen met regel 24, maar ook door de string te printen etc.) dat er steeds een website van een andere buslijn meegegeven wordt. mij lijkt het dan ook dat de expressie maar een keer geevalueerd wordt, en dat de volgende aanroepen gewoon het eerste antwoord weer teruggegeven wordt.
wat ik dus gedaan heb is precies uitzoeken of er wel telkens de goede website meegegeven wordt (dus van de bijbehorende buslijn en niet weer van de eerste) en dat is zo. maar daar wordt vervolgens niks mee gedaan.
ik heb het idee dat ik iets absoluut niet goed doe, maar wat precies weet ik niet, en hoe ik het recht zou moeten breien kan ik ook niks over vinden. (heb al zitten lezen in de regexp tut op perl.org maar daar wordt ik met betrekking op dit probleem ook niet zoveel wijzer van...)
wat ik probeer te doen is het volgende: omdat ik nogal eens de bus mis wil ik een simpel scriptje maken dat de halte tijden tabel van diverse bussen van de dichtsbijzijnde bushalte haalt en weergeeft (ik knal het scriptje in samurize als het gaat werken..)
dit ben ik in elkaar aan het draaien in perl, alleen ben ik daar op zn zachts gezegd niet echt een held in, en ik ben nu dus ook nogal vastgelopen.
wat ik wil doen is het volgende:
per buslijn haalt het script de halte tabel op van de site van connexxion, vervolgens probeer ik met een reguliere expressie eruit te halen op welke tijden de betreffende bus dit uur rijdt. dat gaat op dit moment ongeveer als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| sub lijntijd
{
$hour = $_[0];
$lijn = $_[1];
$date = $_[2];
$a = &getHttp("www.connexxion.nl", "/dienstregeling/haltevertrekstaat.asp?lijn=H0" . $lijn . "&halte=50100120&richting=2&datum=" . $date);
@resultaat = &filter($a, $hour, $lijn);
}
sub filter
{
my $website = $_[0];
my $hour = $_[1];
my $lijn = $_[2];
if ($wday > 1 )
{
if ($website =~ /nummer\">$lijn<\/td>/)
{
$website =~ /maandag.*?='uur'>$hour<\/td><td> (.*?)<td width/; #haalt de gegevens van het huidige uur op
return ($1 =~ /(\d\d)/g);
}
}
} |
het probleem echter is dat de gegevens van het huidige uur (regel 27) telkens terug gegeven worden van de eerste buslijn, hoewel ik toch heb gecontroleerd (niet alleen met regel 24, maar ook door de string te printen etc.) dat er steeds een website van een andere buslijn meegegeven wordt. mij lijkt het dan ook dat de expressie maar een keer geevalueerd wordt, en dat de volgende aanroepen gewoon het eerste antwoord weer teruggegeven wordt.
wat ik dus gedaan heb is precies uitzoeken of er wel telkens de goede website meegegeven wordt (dus van de bijbehorende buslijn en niet weer van de eerste) en dat is zo. maar daar wordt vervolgens niks mee gedaan.
ik heb het idee dat ik iets absoluut niet goed doe, maar wat precies weet ik niet, en hoe ik het recht zou moeten breien kan ik ook niks over vinden. (heb al zitten lezen in de regexp tut op perl.org maar daar wordt ik met betrekking op dit probleem ook niet zoveel wijzer van...)
"When you hear the beeb, it will be three o'clock." | muzak