Avatar billede larsgrau Forsker
28. oktober 2019 - 19:15 Der er 3 kommentarer og
1 løsning

import af text file ind i MySql

Hej

Jeg ved ikke rigtigt hvor jeg skal starte med at lede efter en løsning.

Jeg har en fil som se sådan her ud

?9 AA BBB CCCC DDDD EE HH
X& AA BB CCCCCCCCC DD
XX
?9 AA BBB CCCC DDDD EE HH
X& AA BB CCCCCCCCC DD
XX

hver dele mellem ?9 og XX er en post, men jeg skal kun bruge BBB og EE i line ?9 og jeg skal bruge AA og CCCCCCCCC i line X& fra hver post og der kan være rigtigt mange poster i sådan en fil, men det starte altid med ?9 og slutter med XX.

Nogen ide til hvor man importer dem til en MySql database, om det er PHP eller et andet sprog betyder ikke så meget.

Venlig Hilsen
Lars
Avatar billede arne_v Ekspert
28. oktober 2019 - 19:54 #1
Logikken maa vel vaere:


open file
while more lines {
    line = readline
    if line start with '?9' {
        bbbpiece = third item in line
        eepiece = sixth item in line
    }
    if line starts with 'X&' {
        aapiece = second item in line
        ccccccccpiece = fourth item in line
    }
    if line starts with 'XX' {
        insert into table something values(bbbpiece, eepiece, aapiece, ccccccccpiece)
    }
}


Det kan godt laves i PHP.

Det kan ogsaa laves i Java, C#, Python eller noget helt andet.
Avatar billede larsgrau Forsker
29. oktober 2019 - 18:19 #2
Det er jeg enig i, men hvordan skal man så lave det i php?

jeg har prøvet følgende
<?php

$fh = fopen('text.txt','r');
while ($line = fgets($fh)){
    $line = readline
    if $line startswith($line, '?9'){
        $bbpeice = 3 item in line;
        $eepiece = 6 item in line;
    }
    if $line startswith 'X&'{
        $aapeice = 2 item in line;
        $ccpeice = 4 item in line;       
    }
    if $line start with 'XX'{
        echo $bbpeice $ccpeice;
    }
   
}


fclose($fh);
?>

Men jeg får en fejl i line 6
Avatar billede acore Ekspert
29. oktober 2019 - 21:32 #3
arne_v's forslag var skrevet i pseudo-kode - ikke php
Avatar billede acore Ekspert
29. oktober 2019 - 21:38 #4
At tage items ud af en linie:

$items = explode(" ", $line);
$item4 = $items[3];
$item6 = $items[5];

At checke om det starter med...

if (substr($line, 0, 2) == "?9")
{
....
}
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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