Hi @ All,
ich hab folgendes Prob:
Ich soll aus einer riesigen Datei, best. Daten mittels einer ID (diese wird vom User eingegeben) filtern.
Dabei sollen aus drei versch. Bereichen diese daten herausgefiltert werden...(rtf, rul, html)...nur zu Info
Teil m. Codes:
Ich bekomm aber diese Fehlermeldung:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at dateien_exportieren.main(dateien_exportieren.java:47)
Die Zeile 47 ist = strgefilterteDatei_rul = strDatei.substring(Apos, Epos).concat(end_bau_allg);
Ich muss dazu sagen, dass es mit den anderen Bereichen (rtf und html) wunderbar klappt....von daher muss ich irgendwo einen dummen Fehler gemacht haben....
...Ich hatte den Code vor etwa 4Monaten geschrieben...und damals hatte es geklappt...und jetzt leider nicht mehr!?
Danke im Voraus...
ich hab folgendes Prob:
Ich soll aus einer riesigen Datei, best. Daten mittels einer ID (diese wird vom User eingegeben) filtern.
Dabei sollen aus drei versch. Bereichen diese daten herausgefiltert werden...(rtf, rul, html)...nur zu Info
Teil m. Codes:
Code:
public static void main( String args[]) throws IOException
{
//Variablendeklarationen
String strDatei,strID, strges;
String id = "";
//Blöcke
String anf_blo_rtf ="<xsl:variable name=\"RTFBausteine\">"; // dient dazu, um die Blöcke zu finden
String anf_blo_rul ="<xsl:variable name=\"RULBausteine\">";
String anf_blo_html="<xsl:variable name=\"HTMBausteine\">";
String strgefilterteDatei_rtf = "",strgefilterteDatei_rul = "",strgefilterteDatei_html = ""; //sind die gefilterten Daten
//Bausteine
String anf_bau_rtf_html = "<Baustein id=\""; //dient dazu, um die einzelnen Bausteine zu finden
String anf_bau_rul = "<Bautein id=\"ATT_";
String end_bau_allg = "</Baustein>";
int abrtf ,abrul, abhtml, Apos, Epos; //Integerwerte, um pos. zu speichern, abrft = anfang_block_rft, Apos = Anfangsposition, Epos = Endpositon
// allgemein
//Hauptdatei wird geöffnet und dessen Inhalt in einen String eingelesen
strDatei = getfile ("c:/Dokumente und Einstellungen/abc/Desktop/Java/def.xsl"); //Pfad muss ggf. angepasst werden
strID = ID_Eingabe (id); // ID-Abfrage
abrtf = sucheString_Anf (strDatei,anf_blo_rtf); //die Blöcke können durch die jeweiligen Positionen eingeteilt werden.
abrul = sucheString_Anf (strDatei,anf_blo_rul);
abhtml = sucheString_Anf (strDatei, anf_blo_html);
// rtf
strges = anf_bau_rtf_html.concat(strID); // der gesuchte String (entsprechener Baustein mit ID-Kennung)
Apos = strDatei.indexOf(strges, abrtf); // Anfangsposition
Epos = strDatei.indexOf(end_bau_allg, Apos); // Endposition
strgefilterteDatei_rtf = strDatei.substring(Apos, Epos).concat(end_bau_allg); // gefilterteDatei = Text zwischen Anfangspos. und Endpos.
FileWriter (strID, strgefilterteDatei_rtf, "rtf");
// rul
strges = anf_bau_rul.concat(strID); // s.o.
Apos = strDatei.indexOf(strges, abrul);
Epos = strDatei.indexOf(end_bau_allg, Apos);
strgefilterteDatei_rul = strDatei.substring(Apos, Epos).concat(end_bau_allg);
FileWriter (strID, strgefilterteDatei_rul, "rul");
// html
strges = anf_bau_rtf_html.concat(strID); // s.o.
Apos = strDatei.indexOf(strges, abhtml);
Epos= strDatei.indexOf(end_bau_allg, Apos);
strgefilterteDatei_html= strDatei.substring(Apos, Epos).concat(end_bau_allg);
FileWriter (strID, strgefilterteDatei_html, "html");
}
Ich bekomm aber diese Fehlermeldung:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at dateien_exportieren.main(dateien_exportieren.java:47)
Die Zeile 47 ist = strgefilterteDatei_rul = strDatei.substring(Apos, Epos).concat(end_bau_allg);
Ich muss dazu sagen, dass es mit den anderen Bereichen (rtf und html) wunderbar klappt....von daher muss ich irgendwo einen dummen Fehler gemacht haben....
...Ich hatte den Code vor etwa 4Monaten geschrieben...und damals hatte es geklappt...und jetzt leider nicht mehr!?
Danke im Voraus...