/*textnumbers.java *Kai Triebel [stein-triebel@gmx.de] *(09. September 2008) */ import java.io.*; import java.util.regex.*; import java.util.*; public class textnumbers { static File datei_rein; static File datei_raus; static Pattern pat; static List fussnote; static List verweis; static StringBuffer Zeile; static BufferedReader In; static BufferedWriter Out; static boolean footnote; static String Eingangszeile; public static void main(String[] args) { textnumbers tn = new textnumbers(); for(String datei:args) { tn.go(datei); } } public textnumbers() { pat = Pattern.compile( "\\["+"\\d+"+"\\]" ); fussnote = new ArrayList(); verweis = new ArrayList(); footnote = false; } public void go(String datei) { datei_rein = new File( datei ); datei_raus = new File( datei+".neu.txt" ); try { In = new BufferedReader( new FileReader( datei_rein ) ); Out = new BufferedWriter( new FileWriter( datei_raus ) ); Eingangszeile = In.readLine(); while(Eingangszeile != null) { if(Eingangszeile.equals("@footnote:")) footnote = true; Zeile = new StringBuffer(Eingangszeile); List results = new ArrayList(); for ( Matcher m = pat.matcher(Eingangszeile); m.find(); ) { results.add( m.toMatchResult() ); } for ( int i=0 ; i=0 ; i-- ) { Eingangszeile = Zeile.replace(results.get(i).start(), results.get(i).end(), "["+(fussnote.indexOf(results.get(i).group())+1)+"]").toString(); } if(footnote == false) schreiben(Eingangszeile); else verweis.add(Eingangszeile); Eingangszeile = In.readLine(); } if(footnote == true) { Collections.sort(verweis); for(int i=0; i