ASPNL logo (1 kb)

Hosted by Nedcomp (18 kb)


ASPNL Forums Home   Search   FAQ   Login   Register   Member List  
Code bibliotheek  > ASP  > Scheiden straatnaam en huisnummer  
 
Display using:  
Previous Thread :: Next Thread 
 Author Thread: Scheiden straatnaam en huisnummer
Rutger Smit is not online. Last active: 2/15/2008 11:05:12 PM Rutger Smit
www.rutgersmit.com
Top 25 Poster
Forum Moderator
Joined: 09 Dec 2002
Total Posts: 2782
 
Scheiden straatnaam en huisnummer
Posted: 15 Aug 2003 09:18 AM
Hier een handig stukje code om een string met straatnaam + huisnummer van elkaar te scheiden.
Dat kan soms lastig zijn imv allerlei bijzaken als 1 hoog 2 achter, a, bis enz...

Wat het doet:
Met een regular expression op zoek naar het eerste nummer en dan met Left en Right de twee delen van elkaar scheiden.
Dim straatOrg, re, straat, nummer, Match, Matches
straatOrg="Straatnaam 22 A"

Set re=New RegExp
re.pattern="[0-9]"

Set Matches=re.Execute(straatOrg)
For Each Match in Matches
    straatnaam=Left(straatOrg, Match.FirstIndex)
    nummer=Right(straatOrg, Len(straatOrg)-Match.FirstIndex)
Next

Set Matches=Nothing
Set re=Nothing

Response.Write(straatnaam & " - " & nummer & "<br>" & vbCrLf)

//Rutger Smit
Nieuw: Toffe Sloffe - babyslofjes
ASPNL Moderation Team
This posting is provided "AS IS" with no warranties, and confers no rights.
Martin is not online. Last active: 4/2/2010 10:39:30 AM Martin
www.ajaxcontroltoolkit.com
Top 25 Poster
Forum Moderator
Joined: 09 Dec 2002
Total Posts: 995
 
Re: Scheiden straat en huisnummer
Posted: 15 Aug 2003 09:57 AM
Mmm...

Slecht voorbeeld ;-)

aAdres = Split(straatOrg,chr(32))
Response.wite (aAdres(0) & " - " & aAdres(1) & "<br>" & vbCrLf)

Gr,

Martin


Martin Jansen
ASPNL Moderation Team
http://www.ajaxcontroltoolkit.com
Rutger Smit is not online. Last active: 2/15/2008 11:05:12 PM Rutger Smit
www.rutgersmit.com
Top 25 Poster
Forum Moderator
Joined: 09 Dec 2002
Total Posts: 2782
 
Re: Scheiden straat en huisnummer
Posted: 15 Aug 2003 10:19 AM
Ik wil hier geen ruzie maken, maar jouw voorbeeld is nog veel slechter...

Ik woon op de "Van Spanjelaan 40"
Dan wordt mijn straat dus "Van" en mijn huisnummer "Spanjelaan"

Lijkt me niet helemaal correct ;)

//Rutger Smit
Nieuw: Toffe Sloffe - babyslofjes
ASPNL Moderation Team
This posting is provided "AS IS" with no warranties, and confers no rights.
Martin is not online. Last active: 4/2/2010 10:39:30 AM Martin
www.ajaxcontroltoolkit.com
Top 25 Poster
Forum Moderator
Joined: 09 Dec 2002
Total Posts: 995
 
Re: Scheiden straat en huisnummer
Posted: 15 Aug 2003 11:22 AM
Wij ruzie maken ? That will be the day ;-)

Ik had misschien specifiek moeten vermelden dat ik je voorbeeld input niet echt jofel vond. Die kon je namelijk ook op een andere manier oplossen....

Natuurlijk is jouw manier een zeer nette manier, maar gebruik dan voortaan meteen je 'Van Spanjelaan 40' als input...

Overigens ken ik ook een straat die "1e kostverloren kade" .... heet...

Wat dan ?


Martin Jansen
ASPNL Moderation Team
http://www.ajaxcontroltoolkit.com
Rutger Smit is not online. Last active: 2/15/2008 11:05:12 PM Rutger Smit
www.rutgersmit.com
Top 25 Poster
Forum Moderator
Joined: 09 Dec 2002
Total Posts: 2782
 
Re: Scheiden straat en huisnummer
Posted: 15 Aug 2003 11:38 AM
Erm... schrijft men dat dan officieel niet voluit?
If Not... dan deze

Dim straatOrg, re, straat, nummer, Match, Matches
straatOrg="1ste Van den Straatnaam 22 A"

Set re=New RegExp
re.pattern="[0-9]"
re.Global = True

Set Matches=re.Execute(straatOrg)
For Each Match in Matches
    If Match.FirstIndex>0 Then
        straat=Left(straatOrg, Match.FirstIndex)
        nummer=Right(straatOrg, Len(straatOrg)-Match.FirstIndex)
        Exit For
    End If
Next

Set Matches=Nothing
Set re=Nothing

Response.Write(straat & " <br> " & nummer)

//Rutger Smit
Nieuw: Toffe Sloffe - babyslofjes
ASPNL Moderation Team
This posting is provided "AS IS" with no warranties, and confers no rights.
Martin is not online. Last active: 4/2/2010 10:39:30 AM Martin
www.ajaxcontroltoolkit.com
Top 25 Poster
Forum Moderator
Joined: 09 Dec 2002
Total Posts: 995
 
Re: Scheiden straat en huisnummer
Posted: 15 Aug 2003 12:07 PM
Ik denk overigens dat je gelijk hebt. Het zal wel "eerste kostverlorenkade" zijn...

Maar wat ik bedoel is dat het volgens mij niet zo vanzelfsprekend is, dat alle straten in Nederland standaard altijd uit letters bestaan...

Ik denk dus dat een probleem als dit vrij lastig te ondervangen is door op letters, danwel cijfers te zoeken...

Neemt niet weg dat de manier natuurlijk goed te gebruiken is voor andere doeleinden..

Gr,

Martin

Martin Jansen
ASPNL Moderation Team
http://www.ajaxcontroltoolkit.com
Aemca is not online. Last active: 8/26/2003 3:56:22 PM Aemca
Joined: 13 Dec 2002
Total Posts: 23
 
Re: Scheiden straat en huisnummer
Posted: 26 Aug 2003 02:15 PM
beste manier lijkt me om het eerste woord te negeren en daarna het eerste woord wat begint met een getal te zien als het nr en alles wat daarachter komt ook.
alles wat daarvoor valt is dan uiteraard de straat.

dussuh:

aAdres = Split(straatOrg,chr(32))
straat_eind = 0
straat = ""
nummer = ""

for i = 1 to ubound (aAdres)
if straat_eind = 0 then
if isnumeric (left (aAdres(i),1)) then
straat_eind = i
nummer = nummer & " " &aAdres(i)
else
straat = straat & " " &aAdres(i)
end if
else
nummer = nummer & " " &aAdres(i)
end if
next

if straat_eind = 0 then
response.write "geen nummer"
else
response.write "straat=" & straat
response.write "nummer" & nummer
end if
Zaphod is not online. Last active: 3/15/2008 10:40:57 PM Zaphod
www.zaph.nl
Top 25 Poster
Joined: 26 Jan 2004
Total Posts: 722
 
Re: Scheiden straat en huisnummer
Posted: 27 Jan 2004 04:25 PM
Ken je "Plein 1940" in Amstelveen?

"Plein 1940 15" is dus een geldig adres.

Met andere woorden, los van alle uitzonderingen uit te programmeren is er geen foutloze routine te maken...en ik heb 6 jaar met adressen gewerkt, dus geloof me maar... ;)
Rutger Smit is not online. Last active: 2/15/2008 11:05:12 PM Rutger Smit
www.rutgersmit.com
Top 25 Poster
Forum Moderator
Joined: 09 Dec 2002
Total Posts: 2782
 
Re: Scheiden straat en huisnummer
Posted: 28 Jan 2004 09:02 AM
Precies, endaarom adviseer ik om een postcode database+abbo te kopen en mensen alleen een postcode + huisnummer in te laten vullen ;)

//Rutger Smit
Nieuw: Toffe Sloffe - babyslofjes
ASPNL Moderation Team
This posting is provided "AS IS" with no warranties, and confers no rights.
Martin is not online. Last active: 4/2/2010 10:39:30 AM Martin
www.ajaxcontroltoolkit.com
Top 25 Poster
Forum Moderator
Joined: 09 Dec 2002
Total Posts: 995
 
Re: Scheiden straat en huisnummer
Posted: 28 Jan 2004 01:09 PM
..en het wordt nog leuker als het dan: plein 1940 14 4h wordt ;-)

..enne...Rutger. Jij denkt dat het kopen van zo'n database te veroorloven is voor het MKB ?

Martin

Martin Jansen
ASPNL Moderation Team
http://www.ajaxcontroltoolkit.com
Rutger Smit is not online. Last active: 2/15/2008 11:05:12 PM Rutger Smit
www.rutgersmit.com
Top 25 Poster
Forum Moderator
Joined: 09 Dec 2002
Total Posts: 2782
 
Re: Scheiden straat en huisnummer
Posted: 28 Jan 2004 02:09 PM
Nee, maar een oplossing is het wel.
En ik ken iemand die woiont op plein 1940 14 4h 3 achter

//Rutger Smit
Nieuw: Toffe Sloffe - babyslofjes
ASPNL Moderation Team
This posting is provided "AS IS" with no warranties, and confers no rights.
Wiep Corbier is not online. Last active: 4/8/2010 2:00:12 PM Wiep Corbier
Top 25 Poster
Joined: 15 Dec 2003
Total Posts: 560
 
Re: Scheiden straat en huisnummer
Posted: 5 Mar 2004 04:11 AM
Ach, de eerste zin in dit hele verhaal is al fout: hoe een adres en huisnummer te scheiden.
Een adres bestaat uit een straatnaam + huisnummer, postcode en woonplaats.

Ten tweede: welk nut dient het scheiden van straatnaam en nummer, en als het al een een nut dient, waarom dan niet direct gescheiden opgeslagen.

etc, etc... :-)

Des te meer ik weet, des te meer moet ik nog bijleren.
Rutger Smit is not online. Last active: 2/15/2008 11:05:12 PM Rutger Smit
www.rutgersmit.com
Top 25 Poster
Forum Moderator
Joined: 09 Dec 2002
Total Posts: 2782
 
Re: Scheiden straat en huisnummer
Posted: 5 Mar 2004 04:07 PM
Tjonge wat een ongefundeerde reactie, niet te geloven.

Op jouw verzoek het ik de code maar even aangepast zodat ook jij mijn code kunt volgen.
Het willen schieden van straatnaam en huisnummer wil je soms wel degelijk. Als je dagelijk routines moet schrijven voor het parsen van peroonsgegevens voor 1001 doeleinden dan kom je, geloof het of niet, geregeld situaties tegen waarin je wel degelijk de scheiding aan wilt brengen.

Omdat je niet altijd de verzamelaar van je eigen gegevens bent en je in dat soort gevallen ook nog eens vaak in een 'take it or leave it' situatie belandt moet je wel.

Wiep, ik hoop dat het een beetje duidelijk is waarom ik die reeds 313 keer bekeken code gepost heb. Volgende keer graag gefundeerde kritiek op posts van mensen.

//Rutger Smit
Nieuw: Toffe Sloffe - babyslofjes
ASPNL Moderation Team
This posting is provided "AS IS" with no warranties, and confers no rights.
Wiep Corbier is not online. Last active: 4/8/2010 2:00:12 PM Wiep Corbier
Top 25 Poster
Joined: 15 Dec 2003
Total Posts: 560
 
Re: Scheiden straat en huisnummer
Posted: 6 Mar 2004 12:41 AM
Even een reactie. Mijn opmerking mag dan ongefundeerd zijn, maar dan is jouw oplossing dat ook, als je later vermeldt dat je eigenlijk maar een beter een postcode database + abbo kunt kopen.

Slaat natuurlijk helemaal nergens op.

Maar je moet mijn opmerking niet zo serieus nemen. Wat ik er wel mee wilde aangeven is dat je secuur moet zijn als je programmeert. Zeker als je anderen iets wilt uitleggen.

Enne, ik heb niet voor niets ;) achter mijn opmerking geplaatst.

Serieus is goed, maar maak er geen halszaak van.

Des te meer ik weet, des te meer moet ik nog bijleren.
Tim is not online. Last active: 12/1/2009 12:22:16 PM Tim
Top 25 Poster
Forum Moderator
Joined: 08 Dec 2002
Total Posts: 2085
 
Re: Scheiden straat en huisnummer
Posted: 6 Mar 2004 12:47 AM
Ok, en gelieve vanaf nu enkel to the point te antwoorden, ipv elkaars antwoorden af te kraken, of ik censureer !

De meest eenvoudige methode om een dergelijk probleem op te lossen is via reguliere expressies. Een adres kun je herleiden tot : <tekst><nummer><?tekst>, waarbij <nummer> het laatste numerieke gedeelte is uit de string, en <?tekst> optionieel is en een bus kan aanduiden. Ik heb echter geen ervaring met ASP en reguliere expressies, dus kan ik de preciese syntax niet geven.

Tim *IceMan* Musschoot
Software Engineer
AspNL Moderation Team
http://www.aspalliance.com/timmusschoot
freekbos is not online. Last active: 3/30/2010 12:09:19 PM freekbos
Joined: 27 Jun 2006
Total Posts: 3
 
Re: Scheiden straatnaam en huisnummer
Posted: 27 Jun 2006 03:45 PM
Ik ben ook flink aant stoeien geweest met adressen.
Nu heb ik de volgende twee regular expressions gemaakt.

Deze is om de straatnaam eruit te filteren:
(\w+\s*)(\D\w+\s*)*\b(?!\D)

En deze om huisnummer + toevoeging terug te krijgen:
\s\d+(((\w+|s+)|\s)*)$

Maar zoals al eerder gezegt, het is (bijna?!?) onmogelijk om alle mogelijke straatnamen met huisnummers van elkaar te scheiden.

100101011010100110010100100101011010100
011011000100100100001010110010101000101
010101101010011001010010010101101010011
111100101011010100110010100100101011010
freekbos is not online. Last active: 3/30/2010 12:09:19 PM freekbos
Joined: 27 Jun 2006
Total Posts: 3
 
Re: Scheiden straatnaam en huisnummer
Posted: 29 Mar 2010 09:50 AM
Look at me... :D
Replying to my own post 4 years later.
I knew I figured this one out before, and here it is. :D

100101011010100110010100100101011010100
011011000100100100001010110010101000101
010101101010011001010010010101101010011
111100101011010100110010100100101011010
freekbos is not online. Last active: 3/30/2010 12:09:19 PM freekbos
Joined: 27 Jun 2006
Total Posts: 3
 
Re: Scheiden straatnaam en huisnummer
Posted: 30 Mar 2010 12:09 PM
Ik ben nog wat aan het stoeien geweest met die regex van toen.
En ik heb hem iets verbeterd. Maar nog steeds kun je nooit 100% alle straatnamen converteren.

De regex om de straatnaam te vinden is deze geworden:
^(((\w*\.?)*\s*)|(\w\s*))(\D\w+\s*)*\b(?!\D)

Hij is nu ook in staat om adressen te herkennen zoals:
1st Prulstraat
1st. Prulstraat
C.P. rulstraat


De regex voor het huisnummer en toevoeging heb ik niet meer gebruikt.
Dit heb ik eenvoudig opgelost door de straatnaam van het adres af te strippen en dat met de rest door te werken.

Hier is de C# code die ik geschreven heb hiervoor:

string address = "1st. CornelisPrulstraat 24-A";

Match streetMatch = Regex.Match(address, streetPattern);
string street = streetMatch.Value.Trim();
string numberWithAddition = address.Substring(streetMatch.Value.Length).Trim();

Match numberMatch = Regex.Match(numberWithAddition, numberPattern);
string number = numberMatch.Value;
string addition = numberWithAddition.Substring(numberMatch.Length).Trim();

if (number.Length == 0)
throw new InvalidProgramException(string.Format("Address '{0}' cannot be converted. The number can't be determined.", address));

if (addition.Length > 0)
{
// Strip off any slashes or minus characters.
addition = Regex.Replace(addition, @"[^0-9|a-z|A-Z|\s]", string.Empty);
}

100101011010100110010100100101011010100
011011000100100100001010110010101000101
010101101010011001010010010101101010011
111100101011010100110010100100101011010
Previous Thread :: Next Thread 
Page 1 of 1
 
ASPNL Forums  > Code bibliotheek  > ASP  > Scheiden straatnaam en huisnummer