Új hozzászólás Aktív témák

  • pittbaba

    aktív tag

    Sziasztok!

    Egy jó kis regexpre lenne szükségem, segítsetek nekem.

    Az alap helyzet, hogy GTFS adatbázisból (google helymeghatározós adatbázis) szeretném felvinni az adatokat adatbázisba.
    A fájl formátuma nagyon hasonlít a CSV-hez ,de vesszőkkel vannak elválasztva a mezők, nem pontosvesszővel.

    Ez nekem tök előnyös egy darabig, mert az SQL insertet különösebb nehézség nélkül meg tudom oldani.
    A fájl első sorából megkapom a mező neveket, a következő sorokból meg a hozzájuk tartozó értékeket:
    INSERT INTO table (t1,t2,t3,t4) VALUES ( c1,c2,c3,c4)

    Így igazából nem kell hozzányúlnom semmihez ahogy kiszedek stringbe egy sort, az már használható is. Viszont van néhány nehézség (az egyszerűség kedvéért minden TEXT típus):

    Vannak olyan tartalmak amik üresek:
    INSERT INTO table (t1,t2,t3,t4) VALUES ( c1,,,c4) ez hibát generál a helyes forma:
    INSERT INTO table (t1,t2,t3,t4) VALUES ( c1,"","",c4)

    A nem üres tartalmakat is "" vagy '' közé kell rakni:
    INSERT INTO table (t1,t2,t3,t4) VALUES ( "c1","","","c4")

    Ezt meg tudtam oldani, viszont ez után jött amin megakadtam tegnap óta, vannak olyan tartalmak mikor így néz ki a dolog:
    INSERT INTO table (t1,t2,t3,t4) VALUES ( c1,c2,"Csepel, Szent Imre tér, Cseresznyés utca",c4)

    Ez azért gond, mert eddig úgy oldottam meg, hogy , csere ',' -re, majd ,' " csere ," -re és " ', csere ",
    A végeredmény (minden alkalommal a string elejére és a végére tettem egy -egy ' jelet persze):

    INSERT INTO table (t1,t2,t3,t4) VALUES ( 'c1','c2',"Csepel',' Szent Imre tér',' Cseresznyés utca",'c4')

    Ez már majdnem jó, de a " " közötti ','-ket kellene nekem még ,-re konvertálni. Nem lehet tudni hány vessző van, van ahol egy, van ahol 3. :W

    Várom a megfejtéseket, szerintem ez jó kis feladat :)

Új hozzászólás Aktív témák

Hirdetés