Avatar billede dennism Nybegynder
14. september 2006 - 14:40 Der er 6 kommentarer og
1 løsning

Java: adskil textfil

Lad os antage, at jeg har en txt-fil som f.eks. indeholder:

navn;nummer;alder
dennis;8;19

Hvordan kan jeg så lave noget kode som kan skille disse ad? F.eks. at linie1 blev indsat i et array f.eks. array[0], sådan at nummer f.eks. er i array[0][1], og nummeret 8 i array[1][1].

Nogen der kan give mig et hint til hvordan jeg kommer videre med dette - eller evt. vælger en anden måde at håndtere mine data på?

Jeg har desværre ingen point :(
Avatar billede lborupj Nybegynder
14. september 2006 - 15:36 #1
Simpelt (out-of-my-head):

List result = new ArrayList();
BufferedReader br = new BufferedReader( new FileInputStreamReader( "somefile.txt" ) );
try {
    String line;
    while ( ( line = br.readLine ) != null ) {
        result.add( line.split(";") );
    }
} finally {
    br.close();
}

Lad os antage der er et par linier i filen:

String resAtOneXOne = ((String[])result.get(1))[1];

eller du kan selvfølgeligt lave det om til et NOGET mere
fornuftigt format end opbevare et String array i en List (lidt dumt
hvis du ønsker at indeksere 2-d)
Avatar billede dennism Nybegynder
14. september 2006 - 15:41 #2
Hvilket format vil du foreslå? det eksempel jeg gav var bare en måde at løse det på - men håbede der var noget smartere?

Jeg har f.eks. en input-fil som indeholder:

1      AN      3y re  217
        AS      1d id  Hal
        AÅ      2d Sa  222
        BC      3x ol  322
        GS      3a bk  For
        OB      3z re  323
        OK      Blokeret-OK   
        PK      Blokeret-PK   
        PR      Blokeret-PR   
        RR      2a MA  223
        SN      3u da  215
        ÅM      2e BI  Bi2

Kolonnerne er adskilt med ;.

Dette skulle gerne give laves om til dette output:
1              3y re;AN;217    1d id;AS;Hal .........
Avatar billede dennism Nybegynder
14. september 2006 - 18:54 #3
er det noget du har et bud på?
Avatar billede dennism Nybegynder
14. september 2006 - 20:36 #4
Kan slet ikke få det til at virke. Får en masse fejl:

symbol  : class FileInputStreamReader
location: class Main
        BufferedReader br = new BufferedReader( new FileInputStreamReader( "somefile.txt" ) );
/home/dennis/java/SchemeConverter/src/schemeconverter/Main.java:19: cannot find symbol
symbol  : variable readLine
location: class java.io.BufferedReader
            while ( ( line = br.readLine ) != null ) {
Note: /home/dennis/java/SchemeConverter/src/schemeconverter/Main.java uses unchecked or unsafe operations.
Avatar billede lborupj Nybegynder
15. september 2006 - 08:32 #5
Som sagt var det lavet sådan lidt pseudo-agtigt.
Du får fejlen da readLine er en metode, så den skal
skrives readLine()
Prøv evt. at bruge IDEA eller Eclipse til at kode i, hvis
du ikke er stærk i java sproget, så får man lidt
ekstra hjælp
Avatar billede dennism Nybegynder
25. september 2006 - 19:48 #6
Tak for din hjælp!
Smider du lige et svar? Så smider jeg nogle point i dette spørgsmål når jeg får nogle.

Kan du evt. hjælpe her:
http://www.eksperten.dk/spm/734558
Avatar billede dennism Nybegynder
16. oktober 2006 - 12:47 #7
.lukker
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