Option Explicit '===========================================================================' ' "Genlias33.vbs" Date Created: 29-Dec-2002 ' "Genlias35.vbs" Date Updated: 04-Apr-2010 ' "Genlias36.vbs" Date Updated: 01-Jan-2011 ' "Genlias37.vbs" Date Updated: 03-Jan-2011 ' "Genlias38.vbs" Date Updated: 19-June-2011 ' "Genlias39.vbs" Date Updated: 20-Jan-2012 ' Dit VBS (Visual Basic Script) programma doet het volgende: ' 1) Leest een Genlias-tekst bestand en zet het om naar CSV-bestanden en ' een GEDCOM-bestand. 'OPGELET!!! Gebruik notepad of kladbad om de gegevens van Genlias in te plakken!! ' ' Voor het goed functioneren van de software moet men in de folder waar ' dit bestand staat ook het bestand genliastvgsl.txt plaatsen. ' Nadat men dit heeft gedaan moet men de juiste foldernaam in dit ' bestand invullen. Pas hiervoor de tekst voor \genliastvgsl.txt aan ' in de regel hieronder, die begint met : Const cTussenF ' De " moeten blijven staan!! ' '*************************** ' Bestand met tussenvoegsels '*************************** ' >>>>>> PAS ONDERSTAANDE REGEL AAN EN BEWAAR HET BESTAND <<<<<<<<< Const cTussenF = "C:\Users\Fred Baltus\Documents\genliastvgsl.txt" ' '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ' ' Om de procedure uit te voeren : ' START --> Uitvoeren : cscript Genliasv37.vbs 'invoerbestand' ' OF ' Sleep het te converteren bestand naar Genliasv37.vbs ' ' ' OPMERKING: Dit programma werkt alleen met: ' Burgelijke stand : HUWELIJK ' Burgelijke stand : GEBOORTE ' Burgelijke stand : OVERLIJDEN ' Memories van Successie ' ' Voor het correct verwerken van de genlias gegevens moet men het volgende doen: ' 1) maak een tekst-bestand aan met kladblok (Notepad). ' 2) Selecteer in Genlias de informatie op het detailscherm Vanaf ' "Bron" tot en met "nadere informatie" of t/m de onderste regel met informatie. ' 3) Druk ctrl+C in (kopiëren). ' 4) Ga naar kladblok (notepad) en druk ctrl+V in (plakken). ' Zorg ervoor dat de regels beginnen tegen de linkerkantlijn! Geen spaties voor ' de tekst! ' 5) Herhaal dit voor alle te selecteren bladen met "Detail resultaat" ' 6) Zet op de laatste regel van het tekstbestand: bron einde ' 7) Sla het bestand op als tekstbestand. ' 8) Sleep vervolgens het bestand naar genliasv3.vbs ' 9) Als alles goed is dan worden er afhankelijk van de informatie maximaal 5 ' bestanden met dezelfde naam aangemaakt met op het einde *bsh.csv of ' *bsg.csv of *bso.csv of *msc.csv en *.ged ' 10) Start Excel. ' 11) Open één van de zojuist aangemaakte csv-bestanden. ' 12) En voilá...sla het bestand(en) vervolgens op als XLS-bestand. ' of.... ' 13) Open uw genealogy programma en maak een nieuw bestand aan. ' 14) Importeer nu het *.ged bestand. Er zitten nu waarschijnlijk dubbele personen ' in uw genealogy bestand. Maak nu gebruik van de samenvoegfunctie om de gegevens ' samen te voegen. ' ' ' Wijzigingen: ' ------------------------------------------------------------------------- ' 29-Dec-2002.0 Aangemaakt. ' 01-Jan-2003.0 Gewijzigd. ' 22-Nov-2003.2 Gewijzigd in GenliasV2.vbs ' 24-Nov-2003.2 Gewijzigd in GenliasV21.vbs : Nu verwerken van 4 bronnen! ' 26-Nov-2003.2 Gewijzigd in GenliasV22.vbs : vader man/vrouw en ' moeder man/vrouw gewijzigd in bruidegom/bruid ' 28-NOV-2003.2 fout met vader bruidegom en moeder bruidegom gecorrigeerd ' 4-DEC-2003.3 GEDCOM uitvoer toegevoegd, software geoptimaliseerd. ' 6-DEC-2003.3 Nu ook sources en Memories van successies in GEDCOM bestand. ' 12-DEC-2003.3 Vraagt of SURN en GIVN in Gedcom moet ' 7-JAN-2004.3 Versie 3.2 ' 2-OCT-2006.3 Versie 3.4 Indien geboorteplaats niet gevuld bij geboorte ' vul dan de gemeente in gevolgd door een * ' 4-APR-2010 .3 Versie 3.5 GEDCOM V5.5 ' 3-Jan-2011 Versie 3.6 : Bronnen werden niet herkend, kijk nu of de eerste X karakters overeenkomen ' 3-jan-2011 Versie 3.7 : Bronnen: kijk of er een bepaalde string voorkomt ' 19-june-2011 Versie 3.8: Herkennen van bronnen aangepast. Kijk nu eerst naar 1ste deel, daarna pas of het geboorte, huwelijk of overlijden is. ' Als laatste regel "born einde" toevoegen ' 20-jan-2012 Versie 3.9: Fout in bepalen naam, daardoor geen gedcom bestand, ook trim bij andere velden toegevoegd '===========================================================================' '************************************** '* '* Start '* Const cVBS = "GenliasV39.vbs" Const cMsgTitle = "Converteer Genlias Bronnen" Const cMadeby1 = "Gemaakt door : Fred Baltus" Const cMadeby2 = "Mag vrijelijk gebruikt worden." Const cMadeby3 = "steenbok@fred-baltus.com" Const cMadeby4 = "copyright 2002 -2012 @ Fred Baltus" Const cMadeby5 = "http://www.fredbaltus.nl" Const cSourcenr = 999 Dim strGIVNSURN Dim MyDateTime MyDateTime = Now Dim MyDate MyDate = Date Dim strOTFwrh6 Dim objOT6 Dim intMsgCnt intMsgCnt = 0 Dim intRecGEd intRecGED = 0 Dim intNoteGed intNoteGed = 0 Dim intIGed intIGed = 0 Dim intFAMGed intFAMGed = 0 Dim strMadeby strMadeby = Chr(13) & Chr(10) & _ cMadeby1 & Chr(13) & Chr(10) & _ cMadeby2 & Chr(13) & Chr(10) & _ Chr(10) & _ cMadeby3 & Chr(13) & Chr(10) & _ cMadeby4 & _ Chr(13) & Chr(10) & _ Chr(10) & _ cMadeby5 Dim strMSG Dim objWSH Set objWSH = CreateObject("WScript.Shell") ' WScript.Echo objWSH.CurrentDirectory '* '* Start Melding '* MsgBox "'" & cVBS & "' is gestart." & _ Chr(13) & Chr(10) & strMadeBy ,0,cMsgTitle '* '* Definieer globale variabelen '* '* Invoer bestand Dim strOT1 '* Uitvoer bestand Dim strOT2 Dim strOT3 Dim strOT4 Dim strOT5 Dim strOT6 '* Positie karakter Dim intIDX Dim intExitProg intExitProg = 0 '* Controleer op invoer bestand Dim objArgs Dim intArg Set objArgs = WScript.Arguments If objArgs.Count = 0 then strMSG = "U moet starten met één invoerbestand!" & Chr(13) & Chr(10) & _ "Sleep het te converteren bestand naar dit programma." MsgBox strMSG,48,cMsgTitle intExitProg=1 else if objArgs.Count > 1 then strMSG = "Er mag maar één invoerbestand zijn!" MsgBox strMSG,48,cMsgTitle intExitProg=1 else strOT1 = objArgs(0) intIDX = InStrRev(strOT1,".") if intIDX > 0 Then strOT2 = Trim(LEFT(strOT1,intIDX - 1)) & "bsh.csv" 'huwelijken strOT3 = Trim(LEFT(strOT1,intIDX - 1)) & "bsg.csv" 'geboorten strOT4 = Trim(LEFT(strOT1,intIDX - 1)) & "bso.csv" 'overlijden strOT5 = Trim(LEFT(strOT1,intIDX - 1)) & "msc.csv" 'memoire van successie strOT6 = Trim(LEFT(strOT1,intIDX - 1)) & ".ged" 'gedcom end if end if end if '* '* Start met verwerking '* if intExitProg=0 then Dim objFSO Set objFSO = CreateObject("Scripting.FileSystemObject") Call ReadWrite() Set objFSO = Nothing end if '* '* Stop melding '* MsgBox "'" & cVBS & "' is gestopt.",0,cMsgTitle '* '* Einde Programma '* '***************************************************************************************** '* Subroutines & Functies '***************************************************************************************** '*********************************************************************** '* Splits naam in voornaam en achternaam, tussenvoegsels voor achternaam '*********************************************************************** Sub SplitNaam (Naam, VNaam, ANaam) Naam = trim(Naam) 'haal spaties achteraan weg Dim intANaam, intTeller, intOff Dim strTussenvgsl Dim objOT9 Set objOT9 = objFSO.OpenTextFile(cTussenF,1) intTeller = 0 intANaam = 0 intOff = 0 Vnaam = "" Anaam = "" intANaam = InStrRev(Naam," ") if intANaam > 0 then VNaam = Left(Naam,intANaam) ANaam = Mid(Naam,intANaam + 1) else ANaam = Naam Vnaam = "" end if ' Plaats tussenvoegsel voor de achternaam Do While Not objOT9.AtEndOfStream and intOff=0 strTussenvgsl = objOT9.ReadLine() strTussenvgsl = " " & strTussenvgsl & " " intOFF = InStr(VNaam,strTussenvgsl) if intOff > 1 Then Vnaam = Left(VNaam, intOff-1) ANaam = Trim(strTussenvgsl) & " " & ANaam End If Loop objOT9.Close() intOff = 0 VNaam = Trim(Vnaam) ANaam = Trim(ANaam) End Sub '******************************* '* Schrijf persoons gegevens weg '******************************* Sub GedPersoon (Inummer, Vnaam, Naam, Geslacht, GIVNSURN) strOTFwrh6="0 @I" & Inummer & "@ INDI" objOT6.WriteLine(strOTFwrh6) strOTFwrh6="1 NAME " & Vnaam & " /" & Naam & "/" objOT6.WriteLine(strOTFwrh6) if GIVNSURN = "Y" then If Naam <> "" Then strOTFwrh6="2 GIVN " & Vnaam objOT6.WriteLine(strOTFwrh6) End If strOTFwrh6="2 SURN " & Naam objOT6.WriteLine(strOTFwrh6) End If If Geslacht="V" Then Geslacht = "F" End If if Geslacht <> "" Then strOTFwrh6="1 SEX " & Geslacht objOT6.WriteLine(strOTFwrh6) end if End Sub '*********************************** '* Schrijf gebeurtenis gegevens weg '*********************************** Sub GedEvent (gEvent, gDatum, gPlaats) gEvent=trim(gEvent) gDatum=trim(gDatum) gPlaats=trim(gPlaats) Dim strMaand strMaand = Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC") Dim strDatum If gDatum <> "" or gPlaats <> "" Then strOTFwrh6="1 " & gEvent objOT6.WriteLine(strOTFwrh6) If gDatum <> "" Then strDatum = left(gDatum,2) & " " & strMaand(mid(gDatum, 4,2)-1) & " " & right(gDatum,4) strOTFwrh6="2 DATE " & strDatum objOT6.WriteLine(strOTFwrh6) End If If gPlaats <> "" Then strOTFwrh6="2 PLAC " & gPlaats objOT6.WriteLine(strOTFwrh6) End If End If End Sub '*********************************** '* Schrijf Note weg '*********************************** Sub GedNote (NNummer, gNote) strOTFwrh6="1 NOTE @NI" & NNummer & "@" objOT6.WriteLine(strOTFwrh6) strOTFwrh6="0 @NI" & NNummer & "@ NOTE" objOT6.WriteLine(strOTFwrh6) strOTFwrh6="1 CONC " & gNote objOT6.WriteLine(strOTFwrh6) End Sub '*********************************** '* Schrijf Source weg '*********************************** Sub GedSource (SNummer, gSource, gLocatie, gToegang, gInventaris, gPlaats, _ gAkte, gNummer, gDatum) Dim strSource strOTFwrh6="2 SOUR @S" & SNummer & "@" objOT6.WriteLine(strOTFwrh6) strSource = gLocatie & "; " & gToegang & "; " & gInventaris & "; " & _ gPlaats & "; " & gAkte & "; " & gNummer & "; " &gDatum strOTFwrh6="3 PAGE " & strSource objOT6.WriteLine(strOTFwrh6) End Sub '*********************************** '* Schrijf Familie relatie weg '*********************************** Sub GedFamilie (gFamilie, FNummer) strOTFwrh6="1 " & gFamilie & " @F" & FNummer & "@" objOT6.WriteLine(strOTFwrh6) End Sub '*********************************** '* Schrijf Familie Header weg '*********************************** Sub GedFamilieHead (FNummer) strOTFwrh6="0 @F" & FNummer & "@ FAM" objOT6.WriteLine(strOTFwrh6) End Sub '*********************************** '* Schrijf Familielid weg '*********************************** Sub GedFamilieLid (gFamilie, INummer) strOTFwrh6="1 " & gFamilie & " @I" & INummer & "@" objOT6.WriteLine(strOTFwrh6) End Sub Function LTrimEx(str) Dim re Set re = New RegExp re.Pattern = "^\s*" re.Multiline = False LTrimEx = re.Replace(str, "") End Function '******************************* '* Vraag geslacht bij overlijden '******************************* Function AskGeslacht (Vnaam , Naam, Relatie) Dim strInput Dim strInputMsg strInputMsg = "Wat is het geslacht van : " & Chr(13) & Chr(10) & _ Vnaam & " " & Naam & " ? (M of V)" & Chr(13) & Chr(10) & _ Relatie strInput = UCASE(InputBox (strInputMsg, cMSGTitle)) if strInput <> "V" and strInput <> "M" Then strInput = AskGeslacht (Vnaam , Naam, Relatie ) End If AskGeslacht = strInput End Function '******************************* '* lees en schrijf gegevens weg '******************************* Sub ReadWrite() '* '* Declareer Variabelen '* Dim intOFF Dim strOTF Dim intCinp intCinp = 1 Dim intLines Dim IntLineEOF Dim Intlen IntLen = 0 Dim intBgm Dim intBrd Dim strNaam Dim strNaamBgm Dim strVnaamBgm Dim strGdatumBgm Dim strGplaatsBgm Dim strNaamBrd Dim strVnaamBrd Dim strGdatumBrd Dim strGplaatsBrd Dim strVdrnaamBgm Dim strVdrVnaamBgm Dim strMdrnaamBgm Dim strMdrVnaamBgm Dim strVdrnaamBrd Dim strVdrVnaamBrd Dim strMdrnaamBrd Dim strMdrVnaamBrd Dim strBron Dim strLocatie Dim strToegang Dim strInventarisNr Dim strGemeente Dim strSoortAkte Dim strNummer Dim strDatum Dim strKantoorplts Dim strMemorienr Dim strNaamKnd Dim strVnaamKnd Dim strGdatum Dim strGPlaats Dim strGeslacht Dim strAfgdatum Dim strOvldatum Dim strNaamOvl Dim strVnaamOvl Dim strNaamVdr Dim strVnaamVdr Dim strNaamMdr Dim strVnaamMdr Dim strRelatie Dim strNaamPtn Dim strVnaamPtn Dim strInfo Dim myMsg '* '* Controleer of invoerbestand bestaat '* Dim objFSO Set objFSO = CreateObject("Scripting.FileSystemObject") If Not objFSO.FileExists(strOT1) Then MsgBox "Bestand bestaat niet!" ,0,cMsgTitle Exit Sub End If '* '* Bestaat het tussenvoegsel bestand? '* If Not objFSO.FileExists(cTussenF) Then MsgBox "Tussenvoegsel bestand bestaat niet!",0,cMsgTitle Exit Sub End If '* '* Controleer of invoerbestand de regel "einde" bevat als laatste. '* Dim objOT1 Set objOT1 = objFSO.OpenTextFile(strOT1,1) intCinp = 1 intLines = 0 intLineEOF=0 Do While Not objOT1.AtEndOfStream strOTF = objOT1.ReadLine() intLines = IntLines + 1 intOff = Instr(lcase(strOTF),"einde") If intoff>0 Then intLineEOF=IntLines intCinp=0 intOFF = 0 end if Loop objOT1.Close() Set objOT1 = Nothing if intCinp<>0 or intLineEOF <> intLines Then strMsg = "Invoerbestand bevat géén -Einde- regel!" & Chr(13) & Chr(10) & _ "Voeg einde toe op de laatste regel van het invoerbestand!" MsgBox strMsg,48,cMsgTitle exit Sub end if '* '* Controleer of uitvoerbestand bestaat. '* Indien ja, vraag om te overschrijven '* If objFSO.FileExists(strOT2) Then strMsg = "Uitvoerbestand voor huwelijken bestaat al!" & Chr(13) & Chr(10) & _ "Bestand overschrijven?" myMsg = MsgBox (strMsg,48+4,cMsgTitle) if myMsg=7 then Exit Sub end if End If If objFSO.FileExists(strOT3) Then strMsg = "Uitvoerbestand voor geboorten bestaat al!" & Chr(13) & Chr(10) & _ "Bestand overschrijven?" myMsg = MsgBox (strMsg,48+4,cMsgTitle) if myMsg=7 then Exit Sub end if End If If objFSO.FileExists(strOT4) Then strMsg = "Uitvoerbestand voor overlijdens bestaat al!" & Chr(13) & Chr(10) & _ "Bestand overschrijven?" myMsg = MsgBox (strMsg,48+4,cMsgTitle) if myMsg=7 then Exit Sub end if End If If objFSO.FileExists(strOT5) Then strMsg = "Uitvoerbestand voor memories van successie bestaat al!" & Chr(13) & Chr(10) & _ "Bestand overschrijven?" myMsg = MsgBox (strMsg,48+4,cMsgTitle) if myMsg=7 then Exit Sub end if End If '* '* Vraag of SURN en GIVN in aparte velden moet '* strMSG = "Wilt u de voornaam en " & Chr(13) & Chr(10) & _ "familienaam in aparte gedcom-velden? (Ja/Nee)" myMsg = MsgBox (strMsg,32+4,cMsgTitle) if myMsg = 7 then strGIVNSURN = "N" else strGIVNSURN = "Y" end if '* '* Open bestanden en start verwerking '* Set objOT1 = objFSO.OpenTextFile(strOT1,1) Dim objOT2 Dim objOT3 Dim objOT4 Dim objOT5 Dim strOTFwr strOTFwr = "" Dim strOTFwrh2 Dim strOTFwrh3 Dim strOTFwrh4 Dim strOTFwrh5 Dim strBronC strBronC = "" Dim strBronNew strBronNew = "" Dim strBronold strBronold = "" Dim intRecBSH intRecBSH=0 Dim intRecBSG intRecBSG=0 Dim intRecBSO intRecBSO=0 Dim intRecMSC intRecMSC=0 ' Arrays met de afzonderlijke leden van een gezin ' pos 0 : familienummer ' pos 1 : man (husb) ' pos 3 : vrouw (wife) ' pos 4 : kind (child) ' pos 5 : echtgeno(o)t(e) (bij overlijden) ' pos 6 : familienummer indien overledene een partner heeft Dim FAMHGed(6) 'bevat bruidspaar bij huwelijken, ouders bij geboorte en overlijden Dim FAMBGMGed(4) Dim FAMBRDGed(4) strOTFwrh2 = "Bron;Archieflocatie;Toegangnr;Inventarisnr;Gemeente;Soort Akte;Nummer;" & _ "Datum;Achternaam Man;Voornaam Man;Geb.plaats man;Geb.datum Man; Achternaam Vrouw;" & _ "Voornaam vrouw;Geb.plaats vrouw;Geb.datum vrouw; Achternaam Vader man;Voornaam vader man;" & _ "Achternaam Moeder Man;Voornaam Moeder Man;Achternaam Vader vrouw; Voornaam Vader vrouw;" & _ "Achternaam Moeder Vrouw;Voornaam Moeder vrouw;Nadere informatie" strOTFwrh3 = "Bron;Archieflocatie;Toegangnr;Inventarisnr;Gemeente;Soort Akte;Nummer;" & _ "Datum;Achternaam kind;Voornaam kind;Geb.plaats kind;Geb.datum kind;" & _ "Achternaam Vader;Voornaam vader;" & _ "Achternaam Moeder;Voornaam Moeder;Nadere informatie" strOTFwrh4 = "Bron;Archieflocatie;Toegangnr;Inventarisnr;Gemeente;Soort Akte;Nummer;Aangifte datum;" & _ "Achternaam overledene;Voornaam overledene;Geslacht;Overlijdensplaats;Overlijdensdatum; " & _ "Achternaam Vader;Voornaam vader;Achternaam Moeder;Voornaam Moeder;" & _ "Achternaam Partner; Voornaam Partner; Relatie;Nadere informatie" strOTFwrh5 = "Bron;Archieflocatie;Toegangnr;Inventarisnr;Kantoorplaats;Memorienr;Datum;" & _ "Achternaam overledene;Voornaam overledene;Overlijdensplaats;Overlijdensdatum; " & _ "Nadere informatie" Set objOT6 = objFSO.OpenTextFile(strOT6,2,true) strOTFwrh6 = "0 HEAD" objOT6.WriteLine(strOTFwrh6) strOTFwrh6 = "1 SOUR CGL" objOT6.WriteLine(strOTFwrh6) strOTFwrh6 = "2 VERS 3.2" objOT6.WriteLine(strOTFwrh6) strOTFwrh6 = "2 NAME Converteer Genlias" objOT6.WriteLine(strOTFwrh6) strOTFwrh6 = "2 CORP Fred Baltus" objOT6.WriteLine(strOTFwrh6) strOTFwrh6 = "1 DATE " & MyDate objOT6.WriteLine(strOTFwrh6) strOTFwrh6 = "1 GEDC" objOT6.WriteLine(strOTFwrh6) strOTFwrh6 = "2 VERS 5.5" objOT6.WriteLine(strOTFwrh6) strOTFwrh6 = "2 FORM LINEAGE-LINKED" objOT6.WriteLine(strOTFwrh6) strOTFwrh6 = "1 CHAR ANSI" objOT6.WriteLine(strOTFwrh6) strOTFwrh6 = "1 FILE " & strot6 objOT6.WriteLine(strOTFwrh6) '* '* Lees en schrijf bestanden '* Do While Not objOT1.AtEndOfStream strOTF = objOT1.ReadLine() ' schrijf record weg intOFF = InStr(strOTF,"Bron") if intOFF > 0 then intRecGEd = intRecGEd + 1 intMsgCnt = intMsgCnt + 1 If intMsgCnt = 100 Then intMsgCnt = 0 objWSH.Popup intRecGEd & " gegevens verwerkt!",2,cMsgTitle,64 end if IntLen = Len(strOTF) strBronC = lcase(trim(mid(strOTF,(InStr(strOTF," ")),(IntLen - (InStr(strOTF," ")-1))) )) IntLen = 0 strBronOld = StrBronNew if InStr(strBronC, "burgerlijke stand") > 0 then if InStr(strBronC, "huwelijk") > 0 then strBronNew="BSH" elseif InStr(strBronC, "geboorte") > 0 then strBronNew="BSG" elseif InStr(strBronC,"overlijden") > 0 then strBronNew="BSO" end if elseif InStr(strBronC, "memories van successie") > 0 then strBronNew="MSC" else strBronNew="UNKNOWN" end if if strBronOld = "" then strBronOld = strBronNew end if end if intOFF = IntOFF + InStr(lcase(strOTF),"einde") if intOFF > 0 and intRecGEd > 1 Then Select Case strBronOld Case "BSH" intRecBSH = intRecBsh + 1 '* eerste regel voor BSH : open bestand en schrijf header record weg if intRecBSH=1 then Set objOT2 = objFSO.OpenTextFile(strOT2,2,true) objOT2.WriteLine(strOTFwrh2) end if strOTFwr = strBron & ";" & strLocatie & ";" & _ strToegang & ";" & strInventarisNr & ";" & _ strGemeente & ";" & strSoortAkte & ";" & strNummer & ";" & strDatum & ";" & _ strNaamBgm & ";" & strVNaamBgm & ";" & strGPlaatsBgm & ";" & strGDatumBgm & ";" & _ strNaamBrd & ";" & strVNaamBrd & ";" & strGPlaatsBrd & ";" & strGDatumBrd & ";" & _ strVdrNaamBgm & ";" & strVdrVnaamBgm & ";" & strMdrNaamBgm & ";" & strMdrVNaamBgm & ";" & _ strVdrNaamBrd & ";" & strVdrVnaamBrd & ";" & strMdrNaamBrd & ";" & strMdrVNaamBrd & ";" & _ strInfo ' msgbox "*" & strOTFwr & "*" if strOTFwr <> " " then objOT2.WriteLine(strOTFwr) end if Case "BSG" intRecBSG = intRecBSG + 1 '* eerste regel voor BSG : open bestand en schrijf header record weg if intRecBSG=1 then Set objOT3 = objFSO.OpenTextFile(strOT3,2,true) objOT3.WriteLine(strOTFwrh3) end if strOTFwr = strBron & ";" & strLocatie & ";" & strToegang & ";" & strInventarisNr & ";" & _ strGemeente & ";" & strSoortAkte & ";" & strNummer & ";" & strDatum & ";" & _ strNaamKnd & ";" & strVNaamKnd & ";" & strGPlaats & ";" & strGDatum & ";" & _ strNaamVdr & ";" & strVnaamVdr & ";" & strNaamMdr & ";" & strVNaamMdr & ";" & _ strInfo if strOTFwr <> " " then objOT3.WriteLine(strOTFwr) end if Case "BSO" intRecBSO = intRecBSO + 1 '* eerste regel voor BSO : open bestand en schrijf header record weg if intRecBSO=1 then Set objOT4 = objFSO.OpenTextFile(strOT4,2,true) objOT4.WriteLine(strOTFwrh4) end if strOTFwr = strBron & ";" & strLocatie & ";" & strToegang & ";" & strInventarisNr & ";" & _ strGemeente & ";" & strSoortAkte & ";" & strNummer & ";" & strAfgDatum & ";" & _ strNaamOvl & ";" & strVNaamOvl & ";" & strGeslacht & ";" & strGPlaats & ";" & strGDatum & ";" & _ strNaamVdr & ";" & strVnaamVdr & ";" & strNaamMdr & ";" & strVNaamMdr & ";" & _ strNaamPtn & ";" & strVnaamPtn & ";" & strRelatie & ";" & strInfo if strOTFwr <> " " then objOT4.WriteLine(strOTFwr) end if Case "MSC" intRecMSC = intRecMSC + 1 '* eerste regel voor MSC : open bestand en schrijf header record weg if intRecMSC=1 then Set objOT5 = objFSO.OpenTextFile(strOT5,2,true) objOT5.WriteLine(strOTFwrh5) end if strOTFwr = strBron & ";" & strLocatie & ";" & strToegang & ";" & strInventarisNr & ";" & _ strKantoorplts & ";" & strMemorienr & ";" & strDatum & ";" & _ strNaamOvl & ";" & strVNaamOvl & ";" & strGPlaats & ";" & strGDatum & ";" & _ strInfo if strOTFwr <> " " then objOT5.WriteLine(strOTFwr) end if Case Else MsgBox "Onbekende bron : *" & strBronC & "* Record : " & (intRecGed - 1) ,0,cMsgTitle End Select '******************************************************* '* Vul Gedcom bestand '******************************************************* Select Case strBronOld Case "BSH" ' Ouders Bgm ' Vader Bgm If strVdrNaambgm <> "" then IntIGed = IntIGed + 1 Call GedPersoon (IntIGed, strVdrVnaambgm, strVdrNaambgm, "M", strGIVNSURN) FAMBGMGED(1) = IntIGed intFAMGEd = intFAMGED + 1 FAMBGMGED(0) = intFamGED Call GedFamilie ("FAMS", FAMBGMGED(0)) End if ' Moeder BGM If strMdrNaambgm <> "" then IntIGed = IntIGed + 1 Call GedPersoon (IntIGed, strMdrVnaambgm, strMdrNaambgm, "F", strGIVNSURN) FAMBGMGED(2) = IntIGed If FAMBGMGED(0) = 0 Then intFamGEd = intFamGED + 1 FAMBGMGED(0) = intFamGED End If Call GedFamilie ("FAMS", FAMBGMGED(0)) End if ' Ouders Bruid ' Vader Bruid If strVdrNaambrd <> "" then IntIGed = IntIGed + 1 Call GedPersoon (IntIGed, strVdrVnaambrd, strVdrNaambrd, "M", strGIVNSURN) FAMBrdGED(1) = intIGED intFamGEd = intFamGED + 1 FAMBrdGED(0) = intFamGED Call GedFamilie ("FAMS", FAMBrdGED(0)) End If ' Moeder Bruid If strMdrNaambrd <> "" then IntIGed = IntIGed + 1 Call GEdPersoon (IntIGed, strMdrVnaambrd, strMdrNaambrd, "F", strGIVNSURN) FAMBrdGED(2) = intIGED If FAMBrdGED(0) = 0 Then intFamGEd = intFamGED + 1 FAMBrdGED(0) = intFamGED End If Call GedFamilie ("FAMS", FAMBrdGED(0)) End if ' Bruidegom If strNaambgm <> "" Then IntIGed = IntIGed + 1 Call GedPersoon (IntIGed, strVnaambgm, strNaambgm, "M", strGIVNSURN) Call GedEvent ("BIRT", strGDatumBgm, strGPlaatsBgm) intFamGEd = intFamGED + 1 FAMHGED(0) = intFamGED FAMHGED(1) = IntIGed FAMBgmGED(3) = IntIGed Call GedFamilie ("FAMC", FAMBgmGED(0)) Call GedFamilie ("FAMS", FAMHGED(0)) End If ' Bruid If strNaambrd <> "" Then IntIGed = IntIGed + 1 Call GedPersoon (IntIGed, strVnaambrd, strNaambrd, "F", strGIVNSURN) Call GedEvent ("BIRT", strGDatumBrd, strGPlaatsBrd) FAMHGED(2) = IntIGed FAMBrdGED(3) = IntIGed If FAMHGED(0) = 0 Then intFamGEd = intFamGED + 1 FAMHGED(0) = intFamGED End If Call GedFamilie ("FAMC", FAMBrdGED(0)) Call GedFamilie ("FAMS", FAMHGED(0)) End IF ' Familie Bruid & Bruidegom If FAMHGED(0) > 0 Then call GedFamilieHead (FAMHGED(0)) call GedFamilieLid ("HUSB", FAMHGED(1)) call GedFamilieLid ("WIFE", FAMHGED(2)) ' Trouwdatum en Plaats Call GedEvent ("MARR", strDatum, strGemeente) call GedSource (cSourcenr, strBron, strLocatie, strToegang, _ strInventarisnr, strGemeente, _ strSoortAkte, strNummer, strDatum) if strInfo <> "" Then intNoteGed = intNoteGed + 1 call GedNote (intNoteGed, strInfo) End IF End if ' Familie Bruidegom If FAMBgmGED(0) > 0 Then call GedFamilieHead (FAMBgmGED(0)) if FAMBgmGED(1) > 0 Then call GedFamilieLid ("HUSB", FAMBgmGED(1) ) End If if FAMBgmGED(2) > 0 Then call GedFamilieLid ("WIFE", FAMBgmGED(2) ) End if if FAMBgmGED(3) > 0 Then call GedFamilieLid ("CHIL", FAMBgmGED(3) ) End if End If ' Familie Bruid If FAMBrdGED(0) > 0 Then call GedFamilieHead (FAMBrdGED(0)) if FAMBgmGED(1) > 0 Then call GedFamilieLid ("HUSB", FAMBrdGED(1) ) End If if FAMBgmGED(2) > 0 Then call GedFamilieLid ("WIFE", FAMBrdGED(2) ) End if if FAMBgmGED(3) > 0 Then call GedFamilieLid ("CHIL", FAMBrdGED(3) ) End if End If Case "BSG" If strNaamKnd <> "" Then IntIGed = IntIGed + 1 if strGeslacht = "V" Then strGeslacht = "F" End If Call GedPersoon (IntIGed, strVnaamKnd, strNaamKnd, strGeslacht, strGIVNSURN) Call GedEvent ("BIRT", strGDatum, strGPlaats) call GedSource (cSourcenr, strBron, strLocatie, strToegang, _ strInventarisnr, strGemeente, _ strSoortAkte, strNummer, strAfgDatum) intFamGEd = intFamGED + 1 FAMHGED(0) = intFamGED FAMHGED(3) = IntIGed 'Kind Call GedFamilie ("FAMC", FAMHGED(0)) if strInfo <> "" Then intNoteGed = intNoteGed + 1 call GedNote (intNoteGed, strInfo) End IF End If ' Vader If strNaamVDR <> "" then IntIGed = IntIGed + 1 Call GedPersoon (IntIGed, strVnaamVdr, strNaamVdr, "M", strGIVNSURN) FAMHGED(1) = intIGED Call GedFamilie ("FAMS", FAMHGED(0)) End If ' Moeder If strNaamMdr <> "" then IntIGed = IntIGed + 1 Call GedPersoon (IntIGed, strVnaamMdr, strNaamMdr, "F", strGIVNSURN) FAMHGED(2) = intIGED Call GedFamilie ("FAMS", FAMHGED(0)) End If ' Familie Geboren If FAMHGED(0) > 0 Then call GedFamilieHead (FAMHGED(0)) if FAMHGED(1) > 0 Then call GedFamilieLid ("HUSB", FAMHGED(1) ) End If if FAMHGED(2) > 0 Then call GedFamilieLid ("WIFE", FAMHGED(2) ) End if if FAMHGED(3) > 0 Then call GedFamilieLid ("CHIL", FAMHGED(3) ) End if End If Case "BSO" if strNaamPtn <> "" Then if strGeslacht = "" Then strGeslacht = AskGeslacht(strVnaamOVL, strNaamOVL, strRelatie ) end if IntIGed = IntIGed + 1 if strGeslacht = "M" Then ' geslacht overledene Call GedPersoon (IntIGed, strVnaamPtn, strNaamPtn, "F", strGIVNSURN) ' geslacht Partner else Call GedPersoon (IntIGed, strVnaamPtn, strNaamPtn, "M", strGIVNSURN) ' geslacht Partner end if FAMHGED(4) = IntIGed 'Partner OVerledene intFamGEd = intFamGED + 1 FAMHGED(5) = intFamGed 'Familie OVerledene & Partner if FAMHGED(5) > 0 Then Call GedFamilie ("FAMS", FAMHGED(5)) ' Familie Partner & Overledene End If End If If strNaamOVL <> "" Then IntIGed = IntIGed + 1 Call GedPersoon (IntIGed, strVnaamOVL, strNaamOVL, strGeslacht, strGIVNSURN) Call GedEvent ("DEAT", strGDatum, strGPlaats) call GedSource (cSourcenr, strBron, strLocatie, strToegang, _ strInventarisnr, strGemeente, _ strSoortAkte, strNummer, strAfgDatum) intFamGEd = intFamGED + 1 FAMHGED(0) = intFamGED FAMHGED(3) = IntIGed 'OVerledene Call GedFamilie ("FAMC", FAMHGED(0)) ' Familie Overledene & ouders if FAMHGED(5) > 0 Then Call GedFamilie ("FAMS", FAMHGED(5)) ' Familie Partner & Overledene End If if strInfo <> "" Then intNoteGed = intNoteGed + 1 call GedNote (intNoteGed, strInfo) End IF End If ' Vader If strNaamVDR <> "" then IntIGed = IntIGed + 1 Call GedPersoon (IntIGed, strVnaamVdr, strNaamVdr, "M", strGIVNSURN) FAMHGED(1) = intIGED Call GedFamilie ("FAMS", FAMHGED(0)) End If ' Moeder If strNaamMdr <> "" then IntIGed = IntIGed + 1 Call GedPersoon (IntIGed, strVnaamMdr, strNaamMdr, "F", strGIVNSURN) FAMHGED(2) = intIGED Call GedFamilie ("FAMS", FAMHGED(0)) End If ' Familie Ouders Overledene If FAMHGED(0) > 0 Then call GedFamilieHead (FAMHGED(0)) if FAMHGED(1) > 0 Then call GedFamilieLid ("HUSB", FAMHGED(1) ) End If if FAMHGED(2) > 0 Then call GedFamilieLid ("WIFE", FAMHGED(2) ) End if if FAMHGED(3) > 0 Then call GedFamilieLid ("CHIL", FAMHGED(3) ) End if End If ' Familie Partner en Overledene If FAMHGED(5) > 0 Then call GedFamilieHead (FAMHGED(5)) if FAMHGED(3) > 0 Then if strGeslacht = "M" Then call GedFamilieLid ("HUSB", FAMHGED(3) ) Else call GedFamilieLid ("WIFE", FAMHGED(3) ) End If End If if FAMHGED(4) > 0 Then if strGeslacht = "V" or strGeslacht = "F" Then call GedFamilieLid ("HUSB", FAMHGED(4) ) else call GedFamilieLid ("WIFE", FAMHGED(4) ) end if End if End If Case "MSC" If strNaamOVL <> "" Then IntIGed = IntIGed + 1 Call GedPersoon (IntIGed, strVnaamOVL, strNaamOVL, strGeslacht, strGIVNSURN) Call GedEvent ("DEAT", strGDatum, strGPlaats) call GedSource (cSourcenr, strBron, strLocatie, strToegang, _ strInventarisnr, strKantoorplts, _ "Memories van successie", strMemorienr, strDatum) if strInfo <> "" Then intNoteGed = intNoteGed + 1 call GedNote (intNoteGed, strInfo) End IF end if End Select '**************************************************** FAMHGed(0) = 0 FAMHGed(1) = 0 FAMHGed(2) = 0 FAMHGed(3) = 0 FAMHGed(4) = 0 FAMHGed(5) = 0 FAMBGMGed(0) = 0 FAMBGMGed(1) = 0 FAMBGMGed(2) = 0 FAMBGMGed(3) = 0 FAMBRDGed(0) = 0 FAMBRDGed(1) = 0 FAMBRDGed(2) = 0 FAMBRDGed(3) = 0 strOTFwr="" intBrd = 0 intBgm = 0 strBron = "" strLocatie = "" strToegang = "" strInventarisNr = "" strGemeente = "" strSoortAkte = "" strNummer = "" strDatum = "" strNaam = "" strInfo = "" strNaamBgm = "" strVnaamBgm = "" strGdatumBgm = "" strGplaatsBgm = "" strNaamBrd = "" strVnaamBrd = "" strGdatumBrd = "" strGplaatsBrd = "" strVdrnaamBgm = "" strVdrVnaamBgm = "" strMdrnaamBgm = "" strMdrVnaamBgm = "" strVdrnaamBrd = "" strVdrVnaamBrd = "" strMdrnaamBrd = "" strMdrVnaamBrd = "" strNaamKnd = "" strVnaamKnd ="" strGdatum= "" strGPlaats = "" strGeslacht ="" strAfgdatum = "" strOvldatum = "" strNaamOvl = "" strVnaamOvl = "" strNaamVdr ="" strVnaamVdr ="" strNaamMdr ="" strVnaamMdr ="" strRelatie = "" strNaamPtn = "" strVnaamPtn = "" end if ' Bron intOFF = InStr(strOTF,"Bron ") if intOFF > 0 Then intOFF = InStr(strOTF," ") strBron = LTrimEx(Mid(strOTF,intOff+1)) end if ' Locatie intOFF = InStr(strOTF,"Archieflocatie ") if intOFF > 0 Then intOFF = InStr(strOTF," ") strLocatie = LTrimEx(Mid(strOTF,intOff+1)) end if ' Toegang intOFF = InStr(strOTF,"Algemeen Toegangnr:") if intOFF > 0 Then intOFF = InStr(strOTF,":") strToegang = LTrimEx(Mid(strOTF,intOff+1)) end if ' Toegang intOFF = InStr(strOTF,"Algemeen Toegangsnr:") if intOFF > 0 Then intOFF = InStr(strOTF,":") strToegang = LTrimEx(Mid(strOTF,intOff+1)) end if ' Inventarisnr intOFF = InStr(strOTF,"Inventarisnr:") if intOFF > 0 Then intOFF = InStr(strOTF,":") strInventarisnr = LTrimEx(Mid(strOTF,intOff+1)) end if ' Gemeente intOFF = InStr(strOTF,"Gemeente:") if intOFF > 0 Then intOFF = InStr(strOTF,":") strGemeente = LTrimEx(Mid(strOTF,intOff+1)) end if ' Soort Akte intOFF = InStr(strOTF,"Soort akte:") if intOFF > 0 Then intOFF = InStr(strOTF,":") strSoortAkte = LTrimEx(Mid(strOTF,intOff+1)) end if ' Nummer intOFF = InStr(strOTF,"Nummer:") if intOFF > 0 Then intOFF = InStr(strOTF,":") strNummer = LTrimEx(Mid(strOTF,intOff+1)) end if ' Datum intOFF = InStr(strOTF,"Datum:") if intOFF > 0 Then intOFF = InStr(strOTF,":") strDatum = LTrimEx(Mid(strOTF,intOff+1)) end if if strBronNew= "BSH" Then ' Bgm intOFF = InStr(strOTF,"Bruidegom ") if intOFF = 1 Then intBgm = 1 strNaam = LTrimEx(Mid(strOTF,11)) call SplitNaam ( strNaam, strVNaamBgm, strNaamBgm) end if 'Geboortedatum bgm intOff=InStr(strOTF,"Geboortedatum: ") if intOFF = 1 and intBGM = 1 then intOFF = InStr(strOTF,":") strGDatumBgm = LTrimEx(Mid(strOTF,intOff+1)) end if 'Geboorteplaats bgm intOff=InStr(strOTF,"Geboorteplaats: ") if intOFF = 1 and intBGM = 1 then intOFF = InStr(strOTF,":") strGPlaatsBgm = LTrimEx(Mid(strOTF,intOff+1)) end if ' Brd intOFF = InStr(strOTF,"Bruid ") if intOFF = 1 Then intBrd = 1 intBgm = 0 strNaam = LTrimEx(Mid(strOTF,7)) call SplitNaam ( strNaam, strVNaamBrd, strNaamBrd) end if 'Geboortedatum brd intOff=InStr(strOTF,"Geboortedatum: ") if intOFF = 1 and intBrd = 1 then intOFF = InStr(strOTF,":") strGDatumBrd = LTrimEx(Mid(strOTF,intOff+1)) end if 'Geboorteplaats brd intOff=InStr(strOTF,"Geboorteplaats: ") if intOFF = 1 and intBrd = 1 then intOFF = InStr(strOTF,":") strGPlaatsBrd = LTrimEx(Mid(strOTF,intOff+1)) end if ' Vader Bgm intOFF = InStr(strOTF,"Vader bruidegom ") if intOFF = 1 Then intBrd = 0 intBgm = 0 strNaam = LTrimEx(Mid(strOTF,17)) call SplitNaam ( strNaam, strVdrVNaamBgm, strVdrNaamBgm) end if ' Vader Brd intOFF = InStr(strOTF,"Vader bruid ") if intOFF = 1 Then intBrd = 0 intBgm = 0 strNaam = LTrimEx(Mid(strOTF,13)) call SplitNaam ( strNaam, strVdrVNaamBrd, strVdrNaamBrd) end if ' Moeder Bgm intOFF = InStr(strOTF,"Moeder bruidegom ") if intOFF = 1 Then intBrd = 0 intBgm = 0 strNaam = LTrimEx(Mid(strOTF,17)) call SplitNaam ( strNaam, strMdrVNaamBgm, strMdrNaamBgm) end if ' Moeder Brd intOFF = InStr(strOTF,"Moeder bruid ") if intOFF = 1 Then intBrd = 0 intBgm = 0 strNaam = LTrimEx(Mid(strOTF,14)) call SplitNaam ( strNaam, strMdrVNaamBrd, strMdrNaamBrd) end if end if ' Geboorte gegevens if strBronNew="BSG" Then ' Kind intOFF = InStr(strOTF,"Kind ") if intOFF = 1 Then strNaam = LTrimEx(Mid(strOTF,6)) call SplitNaam ( strNaam, strVNaamKnd, strNaamKnd) end if 'Geboortedatum kind intOff=InStr(strOTF,"Geboortedatum: ") if intOFF = 1 Then intOFF = InStr(strOTF,":") strGDatum = LTrimEx(Mid(strOTF,intOff+1)) end if 'Geboorteplaats kind intOff=InStr(strOTF,"Geboorteplaats: ") if intOFF = 1 Then intOFF = InStr(strOTF,":") strGPlaats = LTrimEx(Mid(strOTF,intOff+1)) else strGPlaats = strGemeente end if end if ' Overlijdens gegevens if strBronNew="BSO" or strBronNew="MSC" Then ' Overledene intOFF = InStr(strOTF,"Overledene ") if intOFF = 1 Then strNaam = LTrimEx(Mid(strOTF,12)) call SplitNaam ( strNaam, strVNaamOvl, strNaamOvl) end if 'Overlijdensdatum intOff=InStr(strOTF,"Overlijdensdatum: ") if intOFF = 1 Then intOFF = InStr(strOTF,":") strGDatum = LTrimEx(Mid(strOTF,intOff+1)) end if 'Overlijdensplaats intOff=InStr(strOTF,"Overlijdensplaats: ") if intOFF = 1 Then intOFF = InStr(strOTF,":") strGPlaats = LTrimEx(Mid(strOTF,intOff+1)) end if end if if strBronNew="BSO" or strBronNew="BSG" Then 'Vader intOFF = InStr(strOTF,"Vader ") if intOFF = 1 Then strNaam = LTrimEx(Mid(strOTF,6)) call SplitNaam ( strNaam, strVNaamVdr, strNaamVdr) end if 'Moeder intOFF = InStr(strOTF,"Moeder ") if intOFF = 1 Then strNaam = LTrimEx(Mid(strOTF,7)) call SplitNaam ( strNaam, strVNaamMdr, strNaamMdr) end if end if 'AangifteDatum intOff=InStr(strOTF,"Aangiftedatum: ") if intOFF > 0 Then intOFF = InStr(strOTF,":") strAfgDatum = LTrimEx(Mid(strOTF,intOff+1)) end if 'Geslacht intOff=InStr(strOTF,"Geslacht: ") if intOFF > 0 Then intOFF = InStr(strOTF,":") strGeslacht = LTrimEx(Mid(strOTF,intOff+1)) end if 'Relatie intOFF = InStr(strOTF,"Partner Relatie: ") if intOFF = 1 Then intOFF = InStr(strOTF,":") strRelatie = LTrimEx(Mid(strOTF,intOff+1)) else 'Partner intOFF = InStr(strOTF,"Partner ") if intOFF = 1 then strNaam = LTrimEx(Mid(strOTF,9)) call SplitNaam ( strNaam, strVNaamPtn, strNaamPtn) end if 'Relatie intOFF = InStr(strOTF,"Relatie: ") if intOFF = 1 then strRelatie = LTrimEx(Mid(strOTF,10)) end if end if 'Kantoorplaats intOFF = InStr(strOTF,"Kantoorplaats: ") if intOFF > 0 then intOFF = InStr(strOTF,":") strKantoorplts = LTrimEx(Mid(strOTF,intOff+1)) end if 'Memorienr intOFF = InStr(strOTF,"Memorienr: ") if intOFF > 0 then intOFF = InStr(strOTF,":") strMemorienr = LTrimEx(Mid(strOTF,intOff+1)) end if ' Nadere informatie intOFF = InStr(strOTF,"Nadere informatie ") if intOFF = 1 Then strInfo = LTrimEx(Mid(strOTF,19)) intLen = Len(strInfo) if intLen = 1 and strInfo = ">" Then strInfo = "" end if end if Loop '* '* Sluit bestanden '* objOT1.Close() Set objOT1 = Nothing if intRecBSH > 0 then objOT2.Close() Set objOT2 = Nothing end if if intRecBSG > 0 then objOT3.Close() Set objOT3 = Nothing end if if intRecBSO > 0 then objOT4.Close() Set objOT4 = Nothing end if if intRecMSC > 0 then objOT5.Close() Set objOT5 = Nothing end if strOTFwrh6="0 @S" & cSourcenr & "@ SOUR" objOT6.WriteLine(strOTFwrh6) strOTFwrh6="1 TITL Genlias " & MyDate objOT6.WriteLine(strOTFwrh6) strOTFwrh6="0 TRLR" objOT6.WriteLine(strOTFwrh6) objOT6.Close() Set objOT6 = Nothing '* '* Gegevens zijn verwerkt '* MsgBox (intRecGEd - 1) & " gegevens zijn verwerkt!",64,cMsgTitle End Sub