Avatar billede riversen Nybegynder
19. maj 2001 - 11:18 Der er 13 kommentarer og
1 løsning

TextArea.append

Jeg har nu følgende kode:

-------------------------

    public void udskriv() {
        String rest = ( \"\" );
        try {
            BufferedReader input = new BufferedReader( new FileReader( ll.filename ) );
           
            while ( input.ready() ) {
                String linie  = input.readLine();
                int mellemrum1 = linie.indexOf( \" \" );
                String maerke  = linie.substring( 0, mellemrum1 );
                rest          = linie.substring( mellemrum1+1, rest.length() );
                int mellemrum2 = rest.indexOf( \" \" );
                String aargang = rest.substring( 0, mellemrum2 );
                String regnr  = rest.substring( mellemrum2+1, rest.length() );
               
                liste.setText( \"\" );
                liste.append( \"Bil: \" + linie + \"\\n\" );
                liste.append( aargang );
                liste.append( regnr );
            }
        }
        catch (StringIndexOutOfBoundsException e ) {
            System.out.println( \"Index out of Bounds\" );
        }
        catch ( FileNotFoundException e ) {
            System.out.println( \"Filen findes ikke: \" + ll.filename );
        }
       
        catch ( IOException e ) {
            System.out.println( \"Der opstod fejl under læsning fra filen: \" + ll.filename );
        }
    }
-----------------------

filen der skal læses fra kunne se sådan ud:

Volvo 1999 kh85743
Mercedes 2001 kh84621

Kun den sidste linie bliver vist i TextArea liste...hvorfor? Den første linier bliver skrevet men slette igen.

Desuden får jeg også en StringIndexOutOfBoundsException...hvorfor det?

Har skrevet efter noget eksempel kode, som ser ud ligesom det ovenfor.
Avatar billede riversen Nybegynder
19. maj 2001 - 11:19 #1
liste.append( \"Bil: \" + linie + \"\\n\" );
skulle egentlig være
liste.append( maerke );

men ingen af delene virkede
Avatar billede riversen Nybegynder
19. maj 2001 - 11:21 #2
det er forresten første gang jeg roder med det, så der skal nok gode og detaljerede forklaringer til
Avatar billede abelort Nybegynder
19. maj 2001 - 11:26 #3
osteostw
Avatar billede riversen Nybegynder
19. maj 2001 - 11:28 #4
kan jeg få en forklaring? eller skal jeg underrette admin om useriøs bruger?
Avatar billede agermose Nybegynder
19. maj 2001 - 12:00 #5
nu er det ikke oplagt hvad liste er, hvis det ikke er dit textarea? Men du laver en setText(\"\") hver gang du læser en linie, hvilket jo sletter alt indhold. Mon ikke problemet ligger der?
Avatar billede riversen Nybegynder
19. maj 2001 - 12:18 #6
Jeg har ligesom på fornemmelsen at jeg fremover vil huske hvad setText() gør ;-)

tak, det virkede.

Jeg havde nu skrevet liste var textarea

\"Kun den sidste linie bliver vist i TextArea liste...hvorfor? Den første linier bliver skrevet men slette igen.\"
Avatar billede mpultz Nybegynder
19. maj 2001 - 12:20 #7
Den første linie bliver overskrevet pga. dit kald liste.setText(\"\"). Hvad er det helt præcist du vil? Hvis du bare vil have at dit textarea skal indeholde det samme som filen så kald liste.append(linie) i din while løkke. Hvis du vil arbejde med de forskellige tokens i filen så brug en StringTokenizer. F.eks:

try
{
  StringTokenizer tokens;
  String linie;
  BufferedReader input = new BufferedReader(new FileReader(filename));
  while ((linie = input.readLine()) != null)
  {
    tokens = new StringTokenizer(linie);
    while (tokens.hasMoreTokens())
    {
      liste.append(tokens.nextToken());
    }
    liste.append(\"\\n\");
  }
}
catch ( FileNotFoundException e ) {
  System.out.println( \"Filen findes ikke: \" + filename );
}
catch ( IOException e ) {
  System.out.println( \"Der opstod fejl under læsning fra filen: \" + filename );
}
Avatar billede mpultz Nybegynder
19. maj 2001 - 12:22 #8
Nå, okay, var for sent ude, men måske vil du stadig være interesseret i at bruge en StringTokenizer.
Avatar billede riversen Nybegynder
19. maj 2001 - 12:23 #9
mpultz: ja, lidt for sent. Jeg aner ikke hvad det er du snakker om, men hvor kan jeg læse om det i api\'en?

Det se sådan her ud...og det kører bare derudaf *S*

    public void udskriv() {
        try {
            BufferedReader input = new BufferedReader( new FileReader( ll.filename ) );
           
            while ( input.ready() )
                liste.append( \"Bil: \" + input.readLine() + \"\\n\" );

        }
        catch (StringIndexOutOfBoundsException e ) {
            System.out.println( \"Index out of Bounds\" );
        }
        catch ( FileNotFoundException e ) {
            System.out.println( \"Filen findes ikke: \" + ll.filename );
        }
       
        catch ( IOException e ) {
            System.out.println( \"Der opstod fejl under læsning fra filen: \" + ll.filename );
        }
    }
Avatar billede mpultz Nybegynder
19. maj 2001 - 12:25 #10
java.util.StringTokenizer
Avatar billede riversen Nybegynder
19. maj 2001 - 12:26 #11
ok tak.
Avatar billede mallemab Nybegynder
19. maj 2001 - 12:28 #12
Hvad er det vil have listen til at vise ?
sådan noget her eller hva :

volvo
1987
hg55664

fiat
1666
gh55441

Avatar billede riversen Nybegynder
19. maj 2001 - 12:29 #13
nej, hver bil i en linie...

Avatar billede riversen Nybegynder
19. maj 2001 - 12:32 #14
nogen der vil af med et icq nr? jeg kunne godt bruge en at trække lidt på en gang imellem.
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