Verzoek


#1

Foondump werkt bij mij op 2004-3 tot zover goed. Is het ook mogelijk om de voorletters gescheiden te krijgen van de naam bij uitvoer naar CSV of text?

Bedankt


#2

Hoi raynl2000,

Technisch gezien is het niet moeilijk om het initialen veld ook uit te lezen uit de cdfoon en te dumpen in de database. De vraag is of het wel verstandig is (bijvoorbeeld gezien database ontwerp). Niet alle entries hebben eenduidige initialen. Denk hierbij aan dat er meerdere namen in 1 full name veld kunnen staan,

De vriendelijke groet Jan Marco


#3

Hallo Jan Marco,

Bedankt voor je snelle antwoord. En overigens mijn complimenten voor FoonDump, ik ben er erg blij mee!!!

In mijn database heb ik drie velden “achternaam”, “initialen” en “tussenvoegsel”. Als ik het goed herinner heb ik de vorige keer BabyFoon gebruikt die die gegevens inderdaad scheidde.

Niet alle entries hebben eenduidige initialen. Denk hierbij aan dat er meerdere namen in 1 full name veld kunnen staan

Ik weet niet precies wat je hiermee bedoeld, ik neem aan: een entry kan zijn “Veen Jan en Wilma vd”. Mijn voorkeur gaat dan uit naar:
Achternaam = "Veen"
Initialen = "Jan en Wilma"
Tussenvoegsel = “vd”

Dit soort initialen kan ik later normaliseren.

De manier waarop ik werk is hetvolgende: ik laat foondump dumpen naar een tekstfile, die ik weer inlees met Microsoft SQLServer.

Bij de dump van BabyFoon had ik wel het probleem dat de gedumpte tekstfile heel erg groot en daardoor moeilijk handelbaar was. Met een tekstfile-splitter heb ik uiteindelijk bestanden van een werkbare grootte gemaakt.
Wat ik dus een goeie optie erbij zou vinden is dat je kunt opgeven dat een uitvoerbestand bijvoorbeeld maximaal 100.000 regels bevat, of niet groter mag worden dan 10MB of iets dergelijks. Indien er meer data is (bijvoorbeeld wanneer je de hele CD dumpt) dan worden er simpelweg meerdere bestanden aangemaakt.

Mvg,
Raymond


#4

[quote=“raynl2000”]k neem aan: een entry kan zijn “Veen Jan en Wilma vd”. Mijn voorkeur gaat dan uit naar:
Achternaam = "Veen"
Initialen = "Jan en Wilma"
Tussenvoegsel = “vd”[/quote]

Als jij dat soort splits wil maken, ga je gang. Maar dit soort features komt niet in Foondump zelf. Foondump zelf zal nooit aannames maken over de data die gedumpt wordt. Ervaring is namelijk dat we dan veel te vaak een nieuwe versie moeten maken omdat het bij een nieuwe release van de gids weer fout gaat.

Het motto is dus: foondump dumpt de gegevens as-is, en als je er nog wat “slims” mee wilt doen, prima, maar dan in een ander programma.

Ben je ook tevreden met een dump rechtstreeks naar een ODBC DSN in de volgende versie?


#5

Hoi raynl2000, RGJ,

Niet alle entries hebben eenduidige initialen. Denk hierbij aan dat er meerdere namen in 1 full name veld kunnen staan

Bijvoorbeeld:
072-5150655 Vink Paul en Karels Babs

In de Van Dijk versie werd “full name” opgebouwd uit onderliggende componenten d.m.v. boolean variabelen. Tussenvoegel is true dan is “van de” tussen voegsel. Full name opgebouwd uit onderliggende componenten heeft CMG/Telemedia losgelaten. M.i. omdat wat een houder van een telefoonaansluiting in het telefoonboek wil hebben niet goed in een bepaald structuur past.

Bij de dump van BabyFoon had ik wel het probleem dat de gedumpte tekstfile heel erg groot en daardoor moeilijk handelbaar was.

Groot is een subjectief begrip. Je koopt tegenwoordig gewoon in de winkel 250 gigabyte harddisk. M.i. ga je niet met de hand overtypen maar gebruik je database commando’s om de data te manipuleren. Dit noem ik datamanagement. Je kan best programma-tjes maken om de data op te werken.

Wat ik dus een goeie optie erbij zou vinden is dat je kunt opgeven dat een uitvoerbestand bijvoorbeeld maximaal 100.000 regels bevat, of niet groter mag worden dan 10MB of iets dergelijks.

Lijkt mij een slecht idee, want je krijgt veel meer logica in het dumpprogramma. Des te meer code des te meer kan het fout gaan. Je gaat het 1 op 1 dumpen in een databasepakket en in het database pakket kan je bijvoorbeeld selecties maken. Bijvoorbeeld alle kappers in Amsterdam.

De manier waarop ik werk is het volgende: ik laat foondump dumpen naar een tekstfile, die ik weer inlees met Microsoft SQLServer.

Via ODBC kan je met de volgende Foondump versie direct naar Microsoft SQLServer dumpen.

Het motto is dus: foondump dumpt de gegevens as-is, en als je er nog wat “slims” mee wilt doen, prima, maar dan in een ander programma.

Helemaal mee eens --)

Ben wel van bewust als de invoer prutswerk is dat de verleiding groot is om van dit goede concept af te dwalen. Bijvoorbeeld even checken of url adress een valide adres is m.b.v. het host commando,

De vriendelijke groet Jan Marco


#6

Niet acceptabel. Stel dat net op dat moment de DNS van dat bedrijf een uurtje down is. Dan is hun URL verdwenen uit de dump die ik maandenlang blijf gebruiken.

Om het anders te zeggen: “prutswerk” is een subjectief begrip. En dus kan Foondump die beslissing niet nemen.


#7

Hoi RGJ,

Bedankt voor jouw terugkoppeling —)

Niet acceptabel. Stel dat net op dat moment de DNS van dat bedrijf een uurtje down is. Dan is hun URL verdwenen uit de dump die ik maandenlang blijf gebruiken.

Helemaal mee eens. Ben erg blij met de huidige scope van foondump. Foondump zie ik als “batch dump”.

Na het batch dumpen kan je wel met host commando een check uitvoeren. Hierna mogelijk een handmatige verbeterslag plegen. Deze nieuwe info via online variant gaan verspreiden is mijn toekomstig beeld.

Om het anders te zeggen: “prutswerk” is een subjectief begrip. En dus kan Foondump die beslissing niet nemen.

Wat ik zag dat men www. adressen met email adressen verwisselde. Of dat met puntjes uit www. adres vergat. Of dat men een samenvoeging tussen www. adres en emailadres deed. Leek erg op handmatige invoer.

De vriendelijke groet Jan Marco


#8

Duidelijk. Ik kijk uit naar het direct kunnen dumpen naar MS SQLServer!

Ray


#9

Hoi RGJ,

Misschien erg handig als raynl2000 de nieuwe Foondump release gaat testen op MS SQLServer. N.B. Ik heb geen MS SQLServer op mijn pc.

Mogelijk is de tabel definitie file iets anders van vorm als de MySQL variant.

De vriendelijke groet Jan Marco


#10

Er zijn weinig verschillen tussen de tabel handling van MySQL en MS SQL server beide zijn hetzelfde opgebouwd echter MS SQL server is uitgebreider en bevat meer en moeilijkere functies. Je kan MySQL zien als de simpele variant van MS SQL (en nu niet alle linux goeroes roepen dat dit niet waar is want helaas jongens het is echt zo…)

Ik ga foondump gebruiken om het witte gedeelte van 2004-2005 te dumpen (als dat lukt) en ik laat hem dumpen naar CSV ik zal jullie mijn bevindingen nog verder laten weten. Het CSV bestand zal als DB geimporteerd worden in mijn SQL server…

Ik laat het jullie weten.


#11

Waar baseer je dit op? Ja, het zijn allemaal relationele databases. Maar ik zie geen enkele speficieke overeenkomst tussen MySQL en MSSQL die bij andere systemen niet aanwezig is. Je zou MS SQL server evengoed met Sybase (technisch bijna gelijk!) of Oracle kunnen vergelijken. Of Oracle met MySQL. Etcetera.


#12

Hoi RGJ, questionmeuk,

Men vergelijkt database pakketen wel eens in hoeverre ze ANSI SQL compliant zijn. Bijvoorbeeld:

MS SQL heeft m.i. Sybase gebruikt. In het verleden zaten bij de Sybase cursus ook MS SQL cursisten.

M.i. is DB2 (IBM) een database pakket met jarenlange ervaring. Men (MySQL, Postgress, etc) is het wel aan het nabouwen, maar hebben het m.i. nog niet ingehaald. DB2 gaat bijvoorbeeld eigen keys/indexen gebruiken als hij ziet dat het sneller kan.

De vriendelijke groet Jan Marco


#13

[quote=“alkema_jm”]MS SQL heeft m.i. Sybase gebruikt. In het verleden zaten bij de Sybase cursus ook MS SQL cursisten.[/quote]Klopt!


#14

Ik begrijp alle reacties. Maar heeft iemand toch een stukje code liggen of een rij SQL commando’s op de plank die toch het geheel, zo goed of zo kwaad als het gaat, uit elkaar trekt in de genoemde velden. Dus initialen, achternaam, liefst ook nog titel en tussenvoegsel.


#15

This sounds like a job for Bicycle Repair Man …

Had eerder al een aanzetje gegeven:
http://forums.virtualconspiracy.com/foondump/viewtopic.php?p=105#105

Daarop voortbordurend, in Access-VBA:

Sub doparse() With CurrentDb.OpenRecordset("subscriber") Do Until .EOF If !FullName <> !lastname Then zondernaam = Mid$(!FullName, InStr(!FullName, !lastname) + Len(!lastname) + 1) Set titel = New dictionary Set voorletters = New dictionary Set voorvoegsels = New dictionary Set nog_een_naam = New dictionary parsed = 0 n = 0 .Edit terms = Split(zondernaam) For Each term In terms Select Case term Case "en" parsed = 1 Case "sr", "jr" 'enzovoort titel.Add term & n, term Case "de", "van", "het", "te", "ten", "vd", "der", "ter" 'enzovoort voorvoegsels.Add term & n, term Case Else Select Case parsed Case 0 voorletters.Add term & n, term Case 1 If term <> "en" Then nog_een_naam.Add term & n, term End Select End Select n = n + 1 Next !titel = Join(titel.Items) !voorletters = Join(voorletters.Items) !voorvoegsels = Join(voorvoegsels.Items) !nog_een_naam = Join(nog_een_naam.Items) .Update End If .MoveNext Loop End With End Sub
getest op de eerste 100 records
deze routine leunt dus nog steeds op een verschil in lastname en fullname
voor de velden die identiek zijn wordt het weer ietsje lastiger


#16

Naar mijn idee kan dit nog gemakkelijker.

De voorletters zijn te onderscheiden van de tussenvoegsels doordat de tussenvoegsels met kleinde leters zijn geschreven en de voorletters met hoofdletters.

Greetz Ron


#17

Nee, je bent gedwongen tenminste de tussenvoegsels of de titels compleet te benoemen. Je ziet trouwens ook flink wat initialen in onderkast (en dat niet alleen op de CD, ook in het papieren boek staan dezelfde namen met dezelfde afwijkende schrijfwijze, idem via telefoongids.nl). Ga je ook bestanddelen uit vermeldingen terugwinnen waar ‘lastname’ en ‘fullname’ identiek zijn dan zwelt de ruis nog verder aan. Dan heb je helemaal niets meer aan het verschil tussen kleine en hoofdletters.

Voorbeelden:

    Deen m i C
    Dijk mw mr a a j
    Dorst r a G A C Ferry van
    Euromobil rent a car
    Gisbers c s en Aa G vd
    go or no go coaching voor jongeren
    Guiaux m i en van Schijndel J T M
    Kevertje k d v 't
    Kleine Wereld o b s De
    Kluis en Kerk o l v vd Besloten Tuin
    Meijer c s Notarissen mr M J
    Michilsen wonen a la Carte
    Mulders e i M L
    Pijl e v vd en Napel B L ten
    Sanders b i
    Versteeg r e en Altena C M van
Ik zit te denken, in SQL en VBA is het nog niet eens zo makkelijk om op bv. alleen kleine letters te ziften.
IF Lcase(term)=term THEN of zo?