Auteur Topic: HULP GEZOCHT: programmeur / controleren tekstbestanden  (gelezen 1016 keer)

0 leden (en 1 gast) bekijken dit topic.

Offline Hunter

  • Beheerder
  • *****
  • Berichten: 7160
  • PE1RFR
HULP GEZOCHT: programmeur / controleren tekstbestanden
« Gepost op: 25 januari 2022, 09:06:20 »
Hallo,

Veel hulp gezocht de laatste tijd, maar er spelen zoveel dingen dat zowel ik, als de anderen bij het p2kflex betrokken project, al bijna full-time bezig zijn, zowel voor als achter de schermen.

Om te beginnen; sommige dingen werken (voor nu) nu eenmaal zoals ze werken, omdat dit ooit door Frankie gebouwd is en daar in de basis op voortgeborduurd wordt. In de loop der jaren zijn veel dingen aangepast, verbeterd, uitgebreid, etc.

Waar het nu om gaat is, als een plaatsnaam herkend wordt, ik pak even een voorbeeld van een plaats waar ik net mee bezig was (Beek Montferland), dan wordt de lijst met straatnamen doorlopen. Dit dorp heeft voor dit voorbeeld even 6 straatnamen;

Arnhemseweg,;51.909474;6.1859064;
Eltenseweg,
Kolkstedeweg,
Oud Arnhemseweg,
Oude Eltenseweg,
Oude Kolkstedeweg,

Dit is de alfabetische volgorde waarin de straatnamen (in de basis) staan. Als de Oude Arnhemseweg in een melding staat dan denkt de monitor "hee ik zie de Arnhemseweg" en stopt met zoeken, hij loopt namelijk de lijst van boven naar onderen door en stopt als hij een straatnaam in de melding ziet staan. Het mooiste zou zijn om door te zoeken, maar er hangen even zoveel dingen samen met het stoppen na de eerste 'match' dat dit beslist niet eenvoudig aan te passen is.

Eigenlijk is -op dit moment- de enige juiste volgorde als volgt;

Oud Arnhemseweg,
Arnhemseweg,;51.909474;6.1859064;
Oude Eltenseweg,
Eltenseweg,
Oude Kolkstedeweg,
Kolkstedeweg,

Nu zoek ik iemand die een tooltje kan schrijven die een file loopt en bij elke gevonden straat controleert of deze als substring verderop nogmaals voorkomt. Arnhemseweg zou, als deze boven de Oude Arnhemseweg staat, dan gevonden worden als substring van Oude Arnhemseweg.

Misschien kan dit ook wel in excel als conditionele opmaak? Als dat zo is dan kost het misschien iets meer werk (2400 bestanden een voor een in excel zetten) maar het zou wel een mooie, laagdrempelige oplossing kunnen zijn.

Offline Discriminator

  • Moderator
  • *****
  • Berichten: 4655
  • Rene - Rotterdam
    • https://www.discriminator.nl
Re: HULP GEZOCHT: programmeur / controleren tekstbestanden
« Reactie #1 Gepost op: 25 januari 2022, 09:57:06 »
Kun je me een paar Excel-files sturen? Dan wil ik wel een poging wagen met een VLOOKUP.

Offline Hunter

  • Beheerder
  • *****
  • Berichten: 7160
  • PE1RFR
Re: HULP GEZOCHT: programmeur / controleren tekstbestanden
« Reactie #2 Gepost op: 25 januari 2022, 10:18:49 »
Kun je me een paar Excel-files sturen? Dan wil ik wel een poging wagen met een VLOOKUP.

Het zijn tekstbestanden, dus die moeten dan ook weer in excel geimporteerd worden. Daarmee is het met 2400 bestanden best een klus. Maar misschien begin ik dan wel van groot naar klein, daarmee sla je de grootste slagen :) Ik kan je een tekstfile sturen, maar de inhoud is exact zoals hierboven. Ik zal geheel Beek Montferland hieronder plempen, in de verkeerde volgorde zodat je de VLOOKUP kunt testen;

NB: in de daadwerkelijke bestanden staan, net als hieronder, soms wel, soms geen coordinaten achter de straatnaam. Zoals hieronder staat is dus een exacte weergave van de .txt bestanden;

Arnhemseweg,;51.909474;6.1859064;
Averbeek,
Berken Allee,
Berkenlaan,
Bijvank,
Byvank,
Boterweg,
Deelhorstweg,
Den Hamweg,
Didamseweg,
Eltenseweg,
Hietlandersweg,
Holtpasweg,
Horstlo,
Hovelstraat,
Kasteellaan,
Kerkhuisstraat,
Kleefsestraat,
Kolkstedeweg,
Koningsweg,
Laakweg,
Leigraaf,
Matjeskolk,
Meester Vermeulenstraat,
Meizoenstraat,
Melkweg,
Oud Arnhemseweg,
Oude Eltenseweg,
Oude Kolkstedeweg,
Pastoor van Angerenstraat,
Pater Gerritsenstraat,
Peeskesweg,
Peter Meistersstraat,
Pinksterbloemstraat,
Polmanstraat,
Potstal,
Processieweg,
Schaapsdrift,
Schimmelruiterweg,
Schoolstraat,;51.9063486;6.1884352;
Sint Jansgildestraat,
Sint Martinusstraat,
Steegseweg,
Stirlingstraat,
Tempelheerstraat,
Ten Renske,
Vaanhorst,
Van der Rennestraat,
Vossenweg,
Wannersgoed,
Weemstraat,
Zuider Markweg,

Offline Discriminator

  • Moderator
  • *****
  • Berichten: 4655
  • Rene - Rotterdam
    • https://www.discriminator.nl
Re: HULP GEZOCHT: programmeur / controleren tekstbestanden
« Reactie #3 Gepost op: 25 januari 2022, 10:56:49 »
Wat wil je gehighlight hebben?

Arnhemseweg 51.909474 6.1859064 Oud Arnhemseweg
Averbeek
Berken Allee
Berkenlaan
Bijvank
Byvank
Boterweg
Deelhorstweg
Den Hamweg
Didamseweg
Eltenseweg Oude Eltenseweg
Hietlandersweg
Holtpasweg
Horstlo
Hovelstraat
Kasteellaan
Kerkhuisstraat
Kleefsestraat
Kolkstedeweg Oude Kolkstedeweg
Koningsweg
Laakweg
Leigraaf
Matjeskolk
Meester Vermeulenstraat
Meizoenstraat
Melkweg
Oud Arnhemseweg
Oude Eltenseweg
Oude Kolkstedeweg
Pastoor van Angerenstraat
Pater Gerritsenstraat
Peeskesweg
Peter Meistersstraat
Pinksterbloemstraat
Polmanstraat
Potstal
Processieweg
Schaapsdrift
Schimmelruiterweg
Schoolstraat 51.9063486 6.1884352
Sint Jansgildestraat
Sint Martinusstraat
Steegseweg
Stirlingstraat
Tempelheerstraat
Ten Renske
Vaanhorst
Van der Rennestraat
Vossenweg
Wannersgoed
Weemstraat
Zuider Markweg

Offline Hunter

  • Beheerder
  • *****
  • Berichten: 7160
  • PE1RFR
Re: HULP GEZOCHT: programmeur / controleren tekstbestanden
« Reactie #4 Gepost op: 25 januari 2022, 12:08:03 »
Dit is wel mooi zo Rene! Maar stel nu dat er meer duplicaten zijn?

Arnhemseweg,
Oud Arnhemseweg,
Nieuw Arnhemseweg,

Is echt een worst-case scenario, want na de eerste duplicaten eruit gehaald te hebben neem ik aan dat de VLOOKUP gewoon opnieuw zoekt naar duplicaten, dus dit is geen must maar meer extra handig. Zoals je het nu hebt is het al goed eigenlijk :)

Offline Discriminator

  • Moderator
  • *****
  • Berichten: 4655
  • Rene - Rotterdam
    • https://www.discriminator.nl
Re: HULP GEZOCHT: programmeur / controleren tekstbestanden
« Reactie #5 Gepost op: 25 januari 2022, 12:34:20 »
Dan wordt inderdaad alleen de eerste match gevonden.

Die functie heb ik ook gebruikt. In kolom A staat de straatnaam; in C en D eventueel de co÷rdinaten.

E1 wordt dan =INDEX(A2:A999;MATCH("*"&A1&"*";A2:A999;0)). Uitleg, uitgaande van A1 (Arnhemseweg): Zoek van A2 tot A999 of je *Arnhemseweg* (dus met wildcards erom) tegenkomt.

Je krijgt dan N/A wanneer er geen match is gevonden, dus in kolom F schoon ik dat op met =IF(ISNA(E1);"";E1)

De formules kun je vervolgens naar beneden kopiŰren.

Offline Hunter

  • Beheerder
  • *****
  • Berichten: 7160
  • PE1RFR
Re: HULP GEZOCHT: programmeur / controleren tekstbestanden
« Reactie #6 Gepost op: 25 januari 2022, 12:49:26 »
Helemaal mooi zo!

Ik heb het even in 1 kolom gepropt en de limiet op 10.000 gezet, anders blijft hij steeds vanaf de eerstvolgende kolom dezelfde aantal cellen naar beneden zoeken. 10000 is erg ruim, maar uitgaande van de grootste plaatsnamen in NL zegmaar. Als ik die gehad heb dan schroef ik dat wel omlaag, dan is hij wat sneller...

=IF(ISNA(INDEX(A5:A$9999;MATCH("*"&A4&"*";A5:A$9999;0)));"";INDEX(A5:A$9999;MATCH("*"&A4&"*";A5:A$9999;0)))

Thanks! :)

EDIT: De eersten al gevonden in Amsterdam :

's Gravesandestraat,            Korte 's Gravesandestraat,

Offline Discriminator

  • Moderator
  • *****
  • Berichten: 4655
  • Rene - Rotterdam
    • https://www.discriminator.nl
Re: HULP GEZOCHT: programmeur / controleren tekstbestanden
« Reactie #7 Gepost op: 25 januari 2022, 12:56:47 »
Prima Peter. Ik had het vanwege de leesbaarheid en de snelheid over twee cellen verdeeld  ;)

Offline Hunter

  • Beheerder
  • *****
  • Berichten: 7160
  • PE1RFR
Re: HULP GEZOCHT: programmeur / controleren tekstbestanden
« Reactie #8 Gepost op: 26 januari 2022, 13:40:32 »
Inmiddels heb ik een stuk of 100 van de grote plaatsnamen gedaan en aardig wat 'dubbelen' eruit gefilterd.

Mocht iemand nog een idee hebben voor een kleine applicatie die zoiets in batch kan doen, graag :)

Offline Remon

  • Top Lid
  • ****
  • Berichten: 1590
Re: HULP GEZOCHT: programmeur / controleren tekstbestanden
« Reactie #9 Gepost op: 26 januari 2022, 14:16:33 »
Misschien d.m.v. regex in Notepad++? Die kan je ook in meerdere bestanden tegelijk laten zoeken.

Offline Hunter

  • Beheerder
  • *****
  • Berichten: 7160
  • PE1RFR
Re: HULP GEZOCHT: programmeur / controleren tekstbestanden
« Reactie #10 Gepost op: 29 januari 2022, 21:29:28 »
Heb inmiddels (wilde het er om diverse redenen eigenlijk buiten houden) iets in p2kflex zelf ingebouwd voor deze controle. Rolt inmiddels aardig wat binnen, getriggerd op basis van plaatsnamen in alarmeringen.