Hi,
ich hab mir vor kurzem einen Dialog geschrieben, welcher 2 .txt Dateien ausließt und den inhalt der beiden dateien in die zweite mit reinschreibt und eigentlich die doppelten Zeilen löschen soll.
So ich hab auch 2 Dateien
datei1.txt enthält:
a
a
b
c
d
e
f
f
g
h
i
datei2.txt enthält
i
j
k
l
l
Das erwartete Ergebnis in datei1 wäre:
a
b
c
d
e
f
g
h
i
j
k
l
Es ist allerdings:
i
a
Der Code sieht wie folgt aus:
Ich hoffe darauf, dass ihr mir mal wieder aus der Patsche helft.
Und dafür bedanke ich mich schon mal im vorraus ;-)
Der Programmierer
ich hab mir vor kurzem einen Dialog geschrieben, welcher 2 .txt Dateien ausließt und den inhalt der beiden dateien in die zweite mit reinschreibt und eigentlich die doppelten Zeilen löschen soll.
So ich hab auch 2 Dateien
datei1.txt enthält:
a
a
b
c
d
e
f
f
g
h
i
datei2.txt enthält
i
j
k
l
l
Das erwartete Ergebnis in datei1 wäre:
a
b
c
d
e
f
g
h
i
j
k
l
Es ist allerdings:
i
a
Der Code sieht wie folgt aus:
Code:
class zusammenfuehren extends JDialog implements Runnable
{
HashSet<String> liste = new HashSet<String>();
LineNumberReader lnr;
LineNumberReader line;
int zeilen;
int zeil;
BufferedReader getZeilen;
BufferedReader zaehler;
String dateiname;
String name;
JProgressBar bar;
double fortschritt;
String it;
String zwischen;
zusammenfuehren(String titel, JFrame f)
{
super(f,titel,true);
FileDialog d = new FileDialog(this, "Datei 1 auswählen", FileDialog.LOAD);
d.setVisible(true);
dateiname = d.getDirectory()+d.getFile();
FileDialog s= new FileDialog(this, "Datei 1 auswählen", FileDialog.LOAD);
s.setVisible(true);
name = s.getDirectory()+s.getFile();
try
{
zaehler = new BufferedReader(new FileReader(dateiname));
while(zaehler.readLine() != null);
{
zeilen++;
}
getZeilen = new BufferedReader(new FileReader(name));
while(getZeilen.readLine() != null);
{
zeil++;
}
}
catch(Exception e)
{
e.printStackTrace();
}
bar = new JProgressBar(0, zeilen+zeil);
setResizable(false);
setLayout(new FlowLayout());
add(bar);
pack();
}
public void run()
{
try
{
lnr = new LineNumberReader(new FileReader(dateiname));
line = new LineNumberReader(new FileReader(name));
for(int i = 0; i<zeilen; i++)
{
zwischen=lnr.readLine();
liste.add(zwischen);
fortschritt = fortschritt+0.4;
bar.setValue((int)fortschritt);
}
for(int i=0; i<zeil; i++)
{
zwischen=line.readLine();
liste.add(zwischen);
fortschritt = fortschritt+0.4;
bar.setValue((int)fortschritt);
}
BufferedWriter buffy = new BufferedWriter(new FileWriter(dateiname));
Iterator <String> tmp = liste.iterator();
for(int i = 0; tmp.hasNext(); i++)
{
it = tmp.next();
buffy.write(it);
buffy.newLine();
fortschritt=fortschritt+0.2;
bar.setValue((int)fortschritt);
}
buffy.close();
setVisible(false);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
Ich hoffe darauf, dass ihr mir mal wieder aus der Patsche helft.
Und dafür bedanke ich mich schon mal im vorraus ;-)
Der Programmierer