Like Tree1Danke
  • 1 Beitrag von Funresort
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
1383
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #1
    Flopro ist offline Rookie
    Registriert seit
    Mar 2012
    Beiträge
    7
    Hi Leute,

    ich habe ein kleines Problem und wäre um eure Hilfe sehr dankbar.

    Mein Programm soll aufgrund der in einer txt-Datei gespeicherten Wörter eine Liste erstellen -bis hierher funktioniert es - und durch auswählen eines Elementes eine neue Liste aus einer 2. txt-Datei erstellen, wobei der Name der 2. txt-Datei der des ausgewählten Elements ist.

    Das Problem ist jedoch, dass zwar der Text des ausgewählten Elementes als String ausgegeben und verglichen werden kann, jedoch sobald es als Pfad verwendet wird, nicht mehr funktioniert.

    Würde mich freuen, wenn mir jemand weiterhelfen kann. Vielen Dank
    Falls jemand genauere Angaben braucht einfach fragen.
    Flo

    P.S. Hier unten ist mein Quellcode.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    
    import java.io.*;
    import javax.microedition.midlet.MIDlet;
    import javax.microedition.lcdui.*;
     
    public class Sportapp extends MIDlet implements CommandListener
    {
        private Display display;
        private List Liste;
        private String name;
     
        public Sportapp()
        {
            display = Display.getDisplay(this);
            
        }
     
        public void startApp()
        {
            loadlist("Auswahl");        
        }
     
        public void pauseApp()
        {
     
        }
     
        public void destroyApp(boolean unconditional)
        {
     
        }
     
        public void commandAction(Command command, Displayable displayable){
            if (command == List.SELECT_COMMAND) {
                loadlist(Liste.getString(Liste.getSelectedIndex()));
            }
        }
     
        
     
        public void loadlist(String name){
            DataInputStream dis = new DataInputStream(getClass().getResourceAsStream("/"+name+".txt"));
            StringBuffer sb = new StringBuffer();
            Liste = new List(name, List.IMPLICIT);
            Liste.setCommandListener(this);
            int i=0 ;
           
            try{
                while ((i = dis.read()) > -1)
                { 
                    char ch = (char)i;
                    if (ch == '\n')
                    {   Liste.append(sb.toString(),null);
                        
                        sb.delete(0,sb.length());
                     
                    }       
                    else 
                        sb.append(ch);
                }
     
                dis.close(); 
     
            }
            catch (IOException e) { 
     
            }
            display.setCurrent(Liste);       
        }
    }
    Geändert von Flopro (19.04.12 um 19:31 Uhr)
     

  2. #2
    cc1990 ist offline Mitglied
    Registriert seit
    Apr 2012
    Beiträge
    19
    Hi Flopro,
    hast du dir mal den Pfad ausgeben lassen? Vielleicht wird der Pfad nicht richtig zusammen gebaut.
    Was auch noch sein kann ist, dass im String name ein Leerzeichen steht also hinter dem Element.
     

  3. #3
    Flopro ist offline Rookie
    Registriert seit
    Mar 2012
    Beiträge
    7
    Hi cc1990,
    vielen Dank, dass du mich darauf aufmerksam gemacht hast, dass es an tippfehlern in meiner txt-Datei liegen könnte. Jedoch waren dort keine Fehler und wenn ich mir die Zusammensetzung als String ausgeben lasse, erhalte ich den richtigen pfad.
    Also leider keine Lösung des Problems.
     

  4. #4
    Flopro ist offline Rookie
    Registriert seit
    Mar 2012
    Beiträge
    7
    Hi Leute,
    ich habe mich nochmals mit dem Vergleich, welchen ich oben beschrieben habe auseinander gesetzt. Auch diesen bringe ich nicht mehr zustande. D.h., dass wenn ich den Text, aus der Liste mir ausgeben lasse und vergleiche mit dem was zu sehen ist, dann behauptet Java, dass dies unterschiedlich sei, obwohl für das Auge das selbe dasteht.
    Gruß Flo
     

  5. #5
    genodeftest ist offline Mitglied Smaragd
    Registriert seit
    Jun 2009
    Beiträge
    1.023
    Vergleichst du mit '==' ? Das vergleicht nur Referenzen, d.h. ist nur true, wenn beide Referenzen auf das gleiche Objekt weisen. Generell ist meistens .equals() besser, dazu muss aber die .equals-Methode in den Klassen des Objekts überschrieben sein.
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.

  6. #6
    Flopro ist offline Rookie
    Registriert seit
    Mar 2012
    Beiträge
    7
    Ich mache das mit ".equals". also sollte es funktionieren.
    Aber vielen Dank für die Erinnerung, da es bei mir hieran schon öfters gescheitert ist.

    Hier meine überschriebene CommandAction, mit der ich den Vergleich ausführe:

    Code :
    1
    2
    3
    4
    5
    6
    
        public void commandAction(Command command, Displayable displayable){
            if (Liste.getString(Liste.getSelectedIndex()).equals("Blau")) {
                Alert alert =new Alert(Liste.getString(Liste.getSelectedIndex()));
                display.setCurrent(alert);    
            }
        }
     

  7. #7
    genodeftest ist offline Mitglied Smaragd
    Registriert seit
    Jun 2009
    Beiträge
    1.023
    was macht .getString()? Wie wäre es mit einer Methode .getSelectedValue() oder .getSelectedString()?
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.

  8. #8
    Flopro ist offline Rookie
    Registriert seit
    Mar 2012
    Beiträge
    7
    Beide Methoden die du vorgeschlagen hast, stehen mir nicht zur Verfügung und ich kann sie auch nicht finden.
    Ich habe ja nur die Klassen von Java ME: http://java.sun.com/javame/reference...118/index.html
    Gruß
    Flo
     

  9. #9
    Funresort ist offline Mitglied Gold
    Registriert seit
    Feb 2012
    Beiträge
    144
    Ist zwar nicht ganz so schön, aber wenn du es mit nem String und nem Filereader machst müsste das ganze Funktionieren, wenn ich Zeit hab schreib ich den Code nacher noch zusammen und poste ihn.
    Flopro bedankt sich. 

  10. #10
    Flopro ist offline Rookie
    Registriert seit
    Mar 2012
    Beiträge
    7
    Servus Funresort.

    Wenn deine Variante funktioniert, dann wäre das echt stark, dann müsste ich nur die entsprechenden io-Klassen aus Java SE in mein Java ME Projekt kopieren, dann müsste Java ME auch damit umgehen können.
    Wäre sehr cool, wenn du mir den Code schicken könntest, dann müsste ich mich nicht so lange mit den unbekannten Klassen auseinandersetzen.

    Flo
     

  11. #11
    Funresort ist offline Mitglied Gold
    Registriert seit
    Feb 2012
    Beiträge
    144
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.util.ArrayList;
     
    class Test {
        ArrayList<String> stringList;
     
        public Test(String s) {
            try {
     
                stringList = new ArrayList<String>();
     
                File file = new File(s);
                BufferedReader reader = new BufferedReader(new FileReader(file));
                String read = null;
                while ((read = reader.readLine()) != null) {
     
                    stringList.add(read);
     
                }
     
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
     
        public ArrayList<String> getList() {
            return stringList;
        }
    }

    Du musst die ArrayList nur auslesen und in deine Liste schmeißen, müsste klappen.
     
    Code java:
    1
    2
    
     
          System.out.println("Smile in the way and you have a nice day!");

Thema nicht erledigt

Ähnliche Themen

  1. Datei in Java öffnen...
    Von Jellysheep im Forum Java
    Antworten: 8
    Letzter Beitrag: 17.02.09, 09:25
  2. Anfänger Problem- Java Eingabe durch Datei
    Von Fraenzchen im Forum Java
    Antworten: 9
    Letzter Beitrag: 12.03.08, 03:00
  3. Excel-Datei nur öffnen, wenn nicht durch anderen Benutzer in Bearbeitung
    Von Don Philippo im Forum .NET Datenverwaltung
    Antworten: 8
    Letzter Beitrag: 24.08.07, 22:26
  4. Antworten: 1
    Letzter Beitrag: 24.04.05, 18:25
  5. jar datei durch java auslesen
    Von Serethos im Forum Java
    Antworten: 2
    Letzter Beitrag: 26.02.05, 02:07

Stichworte