Toon posts:

Zoekfunctie in Perl

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ola,

Ik heb een database met veel regeltjes en in iedere regel een postcode, bijvoorbeeld "7511DB". Nu wil ik zoeken maar als ik het script laat zoeken naar 7511 slaat ie 7511DB over, omdat die niet precies equal is (eq). Kan iemand me tips geven, bijvoorbeeld dat m'n script moet zoeken naar 7511.. en dat het dus niet uitmaakt wat er op de .. staat.

Ik gebruik nu de volgende code:
code:
1
push(@pushitem, "<p align=left><font color=#003366 face=Arial size=2>$ARGV[2] </font><A HREF=$classurl\?subdispitem\&$ARGV[1]\&$timed\&$ARGV[2]>$listitems[0]</a><br>Prijsklasse:&nbsp;$locate $showicon<P>") unless (@listitems[5] eq "") or ($listitems[4] ne "7511");

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Als je zegt databases en zoeken, dan denk ik aan SQL, dus waarom wil je dat mbhv Perl doen?

* whoami is Perl-n00b

https://fgheysels.github.io/


Verwijderd

hmmzzz
dit is duz echt het brakste perl wat ik ooit heb gezien. als je &quot zo gebruikt dan denkt perl dat het een functie is ...... (+ dat het ook nog is in html &quote moet zijn)

dus effe al die &'en escapen en "" om die string heen zetten.

Verwijderd

Je code negeer ik maar even. Wat je zoekt is
niet
if( $str eq "7511" )...
maar
if( $str =~ m/7511/ )...

Verwijderd

Topicstarter
Hallo,

Bedankt voor de reply's. Excuses voor de beroerde code, ben zelf geen programmeur, script is gekocht.

De onderste reply leek zinvol maar werkt niet, ik gebruik nu:

code:
1
push(@pushitem, "<p align=left><font color=#003366 face=Arial size=2>$ARGV[2] </font><A HREF=$classurl\?subdispitem\&$ARGV[1]\&$timed\&$ARGV[2]>$listitems[0]</a><br>Prijsklasse:&nbsp;$locate $showicon<P>") unless (@listitems[5] eq "") or ($listitems[4] = "~ m/7345/");


Nog andere dingen die ik kan proberen om alleen die items te krijgen met postcode 7345.. ?

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
[nohtml]yellower schreef op 01 augustus 2002 @ 21:29:
Hallo,

Bedankt voor de reply's. Excuses voor de beroerde code, ben zelf geen programmeur, script is gekocht.
MIsschien kan je dan ff te rade gaan bij diegene vanwie je het script gekocht hebt?

https://fgheysels.github.io/


Verwijderd

Topicstarter
Is een amerikaan, die geen ondersteuning biedt als ik iets wil veranderen. Script werkt, dus niet zeuren... Zit wat in natuurlijk maar ik wil toch wel graag deze wijziging aanbrengen.

Verwijderd

Wat doen die " dingen daar?

$listitems[4] = "~ m/7345/"

Het moet gewoon: ($listitems[4] =~ m/7345/);

Of eigenlijk ($listitems[4] !~ m/7345/);
gezien het feit dat er ne en niet eq in de eerste code stond.

Kan je de code niet in een fatsoenlijk formaat posten svp?

Verwijderd

Topicstarter
Hey Offspring, hoe moet ik de code in ander formaat posten dan? De &quot dingen worden er door tweakers bijgezet staan niet in m'n code.

Welke tags moet ik gebruiken zodat het beter leesbaar wordt op tweakers?

Verwijderd

post hem dan effe tussen php tags

Verwijderd

Topicstarter
Okay, ik heb nu dit geprobeert maar dit werkt helaas niet:
PHP:
1
push(@pushitem, "<p align=left><font color=#003366 face=Arial size=2>$ARGV[2] </font><A HREF=$classurl\?subdispitem\&$ARGV[1]\&$timed\&$ARGV[2]>$listitems[0]</a><br>Prijsklasse:&nbsp;$locate $showicon<P>") unless (@listitems[5] eq "") or ($listitems[4] = "~ m/7345/");

Verwijderd

Het stukje: ($listitems[4] = "~ m/7345/"); is fout.
Moet zijn: ($listitems[4] !~ m/7345/);

Dus niet de m// tussen quotes zetten.

Verwijderd

Topicstarter
Hey perfect dit werkt! Hardstikke bedankt Offspring!

Ik durf het bijna niet te vragen, maar aangezien jij er verstand van lijkt te hebben: hoe kan ik zoeken naar bijvoorbeeld postcodegebied 7345 tot 7400? Dat is echt het laatste wat ik nog nodig heb dan heb ik m'n systeem compleet.

Verwijderd

Topicstarter
ehhh niemand?

  • Grum
  • Registratie: Juni 2001
  • Niet online
Doe maar weer lastig:

code:
1
2
3
4
5
6
7
8
9
10
11
m/7            # 7xxx
(
   3           # 73xx
   (
       4[5-9]  # 7345-7349
   |
       [5-9]\d # 7350-7399
   )
|
   400         # 7400
)/x


Je hebt er echter weinig aan als je et niet snapt :)

  • Juup
  • Registratie: Februari 2000
  • Niet online
Verwijderd schreef op 02 augustus 2002 @ 23:58:
Hey perfect dit werkt! Hardstikke bedankt Offspring!

Ik durf het bijna niet te vragen, maar aangezien jij er verstand van lijkt te hebben: hoe kan ik zoeken naar bijvoorbeeld postcodegebied 7345 tot 7400? Dat is echt het laatste wat ik nog nodig heb dan heb ik m'n systeem compleet.
Dit gaat niet zomaar in een regeltje. Dan moet je eerste de postcode uit de regel halen, dan kijke of ie groter dan getal a is en kleiner dan getal b en dan wel of niet printen.

Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Verwijderd schreef op 01 augustus 2002 @ 22:30:
Is een amerikaan, die geen ondersteuning biedt als ik iets wil veranderen. Script werkt, dus niet zeuren...


Wij (P&W) bieden daar ook geen ondersteuning voor.

Misschien is het ook handiger voor jou als je even Perl gaat leren ofzo ipv hier alle vragen te gaan stellen van 'hoe moet dit' en 'hoe doe ik dat'.

https://fgheysels.github.io/


  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 24-08 21:59

TrailBlazer

Karnemelk FTW

damn overzichtelijk programeren is ook een kunst. Ik kan ook 20 acties op een regel kwijt maar of het duidelijker wordt :? Ik raad je aan eens een boek over perl te lezen. Learning perl van O'Reilly was mijn bijbel. Dan kan je dit soort dingen voortaan zelf doen

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
TrailBlazer schreef op 19 augustus 2002 @ 09:23:
damn overzichtelijk programeren is ook een kunst. Ik kan ook 20 acties op een regel kwijt maar of het duidelijker wordt :?
Welkom in P&W (FAQ-13/7/2002) en dan doorklikken naar 'netjes coden'.
:Y)

https://fgheysels.github.io/

Pagina: 1