# kleine datenbank



## u6g58h8i67roi (7. Dez 2007)

mein programm liest aus einer htmlseite gewisse daten von irgendwelchen usern aus und rechnet mit ihnen und speichert
diese nun in einer textdatei die den namen des users trägt, die kann zb wie folgt aussehn :

Inhalt von DNAofDeath.txt :

```
Registriert am : 24.01.2006
Verbrachte Minuten : 5835.0
UserLevel : 0.5941
Letzte aktualisierung : 07.12.2007
```

mein problem was ich habe ist das er bei jedem neuen durchlauf die werte nicht überschreibt sondern beim nächsten
durchlauf die daten einfach darunter schreibt, da jedoch
"Registriert am : " eine konstante ist, dh sich nach einem mal eintragen nicht mehr ändert soll er das dann auch
übergehen 

und 

bei verbrachte minuten soll der wert immer nur aktualisiert werden,

bei UserLevel soll einfach nur der neue wert mit dem alten verglichen werden
und bei einer änderung des wertes soll darunter hingeschrieben werden : Hat sich am "datum des durchlaufs" um
"differenz zum alten wert" geändert ,zeilenumbruch, "neuer wert : "wert""

die letze aktualisierung soll einfach immer nur ersetzt werden duch das aktuelle datum

es werden nacher mehrere tausend dateien sein, wobei durch eine kleine suche auch zb ein beliebiger user rausgesucht 
werden soll und seine werte ausgegeben werden sollen und bei bedarf noch andere informationen in diese datei 
eingetragen werden können [kommentare zb][momentan ist alles noch konsole] 
aber eins nach dem anderen, 

ich hab zwar wie man sehen kann schon den aufbau der minidatenbank im kopf und weiß auch schon wie man 
textdateien erstellt aber ich habe ein problem mit dem auslesen und ändern von gewissen bestimmten daten,
wäre nett wenn ihr mir bei der lösung meines problems helfen könntet


----------



## maki (7. Dez 2007)

Nimm eine relationale DB und vergiss Textfiles, die 70'er Jahre sind vorbei 

Viel einfacher und weniger Aufwand, wenn man es mal verstanden hat.


----------



## u6g58h8i67roi (7. Dez 2007)

> Nimm eine relationale DB und vergiss Textfiles, die 70'er Jahre sind vorbei



[Ironie [an]] achso klar, hab ich doch glatt vergessen das es das gibt *vornkopphau* sorry für die frage [Ironie [aus]]

was soll das denn sein? da hab ich noch nie etwas von gehört, und bedenke bitte das ich anfänger bin und im moment noch die basics von java lerne,sollte das eine zu komplizierte angelegenheit werden, dann komm ich da eh nicht weit.

bitte nen link zu ner info seite geben [DEUTSCHE bitte] oder einfach vllt mal selber erklären  ,danke


----------



## DocRandom (7. Dez 2007)

Alles ist in deutsch erklärt im IneslBuch

lg
DocRandom


----------



## JPKI (7. Dez 2007)

Wie schreibst du denn in die Datei? Schau dir mal die Konstruktoren der Klasse FileOutputStream an, da gibt es einen mit einem Flag, ob er die neuen Daten dranhängen soll oder alles überschreiben soll.


----------



## maki (7. Dez 2007)

Kurz gesagt um Daten zu speichern (neudeutsch "persistieren") braucht man etwas, wohin sie gespeichert werden.
Textdateien wäre eine veraltete, umständliche und sehr fehleranfällige Möglichkeit.
Bessere Alternativen wären eine relationale Datenbank oder Serialisierung.
Ersterer ist zwar komplexer, aber bietet mehr Möglichkeiten zur Auswertung und Wartung der Daten(suchen, sortieren, etc.pp.). Mit letzterem kann man Java Objekte direkt Speichern (zB. auf die Festplatte zu schreiben) und zu einem späteren Zeitpunkt wieder einlesen. 

http://de.wikipedia.org/wiki/Relationale_Datenbank

In englischer Sprache gibt es oft mehr Auswahl an Informationen, Java wird schwer ohne Englischkenntnisse, solltest da ein Wörterbuch oder Google benutzen.


----------



## u6g58h8i67roi (7. Dez 2007)

ich habe englischkenntnisse die eigendlich sehr gut sind, aber des öfteren stolpere ich über begrifflichkeiten oder gar ganze sätze mit denen ich probs hab


----------



## u6g58h8i67roi (7. Dez 2007)

ARGH

lol ich bin anfänger, das was ich da im JIAEI lese scheint aber nicht für anfänger geeignet zu sein, ich will die Mini-Datenbank ja auch nur zu lernzwecken nutzen, ich bin weder ein industrieller noch bin ich ein schüler, ich lerne zwar viel CrossOver und manches auch erst dann wenn ich es brauche, aber hier scheint mir meine grundlage noch NICHT groß genug zu ein als das ich damit etwas anfangen kann, also okay, lesen kann ich schon, aber VERSTEHEN und lesen sind zwei verschiedene paar schuhe, bitte bleiben wir doch bei dem beispiel was ich gesagt habe, auch wenn das manchen leuten hier unlogisch und dumm vorkommen mag, aus meiner sicht der dinge bin ich was java betrifft immernoch bei den anfänglichen spielereien,


----------



## u6g58h8i67roi (7. Dez 2007)

ich schreibe mit folgendem code in die datei :


```
boolean b3 = true;
                                boolean b4 = true;
                                try {
                                    File file = new File("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt");
                                    FileWriter fw = null;
                                    if (file.exists()) {
                                        if (b3) {
                                            System.out.println("Datei existiert bereits.");
                                            b3 = false;
                                        } else {
                                            System.out.println("Datei wird erstellt.");
                                            b3 = false;
                                        }
                                    }
                                    fw = new FileWriter(file.getPath(), true);
                                    PrintWriter pw = new PrintWriter(fw);
                                    if (b4) {
                                        pw.println("Registriert am : " + datum1);
                                        pw.println("Verbrachte Minuten : " + onMinD);
                                        pw.println("UserLevel : " + erg);
                                        pw.println("Letzte aktualisierung : " + datum);
                                        b4 = false;
                                    }
                                    fw.flush();
                                    fw.close();
                                    pw.flush();
                                    pw.close();
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }
```


----------



## JPKI (7. Dez 2007)

Mal abgesehen davon, dass da einige schwachsinnige if-Abfragen drinne sind, gibt es von der Klasse FileWriter laut API nur einen Konstruktor.
Ich würde dir FileOutputStream empfehlen, dann weisst du, woran du bist:

```
FileOutputStream stream = new FileOutputStream("dateiname.txt",false); //false, wir wollen die Datei neu schreiben und nichts anhängen
```


----------



## u6g58h8i67roi (8. Dez 2007)

hmm und was mache ich dann mit stream?
wenn ichs mir ausgeben lassen will kommt nur das hier: 

java.io.FileOutputStream@901887

und ähnliches was muss ich machen damit ich mit den inhalten der dateien arbeiten kann?

hilfe bin echt verzweifelt


----------



## u6g58h8i67roi (8. Dez 2007)

ich möchte doch bloß wissen wie man aus einer textdatei strings und doubles ausliest, und diese dann über System.out.println ausgeben kann, mehr nicht


----------



## H3llGhost (8. Dez 2007)

Hiermit liest man Zeile für Zeile aus:


```
br = new BufferedReader(new FileReader(datei)); //datei ist ja wohl klar ... ;-) Da muss der String von dem Dateinnamen hin
         while((zeile = br.readLine()) != null) {
            br.readLine(); // Dies ist der String den du verarbeiten möchtest
         }
         br.close();
```

Da du ja weißt in welcher Zeile was steht kannst du einen Zähler nebenher laufen lassen und mit einer switch-Bedingung deine Werte in die richtigen Variablen speichern.

Damit der Code funktioniert muss du noch folgendes am Anfang einfügen:

```
import java.io.FileReader;
import java.io.BufferedReader;
```


----------



## u6g58h8i67roi (8. Dez 2007)

danke danke, jetzt bin ich schon ein stück weiter gekommen, aber mein nächstes problem wobei ich noch hilfe brauchen könnte ist das ich nun folgende Exception bekomme:


```
Exception in thread "main" java.lang.NullPointerException
        at java.io.Writer.<init>(Writer.java:71)
        at java.io.PrintWriter.<init>(PrintWriter.java:75)
        at java.io.PrintWriter.<init>(PrintWriter.java:62)
        at DNA.java.UserLevel.main(UserLevel.java:124)
```

hier mal mein code mit dem ich die datei bearbeiten will:


```
try {
                                    File file = new File("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt");
                                    FileWriter fw = null;
                                    PrintWriter pw = new PrintWriter(fw);
                                    fw = new FileWriter(file.getPath(), true);
                                    System.out.println(file);
                                    
                                    
                                    if (file.exists()) {
                                        BufferedReader br = new BufferedReader(new FileReader("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                        while ((zeile = br.readLine()) != null) {
                                            br.readLine();
                                            if (zeile.contains("UserLevel")) {
                                                double diff = Double.valueOf(zeile.substring(12)).doubleValue();
                                                double change = diff - erg;
                                                if (change == 0) {
                                                    
                                                    pw.println("UserLevel hat sich am " + date + " um " + change + " geändert.");
                                                    String ergS = "" + erg;
                                                    zeile.replace(zeile.substring(12), ergS);
                                                }
                                            }
                                            continue;
                                        }
                                        br.close();
                                        System.out.println("Datei wird geupdated.");
                                    } else {
                                        System.out.println("Datei wird erstellt.");                                        
                                        fw = new FileWriter(file.getPath(), true);
                                        pw.println("Registriert am : " + datum1);
                                        pw.println("Verbrachte Minuten : " + onMinD);
                                        pw.println("UserLevel : " + erg);                                        
                                        pw.println();
                                        pw.flush();
                                        pw.close();
                                        fw.flush();
                                        fw.close();
                                    }
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }
```


----------



## maki (8. Dez 2007)

Mach da doch mal die Reihenfolge richtig:

```
FileWriter fw = null;
PrintWriter pw = new PrintWriter(fw);
fw = new FileWriter(file.getPath(), true);
```


----------



## u6g58h8i67roi (8. Dez 2007)

lol ich bin dumm glaub ich xD DAS hätte mir auch selbst einfallen können, naja danke für den kleinen aber feinen tipp =)


----------



## maki (8. Dez 2007)

DNAofDeath hat gesagt.:
			
		

> lol ich bin dumm glaub ich xD DAS hätte mir auch selbst einfallen können, naja danke für den kleinen aber feinen tipp =)


Da bin ich mir sicher, solltest die Exceptions genau lesen, stand ja alles drinn


----------



## u6g58h8i67roi (8. Dez 2007)

ich habe nun ein etwas komplexeres problem, ich möchte ja bestimmte aktiuonen nur ausführen wenn die entsprechende datei existiert, ABER das ich ja mit 


```
File file =  new File("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt");
```

immer eine neue datei anlege, ist die datei bei der abfrage 


```
if (file.exists())
```

ja sowieso schon vorhanden dann wird er IMMER nur das machen was in der if anweisung steht, in meinem fall heißt das NIX

denn wenn die datei noch nicht vorhanden ist soll er eine neue anlegen und dann gewisse dinge da reinschreiben, wie in meinem etwas größeren code oben gut zu sehen ist.

wie kann ich das lösen? wie kann ich vorher prüfen ob die datei vorhanden ist, und sie erst dann neu anlegen wenn sie nicht existiert?


----------



## H3llGhost (8. Dez 2007)

Versuche sie einfach mit dem FileReader zu öffnen ...
Du packst das in eine try-catch-Schleife und wenn es eine Exception gibt, dann weißt du, dass es die Datei noch nicht gibt.

Zum Schreiben einer Datei nehme ich den FileWriter und dazu gibt es auch den BufferedWriter.


```
try{
         bw = new BufferedWriter(new FileWriter(datei));
         bw.write("blabla");
         bw.newLine();
         bw.close();
      } catch (Exception e)
      {
      }
```

Der schreibt jedes Mal bei mir die Datei neu und fängt sogar vorne an.
Da du die Datei ja vorher ausliest ist es ja kein Problem den Inhalt immer wieder zu überschreiben.


----------



## u6g58h8i67roi (8. Dez 2007)

WOW xD

da muss ich ja wieder ganz von vorne anfangen mit dem aufbau, gibt es keine lösung für mein jetziges gerüst?


----------



## H3llGhost (8. Dez 2007)

Von ganz vorne musst du nicht anfangen ... ;-)
Du musst einfach nur an den Code ein bisschen Suchen und ersetzen spielen dann geht das ... ;-)
Und durch solche Sachen lernt man auch ganz gut ...
Kenne ich nur zu gut ... xD


----------



## u6g58h8i67roi (8. Dez 2007)

öhm, wenn er die datei IMMER neu schreibt, oder alles überschreibt, wie zum teufel soll ich dann an die alten werte rankommen die in der datei standen? geschweige denn diese ändern?

es ist ein wert drin, und wenn dieser sich ändert, aber auch NUR dann soll der alte wert von dem neuen abgezogen werden, der neue wert eingetragen werden, und noch eingetragen werden wann sich der wert um wieviel verändert hat, das ist mit deiner methode nicht mehr möglich weils ihm egal ist was vorher drinstand, er löscht infach alles und überschreibt es, das ist vielleicht gut wenn man ALLES aktualisieren will, ohne etwas mit den alten werten anzufangen, aber so kann ih nix damit anfangen, ich stehe jetzt also wieder ohne lösung da, wer das hier liest, bitte mal ein paar beiträge vorher meine frage mit dem anlegen der datei und dem probelm des schon-vorhanden-seins lesen =)


----------



## u6g58h8i67roi (8. Dez 2007)

hier ist der code bei dem ich mit deiner methode arbeite:


```
File lagerDatei = new File("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt");
                                if (!lagerDatei.exists()) {
                                    try {
                                        System.out.println("Datei wird erstellt.");
                                        PrintWriter pw = new PrintWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt");
                                        pw.println("Registriert am : " + datum1);
                                        pw.println("Verbrachte Minuten : " + onMinD);
                                        pw.println("UserLevel : " + erg);
                                        pw.close();
                                    } catch (Exception e) {
                                        System.out.println("Datei konnte nicht erstellt werden");
                                    }
                                } else {
                                    System.out.println("Datei wird geupdated.");
                                    PrintWriter pw = new PrintWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt");
                                    BufferedReader br = new BufferedReader(new FileReader("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                    while ((zeile = br.readLine()) != null) {
                                        br.readLine();
                                        if (zeile.contains("UserLevel : ")) {
                                            double diff = Double.valueOf(zeile.substring(12)).doubleValue();
                                            double change = diff - erg;
                                            if (change == 0) {

                                                pw.println("UserLevel hat sich am " + date + " um " + change + " geändert.");
                                                String ergS = "" + erg;
                                                zeile.replace(zeile.substring(12), ergS);
                                            }
                                        }
                                        continue;


                                    }
                                    br.close();

                                }
```

und wenn die datei schon existiert löscht er sie einfach komplett und dann hab ich wieder das selbe ergebnis wie bei dem problem was ich eben schon hatte, hat mich also net wirklich weitergebracht dein tipp =((((


----------



## Wolfgang Lenhard (8. Dez 2007)

Kleiner Tipp: Wenn eine relationale Datenbank für Dich zu groß, bzw. in der Einarbeitung zu umfangreich ist, dann kannst Du Daten auch über die in Java eingebaute Serialisierungs-Routinen in Dateien speichern, oder beispielsweise sehr komfortabel mittels XStream in eine XML-Datei speichern. Das macht es einfacher, als das Hantieren mit Text-Dateien.
Wenn Du die Daten Deines Programms als Objekte in einer ArrayList oder Hashmap ablegst, dann lässt sich leicht prüfen, ob ein solcher Datensatz (-> Objekt) bereits vorhanden ist und am Ende per XStream in einen XML-String wandeln, den Du dann schließlich wie bisher auf Platte schreibst.

Ciao,
  Wolfgang


----------



## u6g58h8i67roi (8. Dez 2007)

???

wo habe ich geschrieben das mir das hantieren mit textdateien zu schwer oder zu lästig ist?

im gegenteil ich MÖCHTE sogar auf diese weise arbeiten, später kann ich mein programm ja immernoch umschreiben, aber im moment ist mir das ganz recht das ich so viele textfiles habe =)

ausserdem weiß ich auch nicht wie man XML dateien auslesen kann, wie man werte darin verändern kann usw usw usw also wäre daß schon wieder ein neues thema, ganz zu schweigen von dem umgang mit XStream.

hier mal etwas anders ausgedrückt was ich möchte was mein programm tut

PRÜFE DAS VORHANDENSEIN VON DATEI "DATEI"

----->WENN DIE DATEI EXISTIERT :

GEBE AUF DER KONSOLE AUS : DATEI WIRD AKTUALISIERT
GUCK DIR "ZEILE" AN UND GIB MIR EINEN WERT ZURÜCK

WENN DER WERT GLEICH DEM NEUEN WERT IST/ 0.0 BETRÄGT : 
TUE NICHTS

WENN DER WERT NICHT GLEICH IST :

RECHNE MIT DEM WERT
ERGÄNZE DIE DATEI UM GENAU EINE ZEILE IN DER "STRING" STEHT


----->WENN SIE NICHT EXISTIERT :

GIB AUF DER KONSOLE AUS : DATEI WIRD ANGELEGT
LEGE SIE AN 
SCHREIBE "STRING"
SCHREIBE "STRING"
SCHREIBE "STRING"

warum kann ich nur eine datei überprüfen wenn sie vorher erst neu angelegt wird?
ist es in java denn nicht möglich VOR anlegen einer datei zu prüfen ob diese schon vorhanden ist?


----------



## H3llGhost (8. Dez 2007)

DNAofDeath hat gesagt.:
			
		

> öhm, wenn er die datei IMMER neu schreibt, oder alles überschreibt, wie zum teufel soll ich dann an die alten werte rankommen die in der datei standen? geschweige denn diese ändern?
> 
> es ist ein wert drin, und wenn dieser sich ändert, aber auch NUR dann soll der alte wert von dem neuen abgezogen werden, der neue wert eingetragen werden, und noch eingetragen werden wann sich der wert um wieviel verändert hat, das ist mit deiner methode nicht mehr möglich weils ihm egal ist was vorher drinstand, er löscht infach alles und überschreibt es, das ist vielleicht gut wenn man ALLES aktualisieren will, ohne etwas mit den alten werten anzufangen, aber so kann ih nix damit anfangen, ich stehe jetzt also wieder ohne lösung da, wer das hier liest, bitte mal ein paar beiträge vorher meine frage mit dem anlegen der datei und dem probelm des schon-vorhanden-seins lesen =)



Erst einlesen dann speichern ... ;-)
So mache ich das auch und es läuft perfekt!




			
				DNAofDeath hat gesagt.:
			
		

> und wenn die datei schon existiert löscht er sie einfach komplett und dann hab ich wieder das selbe ergebnis wie bei dem problem was ich eben schon hatte, hat mich also net wirklich weitergebracht dein tipp =((((



Hast ja auch nicht meinen Code benutzt:


```
[...]
                                        System.out.println("Datei wird erstellt.");
                                        PrintWriter pw = new PrintWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt");
                                        pw.println("Registriert am : " + datum1);
                                        pw.println("Verbrachte Minuten : " + onMinD);
                                        pw.println("UserLevel : " + erg);
                                        pw.close();
                                    } catch (Exception e) {
                                        System.out.println("Datei konnte nicht erstellt werden");
                                    }
```

Du benutzt immer noch PrintWriter ...


----------



## u6g58h8i67roi (8. Dez 2007)

huch


----------



## H3llGhost (8. Dez 2007)

Und?

Geht es jetzt?


----------



## u6g58h8i67roi (8. Dez 2007)

ka, ich verstehe jetzt nur noch bahnhof, er macht die datei ,er schreibt alles rein, aber wie ich das jetzt auslesen soll, keine ahnung

das hier hast du mir ja geraten:


```
try {
                                    
                                    BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                    bw.write("Registriert am : " + datum1);
                                    bw.newLine();
                                    bw.write("Verbrachte Minuten : " + onMinD);
                                    bw.newLine();
                                    bw.write("UserLevel : " + erg);
                                    bw.newLine();
                                    bw.close();
                                } catch (Exception e) {
                                    System.out.println("BLUBB!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                                }
```

und wo ich jetzt ausgeben kann,ob die datei neu erstellt wird, oder ob sie nur aktualisiert wird, ist mir ein rätsel.

und ganz erhlich? ich bin TOTAL verwirrt jetzt


----------



## H3llGhost (8. Dez 2007)

Hiermit liest du das aus:


```
try {
         br = new BufferedReader(new FileReader(datei));
         while((zeile = br.readLine()) != null) {
            if(zeile.startsWith("Registriert am : ")) {
               String regdate = zeile.replace("Registriert am : ", "");
            }
            if(zeile.startsWith("Verbrachte Minuten : ")) {
               String onlinetime = zeile.replace("Verbrachte Minuten : ", "");
            }
            if(zeile.startsWith("UserLevel : ")) {
               String ulevel = zeile.replace("UserLevel : ", "");
            }
         }
         br.close();
      } catch (Exception e) {
        System.out.println("BLUBB!!!");
        neuDatei(); //Aufruf der Dateierstellung
      }
```

Das kommt als Erstes.
Und zum Schluss kommt erst der Code von dir mit dem Speichern ... ;-)
Er versucht auf die Datei zuzugreifen wenn das misslingt geht er in die catch-Bedingung und führt dann die Funktion aus.
Aber das musst du selber wissen wie du es von der Struktur am Besten machst ...
Du kannst ihn dann auch erst zur Registrierung schicken ...

Verstehst du?


----------



## u6g58h8i67roi (8. Dez 2007)

```
try {
                                    BufferedReader br = new BufferedReader(new FileReader("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                    while ((zeile = br.readLine()) != null) {
                                        if (zeile.startsWith("Registriert am : ")) {
                                            String regdate = zeile.replace("Registriert am : ", "BLUBB");
                                        }
                                        if (zeile.startsWith("Verbrachte Minuten : ")) {
                                            String onlinetime = zeile.replace("Verbrachte Minuten : ", "BLUBB");
                                        }
                                        if (zeile.startsWith("UserLevel : ")) {
                                            String ulevel = zeile.replace("UserLevel : ", "BLUBB");
                                        }
                                    }
                                    br.close();
                                } catch (Exception e) {
                                    System.out.println("BLUBB!!!");
                                    try {

                                        BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                        bw.write("Registriert am : " + datum1);
                                        bw.newLine();
                                        bw.write("Verbrachte Minuten : " + onMinD);
                                        bw.newLine();
                                        bw.write("UserLevel : " + erg);
                                        bw.newLine();
                                        bw.close();
                                    } catch (Exception p) {
                                        System.out.println("BLUBB!!");
                                    }
                                }
                                try {

                                    BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                    bw.write("Registriert am : " + datum1);
                                    bw.newLine();
                                    bw.write("Verbrachte Minuten : " + onMinD);
                                    bw.newLine();
                                    bw.write("UserLevel : " + erg);
                                    bw.newLine();
                                    bw.close();
                                } catch (Exception e) {
                                    System.out.println("BLUBB!!");
                                }
```

meintest du das dann also so?


----------



## H3llGhost (8. Dez 2007)

Ja generell schon aber ich würde das mit Funktionen mal schreiben ...
Ist dein Projekt eigentlich nicht für die Öffentlichkeit oder warum postest du nicht den gesamten Code?


----------



## u6g58h8i67roi (8. Dez 2007)

oh, naja ich kann auch mal den ganzen code posten, die leute die mir den code klauen wollen würden kommen eh nicht hier her =) 


```
package DNA.java;

import javax.swing.*;
import java.awt.*;
import java.text.*;
import java.io.*;
import java.util.*;
import java.net.*;

public class UserLevel {

    public UserLevel() {
    }

    public static void main(String[] args) throws Exception {

        BufferedReader br0 = new BufferedReader(new InputStreamReader(System.in));
        URL url;
        int k = 0;
        int i = 0;
        int xtb = 0;
        String nick = "";
        String read = "";
        String datum1 = "";
        String onMin = "";
        double onMinD;
        System.out.println("Eingabe:");
        DateFormat df = new SimpleDateFormat("dd.MM.yyyy");
        DateFormat defaultDate = DateFormat.getDateInstance();
        String datum = defaultDate.format(new java.util.Date());
        Date to = df.parse(datum);
        StringTokenizer st = new StringTokenizer(br0.readLine(), ",");
        int al = st.countTokens() + 1;
        String[] nicks = new String[al];
        double[] werte = new double[al];
        while (st.hasMoreTokens()) {
            for (int x = 0; st.hasMoreTokens(); x++) {
                xtb++;
                nick = st.nextToken();
                if (nick.contains("DNAofDeath")) {
                    nick = " blah";
                }
                if (nick.contains("James")) {
                    nick = " blah";
                }
                if (x >= 1) {
                    nick = nick.substring(1);
                }
                nick = "http://knuddels.de/ww/" + nick;
                if (nick.contains(" ")) {
                    ;
                }
                {
                    nick = nick.replace(" ", "_");
                    nick = nick.replace("&", "%26");
                    url = new URL(nick);
                }
                BufferedReader br1 = new BufferedReader(new InputStreamReader(url.openStream()));
                while ((read = br1.readLine()) != null) {
                    read = read.replace("<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=", "");
                    read = read.replace("\"></HEAD></HTML>", "");
                    url = new URL(read);
                    BufferedReader br2 = new BufferedReader(new InputStreamReader(url.openStream()));
                    while ((read = br2.readLine()) != null) {
                        nick = nick.replace("http://knuddels.de/ww/", "");
                        if (read.contains("<FONT FACE=\"Arial\">
[B]")) {
                            read = read.replace("<FONT FACE=\"Arial\">
[B]", "");
                            read = read.replace("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\"> hat sich am [B]", "");
                            if (read.contains("http://spenden.knuddels.de")) {
                                read = read.replace("<a href=\"http://spenden.knuddels.de\" target=_blank><img border=0 src=\"../../images/ico_ribbon.gif\"></a> ", "");
                                read = read.replace("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\">hat sich am [B]", "");
                            }
                            read = read.replace("&", "&");
                            read = read.replace("&", ">");
                            read = read.replace("&", "<");
                            read = read.replace("&", " ");
                            nick = nick.replace("%26", "&");
                            nick = nick.replace("_", " ");
                            int zeichen = nick.length();
                            int h = nick.length();
                            if (zeichen == nick.length()) {
                                nick = read.substring(0, h);
                                k = nick.length() + 10;
                                datum1 = read.substring(h, k);
                                String time1 = read.substring(h + 39, h + 47);
                                read = read.replace(nick + datum1 + "[/B]<FONT COLOR=\"000000\"> um " + time1 + " bei Knuddels registriert und seitdem schon [B]", "");
                                String ez = read.substring(0, 10);
                                String[] n = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
                                for (int a = 0; a <= 9; a++) {
                                    String t = ez.substring(a, a + 1);
                                    for (int j = 0; j <= 9; j++) {
                                        if (t.contains(n[j])) {
                                            onMin = onMin + n[j];
                                        }
                                    }
                                }
                                onMinD = Double.parseDouble(onMin);


                                Date from = df.parse(datum1);
                                double diffMillis = to.getTime() - from.getTime();
                                double diffMins = diffMillis / (1000 * 60);
                                double erg = (100 / diffMins) * (double) onMinD;

                                erg = Math.round(erg * 10000.) / 10000.;
                                onMin = "";



                                String zeile;


                                SimpleDateFormat fmt = new SimpleDateFormat();
                                fmt.applyPattern("dd-MM-yyyy,hh:mm:ss");
                                Calendar cal = Calendar.getInstance();
                                String date = fmt.format(cal.getTime()).toString();


                                try {
                                    BufferedReader br = new BufferedReader(new FileReader("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                    while ((zeile = br.readLine()) != null) {
                                        if (zeile.startsWith("Registriert am : ")) {
                                            String regdate = zeile.replace("Registriert am : ", "BLUBB");
                                        }
                                        if (zeile.startsWith("Verbrachte Minuten : ")) {
                                            String onlinetime = zeile.replace("Verbrachte Minuten : ", "BLUBB");
                                        }
                                        if (zeile.startsWith("UserLevel : ")) {
                                            String ulevel = zeile.replace("UserLevel : ", "BLUBB");
                                        }
                                    }
                                    br.close();
                                } catch (Exception e) {
                                    System.out.println("BLUBB!!!");
                                    try {

                                        BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                        bw.write("Registriert am : " + datum1);
                                        bw.newLine();
                                        bw.write("Verbrachte Minuten : " + onMinD);
                                        bw.newLine();
                                        bw.write("UserLevel : " + erg);
                                        bw.newLine();
                                        bw.close();
                                    } catch (Exception p) {
                                        System.out.println("BLUBB!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                                    }
                                }
                                try {

                                    BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                    bw.write("Registriert am : " + datum1);
                                    bw.newLine();
                                    bw.write("Verbrachte Minuten : " + onMinD);
                                    bw.newLine();
                                    bw.write("UserLevel : " + erg);
                                    bw.newLine();
                                    bw.close();
                                } catch (Exception e) {
                                    System.out.println("BLUBB!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                                }


//                                File lagerDatei = new File("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt");
//                                if (!lagerDatei.exists()) {
//                                    try {
//                                        System.out.println("Datei wird erstellt.");
//                                        PrintWriter pw = new PrintWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt");
//                                        pw.println("Registriert am : " + datum1);
//                                        pw.println("Verbrachte Minuten : " + onMinD);
//                                        pw.println("UserLevel : " + erg);
//                                        pw.close();
//                                    } catch (Exception e) {
//                                        System.out.println("Datei konnte nicht erstellt werden");
//                                    }
//                                } else {
//                                    System.out.println("Datei wird geupdated.");
//                                    PrintWriter pw = new PrintWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt");
//                                    BufferedReader br = new BufferedReader(new FileReader("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
//                                    pw.println("UserLevel hat sich am " + date + " um " + "change" + " geändert.");
//                                    while ((zeile = br.readLine()) != null) {
//                                        br.readLine();
//                                        if (zeile.contains("UserLevel : ")) {
//                                            double diff = Double.valueOf(zeile.substring(12)).doubleValue();
//                                            double change = diff - erg;
//                                            if (change == 0) {
//
//                                                pw.println("UserLevel hat sich am " + date + " um " + change + " geändert.");
//                                                String ergS = "" + erg;
//                                                zeile.replace(zeile.substring(12), ergS);
//                                            }
//                                        }
//                                        continue;
//                                    }
//                                    br.close();
//                                }






//                                try {
//
//
//
//                                    File file = new File("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt");
//                                    FileWriter fw = null;
//                                    fw = new FileWriter(file.getPath(), true);
//                                    PrintWriter pw = new PrintWriter(fw);
//
//                                    System.out.println(file);
//
//
//
//
//                                    if (file.exists()) {
//                                        BufferedReader br = new BufferedReader(new FileReader("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
//                                        while ((zeile = br.readLine()) != null) {
//                                            br.readLine();
//                                            if (zeile.contains("UserLevel")) {
//                                                double diff = Double.valueOf(zeile.substring(12)).doubleValue();
//                                                double change = diff - erg;
//                                                if (change == 0) {
//
//                                                    pw.println("UserLevel hat sich am " + date + " um " + change + " geändert.");
//                                                    String ergS = "" + erg;
//                                                    zeile.replace(zeile.substring(12), ergS);
//                                                }
//                                            }
//                                            continue;
//
//
//                                        }
//                                        br.close();
//                                        System.out.println("Datei wird geupdated.");
//                                    }
//                                    System.out.println("Datei wird erstellt.");
//                                    fw = new FileWriter(file.getPath(), true);
//                                    pw.println("Registriert am : " + datum1);
//                                    pw.println("Verbrachte Minuten : " + onMinD);
//                                    pw.println("UserLevel : " + erg);
//                                    pw.println();
//                                    pw.flush();
//                                    pw.close();
//                                    fw.flush();
//                                    fw.close();
//
//                                } catch (IOException e) {
//                                    e.printStackTrace();
//                                }
                                System.out.println(erg + " = " + nick);
                                nicks[i] = nick;
                                werte[i] = erg;
                                i++;
                            }
                        }
                    }
                    br2.close();
                }
                br1.close();
            }
            br0.close();
        }
        final Map<String, Double> map = new HashMap<String, Double>();
        int g = 1;
        for (int xd = 0; xd <= xtb; xd++) {
            map.put(nicks[xd], werte[xd]);
        }
        Comparator<String> comparator = new Comparator<String>() {

            @Override
            public int compare(String a, String b) {
                return -map.get(a).compareTo(map.get(b));
            }
        };
        Map<String, Double> sortedMap = new TreeMap<String, Double>(comparator);
        sortedMap.putAll(map);
        File file = new File("C:\\test.txt");
        if (file.exists()) {
            file.delete();
        }
        System.out.println("File Überschrieben");
        for (String s : sortedMap.keySet()) {
            try {
                FileWriter fw = new FileWriter(file.getPath(), true);
                PrintWriter pw = new PrintWriter(fw);

                String ausgabe = "#" + g + ".)" + s + " ~~~~~~> " + sortedMap.get(s);

                pw.println(ausgabe);
                fw.flush();
                fw.close();
                pw.flush();
                pw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println("#" + g + ".)" + s + " ~~~~~~> " + sortedMap.get(s));
            g++;
            if (g == 11) {
                break;
            }
        }

    }
}
```

die auskommentierten sachen sind halt auskommentiert =)


----------



## H3llGhost (8. Dez 2007)

Habe folgendes gesehen:


```
try {
                                    BufferedReader br = new BufferedReader(new FileReader("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                    while ((zeile = br.readLine()) != null) {
                                        if (zeile.startsWith("Registriert am : ")) {
                                            String regdate = zeile.replace("Registriert am : ", "BLUBB");
                                        }
                                        if (zeile.startsWith("Verbrachte Minuten : ")) {
                                            String onlinetime = zeile.replace("Verbrachte Minuten : ", "BLUBB");
                                        }
                                        if (zeile.startsWith("UserLevel : ")) {
                                            String ulevel = zeile.replace("UserLevel : ", "BLUBB");
                                        }
                                    }
                                    br.close();
                                } catch (Exception e) {
                                    System.out.println("BLUBB!!!");
                                    try {

                                        BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                        bw.write("Registriert am : " + datum1);
                                        bw.newLine();
                                        bw.write("Verbrachte Minuten : " + onMinD);
                                        bw.newLine();
                                        bw.write("UserLevel : " + erg);
                                        bw.newLine();
                                        bw.close();
                                    } catch (Exception p) {
                                        System.out.println("BLUBB!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                                    }
                                }
```

Du solltest da dann bitte auch dieselben Variablen nutzen!


----------



## u6g58h8i67roi (8. Dez 2007)

ja schon klar XD ,sorry das ich grade etwas unaufmerksam und durch den wind bin, aber ich bin sehr ehrgeizig was das lernen angeht, und da ich mir das alles selbst beibringen muss, bzw ihr hier die einzigen seid die mir dabei helfen (aktiv, ich lese natürlich auch des öfteren in gewissen onlinebüchern und benutze google) , kommt es schonmal vor das ich 10 - 15 stunden am tag an java sitze,und dann am ende des tages etwas im arsch bin ,ich mach heute auch net mehr lange,vllt noch so 2 stunden oder so, sonst platzt mein kopf xD


----------



## H3llGhost (8. Dez 2007)

:-D

Du machst viel zu viel!
Ich habe das zwei Stunden in der Schule und abends sitze ich paar Stunden mal dran und mehr nicht ...
Musst dir mal Gedanken drüber machen ...
Bist du Student oder warum lernst du das so verrückt?


----------



## u6g58h8i67roi (8. Dez 2007)

nee bin kein student, ich will einfach java beherrschen, und das ich solange da dran sitze liegt wohl allein an meiner schweren auffassungsgabe, weil ich in den ganzen stunden die ich tagtäglich dran sitze fast nix gebacken bekomme, ist halt was anderes als schule ,sei es jetzt in der lehre oder im studium.

ich will einfach immer weitermachen und weitermachen, und vergesse dann manchmal die zeit, dann probiere ich hier noch etwas aus, verenne mich die und die idee, komme dann zum unrsprünglichen gedanken zurück, und arbeite daran weiter, dann hab ich auch zwischendurch anderes zu tun, und naja, vllt hast du hier schon erkannt das ich ziemlich zerstreut bin xDDDD aber dafür bin ich sehr hartnäckig xD


----------



## u6g58h8i67roi (8. Dez 2007)

ausserdem kenne ic 14 jährige die besser in java proggen können als ich, und naja, xDDD *ohne worte*


----------



## u6g58h8i67roi (8. Dez 2007)

OMG LOL ich hab netbeans kaputt gemacht 0o

```
java.lang.NoSuchMethodError: java.lang.ThreadDeath: method <init>(Ljava/lang/String;)V not found
	at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:179)
	at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:460)
[catch] at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:151)
```


----------



## H3llGhost (8. Dez 2007)

Oh nein ... :-D


----------



## u6g58h8i67roi (8. Dez 2007)

ne jetzt mal im ernst ,


```
try {
                                    BufferedReader br = new BufferedReader(new FileReader("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                    while ((zeile = br.readLine()) != null) {
                                        if (zeile.startsWith("Registriert am : ")) {
                                            datum1 = zeile.replace("Registriert am : " + datum1, "BLUBB");
                                        }
                                        if (zeile.startsWith("Verbrachte Minuten : ")) {
                                            onMin = zeile.replace("Verbrachte Minuten : " + onMin, "BLUBB");
                                        }
                                        if (zeile.startsWith("UserLevel : ")) {
                                            ergS = zeile.replace("UserLevel : "+ erg, "BLUBB");
                                        }
                                    }
                                    br.close();
                                } catch (Exception e) {
                                    System.out.println("BLUBB!!!");
                                    try {

                                        BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                        bw.write("Registriert am : " + datum1);
                                        bw.newLine();
                                        bw.write("Verbrachte Minuten : " + onMinD);
                                        bw.newLine();
                                        bw.write("UserLevel : " + ergS);
                                        bw.newLine();
                                        bw.close();
                                    } catch (Exception p) {
                                        System.out.println("BLUBB!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                                    }
                                }
                                try {

                                    BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                    bw.write("Registriert am : " + datum1);
                                    bw.newLine();
                                    bw.write("Verbrachte Minuten : " + onMinD);
                                    bw.newLine();
                                    bw.write("UserLevel : " + erg);
                                    bw.newLine();
                                    bw.close();
                                } catch (Exception e) {
                                    System.out.println("BLUBB!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                                }
```

das funktioniert nicht, das stirbt irgendwas, ka was, die exception scheint wohl net mal netbeans zu kennen, weil ich da ne meldung bekomme und sich ein fenster öffnet wo die fehlermeldung an netbeans.org gesendet wird, und ich auch noch genau eingeben soll was ich zum zeitpunkt des fehlers gemacht hab usw,

hast du vllt ne ahnung was ich da jetzt ändern soll? findest du einen fehler?

ach ja das BLUBB ist nur zum testen, da kommt selbstverständlich was anderes hin nachher


----------



## H3llGhost (8. Dez 2007)

Wo genau stirbt der denn da?


----------



## u6g58h8i67roi (8. Dez 2007)

das ist ja das dubiose, ich bekomme NUR die fehlermeldung von oben, sonst nix ^^ keine meldung, kein fehler,kein hinweiß NIX -.-*


----------



## H3llGhost (8. Dez 2007)

Kannst du mal den aktuellen Code posten?


----------



## u6g58h8i67roi (8. Dez 2007)

ich hab mal einen teil da rausgenommen, jetzt geht es wieder,aber hab noch ein paar exceptions, muss die erstmal bereinigen =)

ich sag dir dan in 2 minuten bescheid wie es aussieht =)


----------



## maki (8. Dez 2007)

> } catch (Exception e) {
> System.out.println("BLUBB!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
> }


So etwas ist generell sehr schlecht, ein bisschen besser:


> } catch (Exception e) {
> System.out.println("Exception caught:" + e);
> }


Dann weißt du zumindest was passiert ist, doch besser als nur "Blub!" 

noch besser:


> } catch (IOException e) {
> System.out.println("IOExceptioncaught:" + e);
> // mach was mit der Exception bzw. schmeiss eine neue, "Exception Translation"
> }


So fängst du nur die checked Eception und nicht alle, ist wichtig, vor allem wenn man die Exception ignoriert


----------



## u6g58h8i67roi (8. Dez 2007)

ja da hast du recht, aber jetzt grade waren mir die Exen noch egal, weil ich ja netmal funktionierenden code hatte,  werde mich dann drum kümmern, auf jedenfall funktioniert der code jetzt einwandtfrei und ich bekomme keine exen mehr, und er schreibt die datei schön voll, hier mal meine ausgabe :


```
Eingabe:
19Honey83, 21zicke, Benjamin1780, Berlindreams, Chris 27, chrisfl, DanyBW, DirtyGentleman, Dreamer284, einsamer
 boy sucht frau, EngelmitBvor, Euro Car, Fuchur1972, Honeymoon1973, jacqueline 78, James, knuffschööö, Leaa21, 
lena82, Lotus Love, Luder85, Luigi81, mann25BW, maxim002, Miss Berlin1984, ne-boy1981, No Angel18, 
NutellaFeechen, Paracelseus, PcP, Pharao25, Püppchen30, RoteZora38, rule24, sandy553, sasanova82, schwuain25,
 Spongebob2224, Starfire79, TheSumOfAllFears, Tunnelgirl, vw-team7, XZwischen Angel und DevilX

Datei wird Aktualisiert
9.1046 = 19Honey83
Datei wird Aktualisiert
4.7555 = 21zicke
Datei wird Aktualisiert
9.0215 = Benjamin1780
Datei wird Aktualisiert
6.4365 = Chris 27
Datei wird Aktualisiert
6.6392 = chrisfl
Datei wird Aktualisiert
15.1911 = DanyBW
Datei wird Aktualisiert
6.3961 = DirtyGentleman
Datei wird Aktualisiert
3.0743 = Dreamer284
Datei wird Aktualisiert
9.5636 = einsamer boy sucht frau
Datei wird Aktualisiert
1.4405 = EngelmitBvor
Datei wird Aktualisiert
6.7197 = Euro Car
Datei wird Aktualisiert
0.7273 = Fuchur1972
Datei wird Aktualisiert
7.0523 = Honeymoon1973
Datei wird Aktualisiert
7.4006 = jacqueline 78
Datei wird Aktualisiert
8.2083 = knuffschööö
Datei wird Aktualisiert
13.0205 = Leaa21
Datei wird Aktualisiert
5.693 = lena82
Datei wird Aktualisiert
3.6829 = Lotus Love
Datei wird Aktualisiert
1.798 = Luder85
Datei wird Aktualisiert
1.2122 = Luigi81
Datei wird Aktualisiert
2.4411 = mann25BW
Datei wird Aktualisiert
11.8579 = maxim002
Datei wird Aktualisiert
20.4305 = Miss Berlin1984
Datei wird Aktualisiert
18.6059 = ne-boy1981
Datei wird Aktualisiert
10.9444 = No Angel18
Datei wird Aktualisiert
5.9925 = NutellaFeechen
Datei wird Aktualisiert
0.4928 = Paracelseus
Datei wird Aktualisiert
2.5293 = PcP
Datei wird Aktualisiert
18.0528 = Pharao25
Datei wird Aktualisiert
11.2711 = Püppchen30
Datei wird Aktualisiert
3.2386 = RoteZora38
Datei wird Aktualisiert
5.3081 = rule24
Datei wird Aktualisiert
20.5305 = sandy553
Datei wird Aktualisiert
11.916 = sasanova82
Datei wird Aktualisiert
9.0823 = Spongebob2224
Datei wird Aktualisiert
3.7781 = Starfire79
Datei wird Aktualisiert
3.7333 = TheSumOfAllFears
Datei wird Aktualisiert
2.6567 = Tunnelgirl
Datei wird Aktualisiert
9.6195 = vw-team7
Datei wird Aktualisiert
8.6555 = XZwischen Angel und DevilX
File Überschrieben
#1.)sandy553 ~~~~~~> 20.5305
#2.)Miss Berlin1984 ~~~~~~> 20.4305
#3.)ne-boy1981 ~~~~~~> 18.6059
#4.)Pharao25 ~~~~~~> 18.0528
#5.)DanyBW ~~~~~~> 15.1911
#6.)Leaa21 ~~~~~~> 13.0205
#7.)sasanova82 ~~~~~~> 11.916
#8.)maxim002 ~~~~~~> 11.8579
#9.)Püppchen30 ~~~~~~> 11.2711
#10.)No Angel18 ~~~~~~> 10.9444
BUILD SUCCESSFUL (total time: 18 seconds)
```

und das steht dann nachher in der datei :


```
19honey83.txt.


Registriert am : 02.08.2007
Verbrachte Minuten : 16787.0
UserLevel : 9.1046
```


----------



## H3llGhost (8. Dez 2007)

Darf ich eigentlich mal fragen was genau der Code machen soll?


----------



## u6g58h8i67roi (8. Dez 2007)

naja in dem chat in dem ich bin sind manche leute echt übertrieben lange am tag online, und einer hat mal sowas dort gepostet was suchtywerte top ten hieß, hab mich eigendlich nie dafür interessiert, aber da ich ja letztens angefangen habe java zu lernen und ich nicht wusste was ich in java für ein programm schreiben sollte ,welches mit meiner erfahrung wächst und sich verändert, hab ich nachgedacht und mich an den kerl erinnert, das ich wusste das der das mit java errechnet hat, hab ich mich einfach darangesetzt und versucht das programm nachzuschreiben, und natürlich will ich nicht dabei bleiben, sondern halt alles was ich in java lerne auf deises programm übertragen, so das ich direkt praxiserfahrung habe, einen tieferen sinn hat das programm nicht. klar das das jetzt schon weit über eine einfache berechnung hinaus geht, aber ich will ja java lernen, und nicht irgendeinen nonsens veranstallten.

jetzt hab ich als nächstes vor ein paar mehr informationen zu speichern und auszulesen und verschiedene sachen zu zählen usw usw, und wenn ich meine das ich damit fertig bin beschäftige ich mich etwas näher mit dem thema datenbanken usw, aber bis dahin kann es noch ein wenig dauern


----------



## H3llGhost (8. Dez 2007)

Achso verstehe ...
Einfach nur so ein Testprojekt oder?


----------



## u6g58h8i67roi (8. Dez 2007)

ja so kann man es nennen, nichts wildes, einfach was zum rumbasteln wo es eh keinen interessiert wenn mal was gehörig schief läuft oder der sourcecode nicht astrein geschrieben ist, oder wenn der rechner sich mal ab und zu für 2 minuten verabschiedet weil das prog ein ressourcenfresser ist, natürlich werde ich dieses programm am ende mit meinem dann hoffentlich erlangten wissen noch einmal überarbeiten und perfektionieren, aber das ist noch lange hin, ich habe mir 1 - 2 jahre zeit gegeben um mit java ordentlich zurecht zu kommen, das sind jetzt in etwa noch maximal 22 monate =)


----------



## H3llGhost (8. Dez 2007)

Achso ...
Dann viel Erfolg und du hilfst mir dann bald nech? ... :-D


----------



## u6g58h8i67roi (8. Dez 2007)

0o wobei sollte ich dir helfen können? XD


----------



## H3llGhost (8. Dez 2007)

Wenn du es dann besser kannst als ich selber ...
Du investierst ja mehr Zeit ... ;-)


----------



## u6g58h8i67roi (8. Dez 2007)

naja, sicher helfe ich dann, aber die zeit die ich im moment mit java verbringe ist extrem, normalerweise habe ich meinen tag in drei teile eingeteilt:

JAVA (NetBeans 6)
Flash/ActionScript (Adobe Flash CS3)
Photobearbeitung (Adobe Photoshop CS 3)

und ab und zu noch html/css da ich normalerweise an meiner hp arbeite (die übrigends komplett in flash ist, daher sind meine html/css kenntnisse relativ klein, und ich muss meistens wenn ich etwas machen will das erst lernen) 

ach ja und ich habe noch ein paar schäfchen aus dem chat denen ich die grundlagen der informatik für heimanwender beibringe, zb wie konfiguriere ich mein windows richtig, welche programme sind für mich sinnvoll, was mache ich wenn der rechner mal nicht so läuft wie ich will/fehlersuche in windows XP/Vista,wie sichere ich effizient meine daten, wie halte ich ordnung auf meinem rechner/was gibt es für programme dafür, und manchmal sogar : wie benutze ich google so das ich auf FAST alle fragen eine antwort bekomme?

aber da ich im moment alles auf eis gelegt hab, um die javagrundlagen zu lernen, mach ich halt auch den ganzen tag lang nur java, und ich weiß noch nicht wann ich wieder zeit für die anderen dinge haben werde


----------



## u6g58h8i67roi (8. Dez 2007)

da gibt es ein problem mit dem programm ,egal was ich mache es schreibt nix neues in die datei rein,die werte bleiben immer gleich


----------



## H3llGhost (8. Dez 2007)

hmm ...
Datei schreibgeschützt?

Wie ist nun der aktuelle Code?


----------



## u6g58h8i67roi (8. Dez 2007)

```
package DNA.java;

import javax.swing.*;
import java.awt.*;
import java.text.*;
import java.io.*;
import java.util.*;
import java.net.*;

public class UserLevel {

    public UserLevel() {
    }

    public static void main(String[] args) throws Exception {

        BufferedReader br0 = new BufferedReader(new InputStreamReader(System.in));
        URL url;
        int k = 0;
        int i = 0;
        int xtb = 0;
        String nick = "";
        String read = "";
        String datum1 = "";
        String onMin = "";
        double onMinD;
        System.out.println("Eingabe:");
        DateFormat df = new SimpleDateFormat("dd.MM.yyyy");
        DateFormat defaultDate = DateFormat.getDateInstance();
        String datum = defaultDate.format(new java.util.Date());
        Date to = df.parse(datum);
        StringTokenizer st = new StringTokenizer(br0.readLine(), ",");
        int al = st.countTokens() + 1;
        String[] nicks = new String[al];
        double[] werte = new double[al];
        while (st.hasMoreTokens()) {
            for (int x = 0; st.hasMoreTokens(); x++) {
                xtb++;
                nick = st.nextToken();
                if (nick.contains("DNAofDeath")) {
                    nick = " blah";
                }
                if (nick.contains("James")) {
                    nick = " blah";
                }
                if (x >= 1) {
                    nick = nick.substring(1);
                }
                nick = "http://knuddels.de/ww/" + nick;
                if (nick.contains(" ")) {
                    ;
                }
                {
                    nick = nick.replace(" ", "_");
                    nick = nick.replace("&", "%26");
                    url = new URL(nick);
                }
                BufferedReader br1 = new BufferedReader(new InputStreamReader(url.openStream()));
                while ((read = br1.readLine()) != null) {
                    read = read.replace("<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=", "");
                    read = read.replace("\"></HEAD></HTML>", "");
                    url = new URL(read);
                    BufferedReader br2 = new BufferedReader(new InputStreamReader(url.openStream()));
                    while ((read = br2.readLine()) != null) {
                        nick = nick.replace("http://knuddels.de/ww/", "");
                        if (read.contains("<FONT FACE=\"Arial\">
[B]")) {
                            read = read.replace("<FONT FACE=\"Arial\">
[B]", "");
                            read = read.replace("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\"> hat sich am [B]", "");
                            if (read.contains("http://spenden.knuddels.de")) {
                                read = read.replace("<a href=\"http://spenden.knuddels.de\" target=_blank><img border=0 src=\"../../images/ico_ribbon.gif\"></a> ", "");
                                read = read.replace("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\">hat sich am [B]", "");
                            }
                            read = read.replace("&", "&");
                            read = read.replace("&", ">");
                            read = read.replace("&", "<");
                            read = read.replace("&", " ");
                            nick = nick.replace("%26", "&");
                            nick = nick.replace("_", " ");
                            int zeichen = nick.length();
                            int h = nick.length();
                            if (zeichen == nick.length()) {
                                nick = read.substring(0, h);
                                k = nick.length() + 10;
                                datum1 = read.substring(h, k);
                                String time1 = read.substring(h + 39, h + 47);
                                read = read.replace(nick + datum1 + "[/B]<FONT COLOR=\"000000\"> um " + time1 + " bei Knuddels registriert und seitdem schon [B]", "");
                                String ez = read.substring(0, 10);
                                String[] n = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
                                for (int a = 0; a <= 9; a++) {
                                    String t = ez.substring(a, a + 1);
                                    for (int j = 0; j <= 9; j++) {
                                        if (t.contains(n[j])) {
                                            onMin = onMin + n[j];
                                        }
                                    }
                                }
                                onMinD = Double.parseDouble(onMin);


                                Date from = df.parse(datum1);
                                double diffMillis = to.getTime() - from.getTime();
                                double diffMins = diffMillis / (1000 * 60);
                                double erg = (100 / diffMins) * (double) onMinD;

                                erg = Math.round(erg * 10000.) / 10000.;




                                String zeile;
                                String ergS = "" + erg;

                                SimpleDateFormat fmt = new SimpleDateFormat();
                                fmt.applyPattern("dd-MM-yyyy,hh:mm:ss");
                                Calendar cal = Calendar.getInstance();
                                String date = fmt.format(cal.getTime()).toString();
                                System.out.println(erg + " = " + nick);

                                try {
                                    BufferedReader br = new BufferedReader(new FileReader("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));

                                    while ((zeile = br.readLine()) != null) {
                                        BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                        if (zeile.startsWith("Registriert am : ")) {
                                          datum1 = zeile.replace("Registriert am : " + zeile.substring(17),"Registriert am : " + datum1 + "BLAH");
                                          bw.newLine();
                                          bw.write("BLAH");
                                        } else
                                        if (zeile.startsWith("Verbrachte Minuten : ")) {
                                            onMin = zeile.replace(zeile.substring(21), onMin + "BLAH");
                                        } else
                                        if (zeile.startsWith("UserLevel : ")) {
                                            String blah = zeile.substring(12);
                                            double blahD = Double.parseDouble(blah);
                                            double diff = blahD - erg;
                                            System.out.println(blahD);
                                            System.out.println(diff);
                                            ergS = zeile.replace(zeile.substring(12), ergS + "/n" + diff + " " + blahD);
                                            
                                        }
                                        


                                    }
                                    System.out.println("Datei wird Aktualisiert");
                                    br.close();
                                } catch (Exception e) {
                                    System.out.println("Datei wird neu Erstellt");

                                }
                                try {

                                    BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\Java\\Projekte\\nickliste\\" + nick + ".txt"));
                                    bw.write("Registriert am : " + datum1);
                                    bw.newLine();
                                    bw.write("Verbrachte Minuten : " + onMinD);
                                    bw.newLine();
                                    bw.write("UserLevel : " + erg);
                                    bw.newLine();
                                    bw.close();
                                } catch (Exception e) {
                                    System.out.println("Du hast was Falsch gemacht du trottel xDD");
                                }

                                nicks[i] = nick;
                                werte[i] = erg;
                                i++;
                                onMin = "";
                            }
                        }
                    }
                    br2.close();
                }
                br1.close();
            }
            br0.close();
        }
        final Map<String, Double> map = new HashMap<String, Double>();
        int g = 1;
        for (int xd = 0; xd <= xtb; xd++) {
            map.put(nicks[xd], werte[xd]);
        }
        Comparator<String> comparator = new Comparator<String>() {

            @Override
            public int compare(String a, String b) {
                return -map.get(a).compareTo(map.get(b));
            }
        };
        Map<String, Double> sortedMap = new TreeMap<String, Double>(comparator);
        sortedMap.putAll(map);
        File file = new File("C:\\test.txt");
        if (file.exists()) {
            file.delete();
        }
        System.out.println("File Überschrieben");
        for (String s : sortedMap.keySet()) {
            try {
                FileWriter fw = new FileWriter(file.getPath(), true);
                PrintWriter pw = new PrintWriter(fw);

                String ausgabe = "#" + g + ".)" + s + " ~~~~~~> " + sortedMap.get(s);

                pw.println(ausgabe);
                fw.flush();
                fw.close();
                pw.flush();
                pw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println("#" + g + ".)" + s + " ~~~~~~> " + sortedMap.get(s));
            g++;
            if (g == 11) {
                break;
            }
        }

    }
}
```

die sachen mit BLAH sind nur zum testen drin wie immer =)

was am ende in der datei steht ist das hier :


```
Registriert am : Registriert am : 02.08.2007BLAH
Verbrachte Minuten : 16787.0
UserLevel : 9.1046
```

allerdings beim aktualisieren, nich beim erstellen, da klappt alles so wie es soll


----------



## H3llGhost (8. Dez 2007)

Vielleicht ein If-Schleife die das blockiert.
Musst mal den Debugger benutzen ... ;-)
Hilft mir auch ganz häufig ...
Wodrin bzw. womit programmierst du eigenltich?


----------



## u6g58h8i67roi (8. Dez 2007)

steht doch oben, neueste version von netbeans, heute frisch gezogen (hab rechner formatiert gehabt)


----------



## u6g58h8i67roi (8. Dez 2007)

der debugger zeigt mir nur das hier an


```
Listening on 1683
User program running
User program finished
```


----------



## H3llGhost (8. Dez 2007)

Welchen Editor nutzt du?


----------



## u6g58h8i67roi (8. Dez 2007)

keinen editor, eine IDE , und zwar NetBeans 6.0, oder was genau meinst du?


----------



## H3llGhost (8. Dez 2007)

Benutze JavaEditor http://lernen.bildung.hessen.de/informatik/javaeditor/javaeditor.zip ...
Der ist sehr gut!


----------



## maki (8. Dez 2007)

> a da hast du recht, aber jetzt grade waren mir die Exen noch egal, weil ich ja netmal funktionierenden code hatte, werde mich dann drum kümmern, auf jedenfall funktioniert der code jetzt einwandtfrei und ich bekomme keine exen mehr, und er schreibt die datei schön voll, hier mal meine ausgabe :


Diese "Exen" sind wichtige Fehlermeldungen die dir sagen könnten, wo dass Problem ist, dann brauchst du auch nicht unbedingt debuggen. 

Alles was du dafür tun müsstest ist sie auszugeben, anstatt des nichtssagenden Blödsinns wie "Blubb!" und "Du hast was Falsch gemacht du trottel xDD"...


----------



## H3llGhost (8. Dez 2007)

Debugger hilft aber einem zu verstehen was jetzt das Programm wirklich macht ...
Sprich bei vielen Abfragen und Schleifen sieht man dann deutlich wie das Programm springt und so ...


----------



## maki (9. Dez 2007)

H3llGhost hat gesagt.:
			
		

> Debugger hilft aber einem zu verstehen was jetzt das Programm wirklich macht ...
> Sprich bei vielen Abfragen und Schleifen sieht man dann deutlich wie das Programm springt und so ...


Debugger verwirren auch mit vielen Details, auf der anderen Seite Exceptions+Fehlermeldungen zu verschlucken ist sicherlich nicht das richtige!


----------



## H3llGhost (9. Dez 2007)

Das stimmt ...


----------



## u6g58h8i67roi (9. Dez 2007)

maki? ich bekomme doch garkeine Exen mehr, ist alles sauber, nur macht der code halt niocht das was ich will, er übergeht einfach einen kompletten teil, und was aus dem debugger von netbeans rauskommt hab ich ja oben geschrieben


----------



## H3llGhost (9. Dez 2007)

Ich nutze den vom JDK ...
Und den finde ich ganz gut ...

Du hast aber auch Ausgaben der Exen doch eingebaut oder?


----------



## maki (9. Dez 2007)

DNAofDeath hat gesagt.:
			
		

> maki? ich bekomme doch garkeine Exen mehr, ist alles sauber, nur macht der code halt niocht das was ich will, er übergeht einfach einen kompletten teil, und was aus dem debugger von netbeans rauskommt hab ich ja oben geschrieben



Natürlich nicht! Du lässt sie unter den Tisch fallen indem du alle fängst und ignorierst!!!



> Du hast aber auch Ausgaben der Exen doch eingebaut oder?


Tut er nicht, steht doch da!
Alles was er ausgibt sind dämliche Quatschmeldungen ohne echte Informationen.

 :shock:  :shock:  :shock: 
Ich denke hier sollten ein paar Leute ins Bett gehen, ab und zu muss man den Kopf wieder frei kriegen...


----------



## H3llGhost (9. Dez 2007)

Es hätte aber sein können, dass der Code schon wieder angepasst wurde ...
Deswegen meine Frage!

Ich ignoriere meistens auch die Exen am Anfang um generell ein Codegerüst zu bekommen ...
Und dann werden die in die System.Outputs gepackt ...


----------



## Jango (9. Dez 2007)

maki hat gesagt.:
			
		

> Ich denke hier sollten ein paar Leute ins Bett gehen, ab und zu muss man den Kopf wieder frei kriegen...


Genau! Und wenn du dann im Bett liegst, denk mal über folgendes nach:



			
				H3llGhost hat gesagt.:
			
		

> Vielleicht ein If-Schleife die das blockiert.


www.if-schleife.de

Deine Rumspamerei geht einem wirklich auf die Nerven!


----------



## u6g58h8i67roi (9. Dez 2007)

uiuiui ich geh echt jetzt ins bett, ihr habt recht xDDD
aber eins noch zu maki, ich habe mittlerweile eingebaut das mir die exen ausgegeben werden und ich bekomme keine, also ist alles okay ^^


----------



## Jango (9. Dez 2007)

DNAofDeath hat gesagt.:
			
		

> uiuiui ich geh echt jetzt ins bett, ihr habt recht xDDD


Du warst nicht gemeint.


----------



## H3llGhost (9. Dez 2007)

War klar ich bin immer der Schuldige kenne ich ja schon aus Foren nicht anders ... :-D
Sobald man auch jemanden helfen will ist das falsch, aber ok Leute ...
Kein Problem!
Dann überlasse ich das lieber euch!


----------



## u6g58h8i67roi (9. Dez 2007)

hey es klappt immernoch nicht, er verändert die datei nicht -.-*


```
package DNA.java;

import javax.swing.*;
import java.awt.*;
import java.text.*;
import java.io.*;
import java.util.*;
import java.net.*;

public class UserLevel {

    public UserLevel() {
    }

    public static void main(String[] args) throws Exception {

        BufferedReader br0 = new BufferedReader(new InputStreamReader(System.in));
        URL url;
        int k = 0;
        int i = 0;
        int xtb = 0;
        String nick = "";
        String read = "";
        String datum1 = "";
        String onMin = "";
        double onMinD;
        System.out.println("Eingabe:");
        DateFormat df = new SimpleDateFormat("dd.MM.yyyy");
        DateFormat defaultDate = DateFormat.getDateInstance();
        String datum = defaultDate.format(new java.util.Date());
        Date to = df.parse(datum);
        StringTokenizer st = new StringTokenizer(br0.readLine(), ",");
        int al = st.countTokens() + 1;
        String[] nicks = new String[al];
        double[] werte = new double[al];
        while (st.hasMoreTokens()) {
            for (int x = 0; st.hasMoreTokens(); x++) {
                xtb++;
                nick = st.nextToken();
                if (nick.contains("DNAofDeath")) {
                    nick = " blah";
                }
                if (nick.contains("James")) {
                    nick = " blah";
                }
                if (x >= 1) {
                    nick = nick.substring(1);
                }
                nick = "http://knuddels.de/ww/" + nick;
                if (nick.contains(" ")) {
                    ;
                }
                {
                    nick = nick.replace(" ", "_");
                    nick = nick.replace("&", "%26");
                    url = new URL(nick);
                }
                BufferedReader br1 = new BufferedReader(new InputStreamReader(url.openStream()));
                while ((read = br1.readLine()) != null) {
                    read = read.replace("<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=", "");
                    read = read.replace("\"></HEAD></HTML>", "");
                    url = new URL(read);
                    BufferedReader br2 = new BufferedReader(new InputStreamReader(url.openStream()));
                    while ((read = br2.readLine()) != null) {
                        nick = nick.replace("http://knuddels.de/ww/", "");
                        if (read.contains("<FONT FACE=\"Arial\">
[B]")) {
                            read = read.replace("<FONT FACE=\"Arial\">
[B]", "");
                            read = read.replace("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\"> hat 
sich am [B]", "");
                            if (read.contains("http://spenden.knuddels.de")) {
                                read = read.replace("<a href=\"http://spenden.knuddels.de\" target=_blank><img border=0 
src=\"../../images/ico_ribbon.gif\"></a> ", "");
                                read = read.replace("<FONT COLOR=\"#000000\" SIZE=2>[/B]<FONT COLOR=\"000000\">hat sich am [B]", "");
                            }
                            read = read.replace("&", "&");
                            read = read.replace("&", ">");
                            read = read.replace("&", "<");
                            read = read.replace("&", " ");
                            nick = nick.replace("%26", "&");
                            nick = nick.replace("_", " ");
                            int zeichen = nick.length();
                            int h = nick.length();
                            if (zeichen == nick.length()) {
                                nick = read.substring(0, h);
                                k = nick.length() + 10;
                                datum1 = read.substring(h, k);
                                String time1 = read.substring(h + 39, h + 47);
                                read = read.replace(nick + datum1 + "[/B]<FONT COLOR=\"000000\"> um " + time1 + " bei 
Knuddels registriert und seitdem schon [B]", "");
                                String ez = read.substring(0, 10);
                                String[] n = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
                                for (int a = 0; a <= 9; a++) {
                                    String t = ez.substring(a, a + 1);
                                    for (int j = 0; j <= 9; j++) {
                                        if (t.contains(n[j])) {
                                            onMin = onMin + n[j];
                                        }
                                    }
                                }
                                onMinD = Double.parseDouble(onMin);


                                Date from = df.parse(datum1);
                                double diffMillis = to.getTime() - from.getTime();
                                double diffMins = diffMillis / (1000 * 60);
                                double erg = (100 / diffMins) * (double) onMinD;

                                erg = Math.round(erg * 10000.) / 10000.;




                                String zeile;
                                String ergS = "" + erg;

                                SimpleDateFormat fmt = new SimpleDateFormat();
                                fmt.applyPattern("dd-MM-yyyy,hh:mm:ss");
                                Calendar cal = Calendar.getInstance();
                                String date = fmt.format(cal.getTime()).toString();
                                System.out.println(erg + " = " + nick);

                                try {
                                    BufferedReader br = new BufferedReader(new FileReader("D:\\Java\\Projekte\\nickliste\\" + 
nick + ".txt"));

                                    while ((zeile = br.readLine()) != null) {
                                        BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\Java\\Projekte\\nickliste\\" + 
nick + ".txt"));
                                        if (zeile.contains("Registriert am : ")) {}
                                        System.out.println("LOL");
                                        if (zeile.contains("Verbrachte")) {
                                            zeile = "";
                                            
                                            
                                        }
                                        if (zeile.startsWith("UserLevel")) {
                                            zeile= "";
                                            
                                            
                                        }
                                    }
                                    System.out.println("Datei wird Aktualisiert");
                                    br.close();
                                } catch (Exception e) {
                                    System.out.println("Datei wird neu Erstellt");

                                }
                                try {

                                    BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\Java\\Projekte\\nickliste\\" + 
nick + ".txt"));
                                    bw.write("Registriert am : " + datum1);
                                    bw.newLine();
                                    bw.write("Verbrachte Minuten : " + onMinD);
                                    bw.newLine();
                                    bw.write("UserLevel : " + erg);
                                    bw.newLine();
                                    bw.close();
                                } catch (Exception e) {
                                    System.out.println("Exception caught:" + e); 
                                    System.out.println(e.toString());
                                    System.out.println("Du hast was Falsch gemacht du trottel xDD");
                                }

                                nicks[i] = nick;
                                werte[i] = erg;
                                i++;
                                onMin = "";
                            }
                        }
                    }
                    br2.close();
                }
                br1.close();
            }
            br0.close();
        }
        final Map<String, Double> map = new HashMap<String, Double>();
        int g = 1;
        for (int xd = 0; xd <= xtb; xd++) {
            map.put(nicks[xd], werte[xd]);
        }
        Comparator<String> comparator = new Comparator<String>() {

            @Override
            public int compare(String a, String b) {
                return -map.get(a).compareTo(map.get(b));
            }
        };
        Map<String, Double> sortedMap = new TreeMap<String, Double>(comparator);
        sortedMap.putAll(map);
        File file = new File("C:\\test.txt");
        if (file.exists()) {
            file.delete();
        }
        System.out.println("File Überschrieben");
        for (String s : sortedMap.keySet()) {
            try {
                FileWriter fw = new FileWriter(file.getPath(), true);
                PrintWriter pw = new PrintWriter(fw);

                String ausgabe = "#" + g + ".)" + s + " ~~~~~~> " + sortedMap.get(s);

                pw.println(ausgabe);
                fw.flush();
                fw.close();
                pw.flush();
                pw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println("#" + g + ".)" + s + " ~~~~~~> " + sortedMap.get(s));
            g++;
            if (g == 11) {
                break;
            }
        }

    }
}
```


----------



## u6g58h8i67roi (9. Dez 2007)

na toll, jetzt hilft mir wohl garkeiner mehr oder was? =( ich warte jetzt noch ein bisschen, ansosnten mach ich einfach nen neuen thread auf, der hier ist ja auch schon arg lang geworden


----------



## maki (9. Dez 2007)

> int zeichen = nick.length();
> int h = nick.length();
> if (zeichen == nick.length()) {


Kannst du mir verraten wozu diese if Abfrage gut sein soll?


----------



## u6g58h8i67roi (9. Dez 2007)

ganz ehrlich? das hab ich mich zwischendurch bei drübergucken auch schonmal gefragt xDDDDDDD 
hatte aber keine zeit mich da direkt damit zu beschäftigen.

Zu nichts ist sie gut,hab ich grade gesehn,hab sie auch gliech mal rausgenommen.

und was sagst du zu meinem eigendlichen problem?



```
if (nick.contains(" ")) {
                    ;
                }
                {
                    nick = nick.replace(" ", "_");
                    nick = nick.replace("&", "%26");
                    url = new URL(nick);
                }
```

hab ich auch mal in :


```
nick = nick.replace(" ", "_");
                    nick = nick.replace("&", "%26");
                    url = new URL(nick);
```

geändert

war auch sinnlos


----------



## maki (9. Dez 2007)

> und was sagst du zu meinem eigendlichen problem?


Das eigentlcihe Problem? Ganz ehrlich?

Du solltest deinen Code viel mehr durchstrukturieren, ist alle schwer zu lesen und zu verstehen, voller sinnfreier "logik" und offensichtlich fehlerhaft.

Ich würde nochmal anfangen und mir gedanken machen wie man das alles strukturieren kann, dann die Klasse(n) neu schreiben, am besten lesbar (Leerzeilen, sinnvolle Variablennamen, mehr als eine einzige Methode, etc. pp. Objektorient eben).
Kann ja nicht sein das man bei 200 Zeilen Code schon nicht mehr weiss was welches Stück Code macht.

Ansonsten? Du hast einige while-schleifen und if-abfragen drinnen, keine Ahnung ob das Programm überhaupt zur richtigen Stelle kommt und was dann passiert, bleibt ein Geheimnis, schliesslich verschluckst du immer noch eine wichtige Exception, ändere das hier mal sinnvoll ab:

```
} catch (Exception e) {
                                    System.out.println("Datei wird neu Erstellt");

                                }
```
Kannts ja niht davon ausgehen das jede mögliche Exception nur heißt das die Datei neu erstellt wird


----------



## u6g58h8i67roi (9. Dez 2007)

hmmm

ich weiß aber nicht wie das geht, ich meine ich bin froh das ich soweit gekommen bin und zumindest fast alles verstehe was da so drin steht. =( naja aber wenn du es sagst, dann werd ich wohl noch mal von vorn anfangen müssen


----------



## maki (9. Dez 2007)

Probier doch erstmal die Exception auszugeben, musst ja ncht alles auf einmal machen


----------



## u6g58h8i67roi (9. Dez 2007)

Exception caught:java.io.FileNotFoundException: D:\Java\Projekte\nickliste\DNAofDeath.txt (Das System kann die angegebene Datei nicht finden)


das ist die exception, die dann auftaucht wenn er die datei neu anlgegen soll

aber das ist ja in ordnung, da er ja genau in diesem fall die datei neu anlegen soll und wird.


----------



## u6g58h8i67roi (9. Dez 2007)

mein problem ist ja, das der codeteil vorher fehlerhaft ist, er verändert die datei nicht,ich hab das jetzt schon auf 3 wegen versucht, aber nichts hat so geklappt wie ich das wollte =( weil ich immer was falsches dummes da gecoded hab


----------



## u6g58h8i67roi (9. Dez 2007)

so ich hab mich jetzt mal mit stift und blatt hingesetzt und mal genau darüber nachgedacht was ich machen will

und herausgekommen ist folgendes:

1. Die datei auslesen
2. Ausgelesenes in werte speichern
3. Werte gebenenfalls verändern
4. Datei neu schreiben (mit den neuen werten)
5. Fertig


----------



## H3llGhost (10. Dez 2007)

Das ist doch schon mal ein schöner Anfang ... ;-)
Nun werden wir daraus noch ein paar Klassen und so machen und dann ist es perfekt! ... ;-)

Und das wichtigste maki:

Ich werde mich auch gleich um eine ordentliche Ausgabe von Exceptions kümmern ... ;-)



			
				Jango hat gesagt.:
			
		

> maki hat gesagt.:
> 
> 
> 
> ...


----------

