Avatar billede phpguru1 Nybegynder
27. december 2005 - 19:56 Der er 2 kommentarer

Script der "vender" data

Jeg har en flad fil med data. Dataene er organiseret på denne måde:

navn=Peter
efternavn=Jensen
alder=20

navn=Børge
efternavn=Thomsen
alder=21

navn=Augustus
efternavn=Jensen
alder=20

navn=Brian
efternavn=Jensen
alder=17

Jeg skal importere disse data i en MsSql database. For at jeg kan gøre dette, skal data organiseres på denne måde:

navn, efternavn, alder
Peter, Jensen, 20
Børge, Thomsen, 21
Augustus, Jensen, 20
Brian, Jensen, 17

Hvem kan lave et script der kan klare dette? Eller har I en anden ide til hvordan den kan skæres?
Avatar billede jakoba Nybegynder
27. december 2005 - 20:49 #1
Det handler om løfter. Hvad kan du LOVE med hensyn til inputfilen?

kan du love
    at der altid er 3 felter på 3 linier efter hinanden?
    at <feltnavn>= altid står foran hver værdi.
    at felternes navne er 'navn', 'efternavn' og 'alder' i den rækkefølge og stavet sådan (små bogstaver, etc)

Hvis du kan love alt det er det nemt nok

<?php
$fil_linier = file( "din_fil.txt, "rb" );
    // $fillinier er et array med in linie i hver celle.
$i = 0;              // index for array $fil_linier
$outarray = array();
$j = 0;              // index for array $outarray
$outarray[$j] = "navn,efternavn,alder";

while ( $i < count( $fillinier ) ) {
    $pair = explode( "=", $fil_linier[$i++] );
    if( $pair[0] == "navn" ) {
        $j++;
        $outarray[$j] = trim( $pair[1] );
    } else
    if( $pair[0] == "efternavn" ) {
        $outarray[$j] .= ",".trim( $pair[1] );
    } else
    if( $pair[0] == "alder" ) {
        $outarray[$j] .= ",".trim( $pair[1] );
    }
}
$fp = fopen( "din_outputfil.txt", "wb" );
fwrite( $fp, implode( "\n", $outarray );
fclose( $fp );
?>

mvh JakobA
Avatar billede jakoba Nybegynder
27. december 2005 - 20:51 #2
Ups. en parameter for meget i linien
  $fil_linier = file( "din_fil.txt, "rb" );
der skal blot stå
  $fil_linier = file( "din_fil.txt" );
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester