Danke. Ist wirklich deutlich einfacher
Ich will aber noch versuchen mein Programm fertig zu bekommen. Ist ja auch gleich mit eine Übung
Dann gibt es eine Variante ohne zusätzliche Bibliothek und eine mit ;D
Kann das sein, dass die Methode [c]hashMap.put(key, value)[/c] die Werte nicht hintereinander listet?
Hab das Programm mal so umgeschrieben, um es mal per HashMap auszuprobieren und die Datei erstmal nur zu kopieren ohne Austausch:
[code=Java]/* Uebersetzen.java */
import java.io.*;
import java.util.*;
import read.*;
public class Uebersetzen
{
public static void main (String[] args)
{
String zeile, zeile2;
String[] zeileArr = {}, zeile2Arr = {};
FileReader freader1, freader2;
int i = 0, id, id2;
HashMap<Number, String> zeilen = new HashMap<Number, String>();
try
{
if (args.length == 0)
{
System.out.print("Waehle die 1. Datei: ");
freader1 = new FileReader(Read.getString());
System.out.print("Waehle die 2. Datei: ");
freader2 = new FileReader(Read.getString());
}
else
{
freader1 = new FileReader(args[0]);
freader2 = new FileReader(args[1]);
}
BufferedReader reader1 = new BufferedReader(freader1);
BufferedReader reader2 = new BufferedReader(freader2);
BufferedWriter writer = new BufferedWriter(new FileWriter("0001-test.txt"));
// Einlesen der 2. Datei und speichern in HashMap
while ((zeile2 = reader2.readLine()) != null)
{
i++;
if (zeile2.indexOf("<t id=") != -1)
{
zeile2Arr = zeile2.split("<t id="); // Ergebnis: "1020101">Königstal</t>
zeile2Arr = zeile2Arr[1].split(">"); // Ergebnis: "1020101" + Königstal</t>
id = Integer.parseInt(zeile2Arr[0].replace('\"', ' ').trim()); // Ergebnis: "1020101" => 1020101
zeilen.put(id, zeile2 + "\n");
}
else
{
zeilen.put(i + 50000000, zeile2 + "\n");
}
}
for (String elem : zeilen.values())
{
writer.write(elem);
writer.flush();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}[/code]
Es wird in der richtigen Reihenfolge eingelesen, aber in der komplett falschen Reihenfolge wieder ausgegeben:
[XML] <t id="1021617">300</t>
<t id="1">The X-Tended - Terran Conflict Mod</t>
<t id="1021616">300</t>
<t id="2">X-Tended - Terran Conflict</t>
<t id="1021619">100</t>
<t id="3">XTC</t>
<t id="1021618">150</t>
<!-- XTC Version Data (7210-7220) -->
<t id="4">The XTC Team</t>
<!-- <t id="1021621">20 / 15</t> -->
<page id="7212" title="XTC" descr="XTC Framework Texts">
<!-- <t id="1021620">19 / 15</t> -->
</page>
<t id="6">\nWelcome to X-Tended - Terran Conflict.\n\nWe recommend that you take a bit of time to set up your hotkeys, look into the Galactic News System, and adjust the difficulty in your Configuration Menu.\nLook at your reputation while you're there, check your property list in the statistics centre - see if this gamestart suits you fine.\n\nAnd, of course, don't forget that many things have changed - including the universe itself. One of the principles of XTC is exploration - so on you go.\n\nDon't forget about your family!</t>
<!-- <t id="1021623">22 / 15</t> -->
<!-- <t id="1021622">21 / 15</t> -->
</language>
<!-- <t id="1021624">23 / 15</t> -->
</page>
<t id="13">\n</t>
<!-- <t id="1021601">00 / 15</t> -->
<!-- <t id="1021602">01 / 15</t> -->
<!-- <t id="1021603">02 / 15</t> -->
<t id="21">.</t><!-- delimiter, decimal 3.14 -->[/XML]
Wieso das denn? 