tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
11
ZUGRIFFE
1072
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Blind Guardian Blind Guardian ist offline Mitglied
    Registriert seit
    Nov 2004
    Beiträge
    14
    Hi, ich wollt euch nochma lfragen ob mir jemand helfen könnte...

    Habe folgendes Problem. Als Dateiinhalt habe ich z.B. folgende Sachen

    User=xxx
    Pwd=xxx
    ID=xxx
    ...

    Ich bräuchte nun ein bisschen Hilfe, um aus der Datei jeweil den Zeileninhalt nach dem "=" auszulesen. was vor dem "=" steht, bleibt immer gleich. Ich habe nun schon angefangen, "User=" usw als Stringvariable so im Programm zu lassen. Dann suche ich den jeweiligen String in der Datei und lese die Zeichen danach aus. klappt eigentlich ganz gut, bis auf folgende Problemchen...

    Das was hinter dem "=" steht kann variabel in der Länge sein, können Buchstaben, Zahlen und Sonderzeichen sein.

    Habe gehört, es besteht irgendwie die Möglichkeit mit get und set properties, leider weiss ich nicht direkt wie ich das anwenden muss.

    Danke im vorraus Danilo

    PS: Achtung Anfängergefahr
     

  2. #2
    Avatar von Bernd1984
    Bernd1984 Bernd1984 ist offline Kastenbrot
    Registriert seit
    Oct 2004
    Beiträge
    414
    Hallo,

    das was du suchst, ist sowas wie eine Ini-Datei auslesen?

    Hier ist so etwas erklärt:

    http://www.3plus4software.de/downloads/20020610.html
     
    Gruss Bernd
    Zitat Zitat von mAu
    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!

  3. #3
    Caruso_Nix Caruso_Nix ist offline Mitglied Bronze
    Registriert seit
    Nov 2004
    Beiträge
    37
    wenn du mehrere Einträge davon untereinander in der Datei hast, würde ich das so machen:
    private static HashMap getProperties()
    {
    int index = 0;
    String zeile = "";
    String user = "";
    String pwd = "";
    String id = "";

    try
    {
    RandomAccessFile raf = new RandomAccessFile(fileName,"r");
    long cursor = 0;
    long length = raf.length();

    while (cursor < length)
    {
    zeile = raf.readLine();

    if (! zeile.startsWith(" "))
    {
    index = zeile.indexOf('=');

    if (zeile.startsWith("user"))
    {
    host = zeile.substring(index+1);
    }
    else if (zeile.startsWith("pwd="))
    pwd = zeile.substring(index+1);

    else if (zeile.startsWith("id="))
    id = zeile.substring(index+1);

    try
    {
    hm.put(user+"@"+pwd+"@"+id);
    }
    catch ( Exception e )
    {
    System.err.println("Exception: " +e.getMessage());
    }
    }

    cursor = raf.getFilePointer();
    }
    catch (IOException e) {
    System.out.println("error");
    }
    }
    caruso
     

  4. #4
    Shizzl_chrizzl Shizzl_chrizzl ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Beiträge
    144
    kleines beispiel:

    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
    
     
        final String iniFile     = "password.properties";   
     
     
     
      private void iniFileReader() {
            try {
                StringTokenizer st;
                FileInputStream fis   = new FileInputStream(iniFile);
                Properties properties = new Properties();
                properties.load(fis);
                
     
     
                username  = properties.getProperty("username");         
               // das in den klammern ist eben username im Inifile d.h. er liest alles danach ein
     
                password  = properties.getProperty("Password");
                dbPort    = Integer.parseInt(properties.getProperty("dbPort"));
     
                port = (short) Integer.parseInt(properties.getProperty("port"));
                COMPort = properties.getProperty("SerialPort");
                
     
            } catch (Exception e1) {
                     JOptionPane.showMessageDialog(this, "Inifile konnte nicht initialisert 
                      werden!", "ERROR", JOptionPane.ERROR_MESSAGE);
                     e1.printStackTrace();
            }
        }
    Geändert von Shizzl_chrizzl (18.11.04 um 11:50 Uhr)
     

  5. #5
    Caruso_Nix Caruso_Nix ist offline Mitglied Bronze
    Registriert seit
    Nov 2004
    Beiträge
    37
    das geht aber nicht, wenn mehrere Einträge vorhanden sind!
    caruso
     

  6. #6
    Shizzl_chrizzl Shizzl_chrizzl ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Beiträge
    144
    ja aber die sind doch irgendwie getrennt durch n komma so das du unterscheiden kannst wann der eine eintrag aufhört und der nächste anfängt.

    dann nimmst einfach deinen "USER"
    und zerlegst es....

    StringTokenizer ts = new StringTokenizer(USER, ",");
    int tsTokens = ts.countTokens();
    for(int i = 0; i < nTokense; i++){
    vUser.addElement(ts.nextToken()); // vUser is n vektor nur als beispiel
    }
     

  7. #7
    Blind Guardian Blind Guardian ist offline Mitglied
    Registriert seit
    Nov 2004
    Beiträge
    14
    Danke erstmal, ich werde mir das mal anschauen...ob ich das zusammen bekomme alles
     

  8. #8
    Blind Guardian Blind Guardian ist offline Mitglied
    Registriert seit
    Nov 2004
    Beiträge
    14
    Also das mit dem Auslesen der Daten mit getproperties hat nun geklappt oder auch schon weilchen länger *fg*

    Habe nun ein neues kleineres Problem.

    Ich will anhand dieser beiden Marken einen Substring aus den Zeichen einer Datei haben. Ich komme soweit eigneltich damit klar. Ich kann von einer Marke bis zur nächsten marke den Substring machen oder von einer Marke bis zum Ende. wo ich jetzt ein kleines Problem habe wäre, das er den Substring machen soll, aber darauf achten muss, ob die zweite Marke kommt bzw es die zweite Marke gibt.

    Er soll also das Problem auffangen, wenn es keine zweite Marke in diesem String gibt und dann nur bis zum Ende lesen.

    Kann man den vielleicht irgendwie fragen ob diese Zeichenkette (zweite Marke) in dem String vorhanden ist oder nicht. Weil wenn ja dann kann ich die beiden möglichkeiten von Substring mit einer if-Anweisung machen.

    Bin für jede Hilfe dankbar.
     

  9. #9
    Registriert seit
    Apr 2004
    Ort
    Ruhrgebiet
    Beiträge
    1.582
    Wie wäre es mit sowas:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    import java.util.StringTokenizer;
     
    /**
     * @author       Snape
     */
    public class TokenizerTest
    {
     
      public static void main( String[] args )
      {
        String strTestString = "abcde|fghij|klmnopqrst";
        StringTokenizer tokenizer = new StringTokenizer(strTestString);
        String firstString = tokenizer.nextToken("|");
        System.out.println(firstString);
        String secondString = tokenizer.nextToken("|");
        System.out.println(secondString);
        String thirdString = tokenizer.nextToken("|");
        System.out.println(thirdString);
      }
    }


    Output:

    abcde
    fghij
    klmnopqrst

    Oder suchst Du etwas anderes?
     

  10. #10
    Blind Guardian Blind Guardian ist offline Mitglied
    Registriert seit
    Nov 2004
    Beiträge
    14
    Naja so in etwa kann man es vielleicht nutzen, weiss nicht genau...

    Nehmen wir mal als Beispielstext folgenden.

    "Halli Hallo mich beisst ein Floh, ich weiss nicht wo!
    heute haben wir den 19.01.1982 und es ist schlechtes Wetter.es
    regnet und ist zu warm für Schnee. Ich hoffe das wird sich bald
    ändern und wir haben dann am 19.01.1992 besseres Wetter als
    heute."

    Die beiden Daten nehmen wir ins Auge. Das Programm soll jetzt alle Zeichen zwischen den beiden Daten in einen substring tun, wenn kein zweites Datum vorhanden ist soll der Substring vom ersten Datum bis zum Textende gehen. Ich bekomme es hin, mit substring(String) <<--- das er bis zum Ende liest oder substring( String, String) <<--- das er vom ersten Datum bis zum zweiten Datum liest...nur weiss ich nicht wie ich das verknüpfen soll...

    Also wenn zweites Datum im Text vorhanden, dann substring bis dort, wenn nicht vorhanden dann substring bis Textende...Ich weiss nicht genau wie ich da eventuell eine if-Anweisung formulieren könnte...
     

  11. #11
    Shizzl_chrizzl Shizzl_chrizzl ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Beiträge
    144
    wie sieht deine methode bzw. if-schleife bisher aus
    poste doch mal den code
     

  12. #12
    Blind Guardian Blind Guardian ist offline Mitglied
    Registriert seit
    Nov 2004
    Beiträge
    14
    Ich habe bisher nur...

    ...entweder Substring von Marke bis Ende

    ...oder substring von Marke bis Marke

    Ich bräuchte jetzt also etwas wie,

    Code :
    1
    2
    
    int ind_markevon=result.indexOf(Markevon); //Wo beginnt Markevon
    int ind_markebis=result.indexOf(Markebis); //Wo beginnt Markebis

    Jetzt sollte er testen ob ind_markebis vorhanden ist oder nicht.

    Wenn vorhanden dann
    Code :
    1
    
    String teilstück = result.substring(ind_markevon , ind_markebis);

    Wenn nicht vorhanden dann
    Code :
    1
    
    String teilstück = result.substring(ind_markevon);

    Und das würde ich irgendwie in eine if-Anweisung oder so packen wollen. Nur leider weiss ich nicht wie ich den fragen soll ob es ind_markebis gibt oder ob es das nicht gibt...

    -MfG- Danilo
     

Ähnliche Themen

  1. [c++] eine zeile aus einer datei lesen
    Von Mavericklp im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 19.10.06, 14:44
  2. Maus an bestimmter Stelle
    Von illetuffi im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 04.05.05, 12:57
  3. aus einer log datei von zeile x bis zum ende lesen
    Von Besti im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 11.04.05, 13:41
  4. Aus einer bestimmten Zeile in txt Lesen
    Von BiggJoee im Forum Visual Basic 6.0
    Antworten: 11
    Letzter Beitrag: 09.09.04, 09:56
  5. Antworten: 6
    Letzter Beitrag: 14.07.04, 12:43