Resultat 1 till 24 av 24

mne: Stdning av GEDCOM infr DISBYT: Behver lite Regular Expression-hjlp/ider

  1. #1

    Tommy Petersson
    Medlemsnr
    49794
    Inlgg
    240

    Stdning av GEDCOM infr DISBYT: Behver lite Regular Expression-hjlp/ider

    Hller p och frbereder mitt data infr DISBYT-inskick och medan jag hittills gjort rttningarna i grunddatat i Ancestry/FTM s r det ngra saker som jag tycker att jag just nu kan nja mig med att fixa till i den exporterade GEDCOM-filen, om jag kan gra det med ett script (s det r snabbt och enkelt att kra om det nr man exporterar ut en ny GEDCOM).

    Jag har jobbat med regular expressions, mest under Unix, fr mnga r sedan men r rostig nu - det knner jag... Laddade ner gratisprogrammet Textcrawler fr att gra ndringar i GEDCOM-filen.

    Det jag vill fixa till nu r daturmintervall.
    Ancestry godknner ju mycket mer n vad som anses vara god GEDCOM-standard. Det hr r exempel p hur det kan se ut p GEDCOM-rader frn Ancestry:

    2 DATE Bet 1979-1986
    2 DATE 11 Jan 1958
    2 DATE 1980
    2 DATE 1980-1994
    2 DATE 14 Nov 1979
    2 DATE Bet 1958-1979
    2 DATE 1994-
    2 DATE Bet Jan 1997-Jun 2006
    2 DATE Bet 1979 - 1989
    2 DATE Bet 1979 - 1989
    2 DATE Bet. 1979 - 1989
    2 DATE Bet 26 Jun 1856-26 Jun 1876
    2 DATE Bet 1795-12 Oct 1821

    Jag vill ju att rader som "2 DATE 1980-1994" ska bli "2 DATE BET 1980 AND 1994",
    att "2 DATE Bet. 1979 - 1989" ska bli "2 DATE BET 1979 AND 1989" osv.

    Jag brjade leka lite med ngon matchningsstrng: DATE Bet[ \.][a-zA-Z ]*[0-9]+[ ]*(–)|(-)[ ]*
    men mrkte snabbt att Textcrawlers RE-hjlp och Microsofts RE-versikt r dliga p exempel och jag har bland annat svrt att f gruppering att fungera korrekt. Jag ska ju stoppe in ett BET om det inte redan finns och byta ut "-" mot "AND" men bara om det finns ngon form av datum bde fre och efter "-".

  2. #2

    Anders Ard
    Medlemsnr
    49324
    Ort
    Lund
    Inlgg
    49
    Hej Tommy,
    Hr r ett litet enkelt Perl-program som verkar fungera (du kan skert verstta reg-expen till den dialekt och programsprk du fredrar):
    #!/usr/bin/perl
    while (<>) {
    print;
    if (/^2 DATE Bet\.?\s(.*[0-9]{4})\s*\-\s*(.*[0-9]{4})$/) {
    print "=> 2 DATE BET $1 AND $2\n";
    }
    }

    Nr jag kr det p dina test-exempel ger det:
    2 DATE Bet 1979-1986
    => 2 DATE BET 1979 AND 1986
    2 DATE 11 Jan 1958
    2 DATE 1980
    2 DATE 1980-1994
    2 DATE 14 Nov 1979
    2 DATE Bet 1958-1979
    => 2 DATE BET 1958 AND 1979
    2 DATE 1994-
    2 DATE Bet Jan 1997-Jun 2006
    => 2 DATE BET Jan 1997 AND Jun 2006
    2 DATE Bet 1979 - 1989
    => 2 DATE BET 1979 AND 1989
    2 DATE Bet 1979 - 1989
    => 2 DATE BET 1979 AND 1989
    2 DATE Bet. 1979 - 1989
    => 2 DATE BET 1979 AND 1989
    2 DATE Bet 26 Jun 1856-26 Jun 1876
    => 2 DATE BET 26 Jun 1856 AND 26 Jun 1876
    2 DATE Bet 1795-12 Oct 1821
    => 2 DATE BET 1795 AND 12 Oct 1821

  3. #3

    Anders Ard
    Medlemsnr
    49324
    Ort
    Lund
    Inlgg
    49
    Citat Ursprungligen postat av dis49324 Visa inlgg
    Hr r ett litet enkelt Perl-program
    och nu med kommentarer i reg-expen:
    #!/usr/bin/perl
    while (<>) {
    print;
    if (/^2\ DATE\ Bet #Find tag starting at begining of line
    \.?\s #separated by possibly a '.' and a space
    (.*[0-9]{4}) #followed by anything ending with 4 digits
    \s*\-\s* #separated by a '-' and possibly some spaces
    (.*[0-9]{4}) #and again followed by anything ending with 4 digits
    $/x) #and a linebreak
    {
    print "=> 2 DATE BET $1 AND $2\n";
    }
    }

  4. #4

    Tommy Petersson
    Medlemsnr
    49794
    Inlgg
    240
    Tack, det som r kvar r d det svrare att rader som "2 DATE 1980-1994" ==> "2 DATE BET 1980 AND 1994"

    :-)

  5. #5

    Anders Ard
    Medlemsnr
    49324
    Ort
    Lund
    Inlgg
    49
    Citat Ursprungligen postat av tommypeters Visa inlgg
    Tack, det som r kvar r d det svrare att rader som "2 DATE 1980-1994" ==> "2 DATE BET 1980 AND 1994"

    :-)
    Prova med att gra Bet optional:
    #!/usr/bin/perl
    while (<>) {
    print;
    if (/^2\ DATE\s #Find tag starting at begining of line
    (Bet\.?\s)? #separated by possibly a 'Bet' and a space
    (.*[0-9]{4}) #followed by anything ending with 4 digits
    \s*\-\s* #separated by a '-' and possibly some spaces
    (.*[0-9]{4}) #and again followed by anything ending with 4 digits
    $/x) #and a linebreak
    {
    print "=> 2 DATE BET $2 AND $3\n";
    }
    }

  6. #6

    Tommy Petersson
    Medlemsnr
    49794
    Inlgg
    240
    Tack, ska prva det senare idag :-)

  7. #7

    Tommy Petersson
    Medlemsnr
    49794
    Inlgg
    240
    Fungerar bra :-)

  8. #8

    Tommy Petersson
    Medlemsnr
    49794
    Inlgg
    240
    Nu skulle jag vilja ha ngon anropsmjlighet fr att kolla om orten i min GEDCOM r en frsamling, ett ln, en ort eller liknande som finns i DIS. Kan ju vara som en lng lista sm deklareras i PERL och sks i i min stdningsrutin.

  9. #9

    Anders Ard
    Medlemsnr
    49324
    Ort
    Lund
    Inlgg
    49
    Citat Ursprungligen postat av tommypeters Visa inlgg
    Nu skulle jag vilja ha ngon anropsmjlighet fr att kolla om orten i min GEDCOM r en frsamling, ett ln, en ort eller liknande som finns i DIS. Kan ju vara som en lng lista sm deklareras i PERL och sks i i min stdningsrutin.
    Det lter som en av del-funktionerna i openRGDs indatavalidering - https://rgd.dis.se:8088/login
    som Carl-Johan Gustavsson har skrivit i PHP.

  10. #10

    Carl-Johan Gustafsson
    Medlemsnr
    19138
    Ort
    Nykvarn
    Inlgg
    560
    Den frsamling/land tabell som openRGD jmfr mot verensstmmer inte med DISGEN utan r i grunden Skatteverkets frsamlingstabell.
    Det strsta mngden r samma men det finns ocks skillnader.

    Det knns som funktionen "konvertera till Disgen orter" skulle vara det bsta verktyget fr att f sina orter verifierad mot Disgen.

  11. #11

    Tommy Petersson
    Medlemsnr
    49794
    Inlgg
    240
    Situationen r denna:

    Min slktforskning r relativt omfattande och r dels gjord under tv perioder och dels gjord av tv personer, fick rtt mycket frn min syssling p pappas sida och slog ihop med mitt.

    Allt r inmatat p Ancestry och jag har Family Tree Maker som slktforskningsprogram. Jag funderade fr ett par r sedan p att gra en konverteringsrutin till Disgen s att jag skulle f med allt (fr mycket jobb att manuellt t.ex knyta 29268 bilder, foton + AD, till rtt event p rtt person...) men dels kndes DisGen d inte tillrckligt bra och dels har Ancestry/FTM problem med att f en fullstndig GEDCOM-export korrekt. S det blev att fortstta i Ancestry/FTM, vilket ocks passar mig rtt bra d jag nu sker p slktens mnga utvandrare.

    Problemet r att datat r inmatat p tv olika stt, det frsta blev p det stt som ett tag frordades p Ancestry och resten p det nu vedertagna sttet. ("Torhamn, Attans 12, Blekinge ln" resp. "Attans 12, Torhamn, Blekinge ln").
    Frsta frsket var att gra korrigeringar i FTM, om jag hade 25 med "Torhamn, Attans 12, Blekinge ln" s blev ju nd alla rttade samtidigt. Men sedan sg jag omfattningen av det manuella arbetet, gissningsvis r det fortfarande 10000 personer av 43000 som fortfarande behver korrigeras. Och de flesta adresser som mnga hade gemensam r nu fixade.

    D fddes tanken att lta Ancestry/FTM-datat s lnge vara som det r och fr nu enbart gra rutiner som rttar GEDCOM-filen s det blir korrekt i DisByt. DisByt kan ju ta filer med den ena eller den andra ordningen, men inte blandat. Det vore inte s svrt att koda DisByt inlsningsrutin s att den kunde hantera det, men inlsningstiden skulle d bli olidligt lng och det skulle ju ske ven fr alla som inte har GEDCOM med blandat adressformat. Bttre d att de som har detta problem kan kra detta hemma inlmning av GEDCOM.

    Problemet r d att fr att skert kunna avgra vad i en adress som r vad och vnda de som r omkastade behvs ett ortsregister att jmfra mot i en rutin man kr hemma. Antingen som en rutin man anropar, som en lng lista man tar med i sitt skript och gr uppslag mot, eller ngot annat stt...

  12. #12

    Carl-Johan Gustafsson
    Medlemsnr
    19138
    Ort
    Nykvarn
    Inlgg
    560
    Om radera i GEDCOM filen konsekvent ser ut som detta exempel med med tre grupperingar och prydliga kommatecken s gr det skert att gra ett program som skiftar ordningen.

    Den modifierade GEDCOM filen mste sen anvndas fr att uppdatera original posterna, annars mste ju en sdan manipulering gras varje gng en GEDCOM fil skall anvndas.

    Vi kan frska hjlpa till med att gra detta under frutsttning att det frn den modifierade GEDCOM filen gr att uppdatera originalet.

  13. #13

    Tommy Petersson
    Medlemsnr
    49794
    Inlgg
    240
    Nej, det gr inte att uppdatera originalet fr tillfllet (ska kontakta de som tagit ver Family Tree Maker frn Ancestry fr att hra om de kan lgga till en 100%-ig export & import, inklusive alla medialnkar, till programmet) - det r drfr som jag ser det ebda vettiga i att var och en kr rutinen sjlv hemma fr att stda upp sin GEDCOM. Fr mig gr det d ingenting om det tar tta timmar eller mer att g igenom och korrigera, jag tar bara ut en GEDCOM om ret ungefr, men fr ett DisBytombud r det ohanterligt.

    Det r ju inte konsekvent tre grupper, ibland kan det vara "Torhamn, Blekinge ln" och ibland kanske bara "Blekinge ln". Men det ser jag inte som s ohanterligt utan det r att skapa ett eget ortsregister fr kontroll som knns lika ondigt som att uppfinna ett nytt hjul.

    Fr jag hjlp med detta hoppas och tror jag att jag kan gra resten, i alla fall med lite hjlp som i brjan p trden - det var ett tag sedan jag skriptsprkade. Slutresultatet slpper jag frsts till DIS s att andra - som vgar - kan anvnda det.

  14. #14

    Carl-Johan Gustafsson
    Medlemsnr
    19138
    Ort
    Nykvarn
    Inlgg
    560
    Jag frstr att alla inte bestr av tre gruppen, det jag menar r om de som skall frndras har samma mnster.

    Skicka din GEDCOM fil till mig s fr jag kolla om det gr att gra ett fix program fr detta.

    Det r troligen som du sger att du sjlv kunde fixa ett snt program, men d krvs det att Dis ledning r villiga att lmna ut tabellen som anvnds i openRGD eller i Disgen. openRGD r ett pilotprojekt, s tabellerna r inte kvalitetskontrollerade p ett sdant stt att de r lmpliga fr ngon spridning.

  15. #15

    Elisabet Bergkvist
    Medlemsnr
    4041
    Inlgg
    10
    Tabellerna i Disgen kan man ltt lsa med sqlitebrowser (gratisprogram), eftersom den nya databasen anvnder sqlite. Kopiera grna databasen disgen.db frst, s man inte av misstag ndrar p ngot.

  16. #16

    Tommy Petersson
    Medlemsnr
    49794
    Inlgg
    240
    OK, tack, ska fixa fram en GEDCOM i morgon.
    ...och jag anvnder inte Disgen.

  17. #17

    Tommy Petersson
    Medlemsnr
    49794
    Inlgg
    240
    Hur skickar jag GED-filen til dig, C-J?

    Den innehller en hel del saker som RGD klagar p, till exempel sdant som att bde en persons biologiska och fosterfrldrar r angivna. Plus frsts en del direkta fel...

  18. #18

    Carl-Johan Gustafsson
    Medlemsnr
    19138
    Ort
    Nykvarn
    Inlgg
    560
    Maila till 08.5545912@telia.com

    Om openRGD "klagar" p ngot s kommer den nog att gra det ven i fortsttningen.

  19. #19

    Tommy Petersson
    Medlemsnr
    49794
    Inlgg
    240
    Jo, men jag lgger inte ner tid p att manuellt plocka bort fosterfrldrar frn GEDCOM-filen frrn det r dags fr inskick till DisByt. Nu ska ju du kolla p mina omkastade adresser. Hur skickar jag filen?

    Varfr klarar fr resten RGD inte fosterfrldrar? Design eller inte tnkt p?

  20. #20

    Carl-Johan Gustafsson
    Medlemsnr
    19138
    Ort
    Nykvarn
    Inlgg
    560
    openRGD klarar fosterfrldrar, varningen r till fr att uppmrksamma anvndaren om det. Beroende p vad GEDCOM filen skall anvndas till fr anvndaren sjlv avgra om det kan stlla till problem.

    Det r s med alla "felmeddelanden" som openRGD ger, det r bara indikation p ngot man br kolla upp.

    Det finns ocks rent formella felaktigheter som gr att GEDCOM filen inte kan anvndas, men ven d frsker openRGD att analysera felet och meddela detta.

  21. #21

    Tommy Petersson
    Medlemsnr
    49794
    Inlgg
    240
    RGD kallar det fr strukturfel:

    *** F E L L I S T A (II) Strukturfel

    Formellt fel i GEDCOM filen: Barn I11011, som finns i familj F5299, finns ven i familjen F10465

    * * * GEDCOM filen skall inte anvndas innan formella felaktigheter r korrigerade.

  22. #22

    Carl-Johan Gustafsson
    Medlemsnr
    19138
    Ort
    Nykvarn
    Inlgg
    560
    OK d, texten skrevs fr rtt lnge sedan, nu klarar t.ex. Disgen 2016 av att hantera icke-biologiska relationer. Men det finns fortfarande slktforskningsprogram som inte gr det.

    Det jag tnkte p var att openRGD bearbetar hela GEDCOM filen i alla fall och ger vriga meddelanden till anvndaren.

  23. #23

    Carl-Johan Gustafsson
    Medlemsnr
    19138
    Ort
    Nykvarn
    Inlgg
    560
    Undrade varfr det inte kom ngot mail och s att jag tappat bort den del av mailadressen

    Sorry, skall vara 08.55245912@telia.com

  24. #24

    Tommy Petersson
    Medlemsnr
    49794
    Inlgg
    240
    OK, GEDCOM skickad :-)

Behrigheter fr att posta

  • Du fr inte posta nya mnen
  • Du fr inte posta svar
  • Du fr inte posta bifogade filer
  • Du fr inte redigera dina inlgg
  •