# Java-Datei als Text auslesen, Inhalt durchsuchen und modifiziert speichern



## jorgeHX (11. März 2007)

Einen schönen guten Abend,
ich sitz gerade an einem ziemlich unangenehmen Fall.

Ich möchte aus einem Ordner ca. 100 Javaklassen durchstöbern und sämtliche Buttonbezeichnungen in Englisch umändern.

Jetzt dachte ich mir, dass ich jede java-Datei einzeln durchstöbere und wenn ich auf eine Buttonbeschriftung stoße, diese durch die englische Bezeichung ersetze. Diese englische Bezeichnung lese ich aus meiner access-tabelle.

Ich benötige super hilfe dabei, wie ich eine java-Datei durchstöbern und neu abspeichern kann. Kann mir da jemand weiterhelfen

Tausend Dank schon jetzt
JP


----------



## Thomas Darimont (11. März 2007)

Hallo,

wie weist du denn deinen Buttons einen Text zu? new JButton("text")... oder button.setText("text"); wenn du das einheitlich machst könnte man das relativ einfach mit einem Regex und Search / Replace mit dem entsprechenden englischen text machen.

Gruß Tom


----------



## jorgeHX (11. März 2007)

Hi Thomas,
das ist ja das Problem. In diesm Prog habe ich leider nicht einheitlich gearbeitet und somit weise ich es mal mit new JButton("text") und mal mit setText("text") zu.

Neben dem JButton schreibe ich die englische Beschriftung auch noch auf JLabels etc. 

Überlegt habe ich mir folgendes: 
Ich hab ne DB mit den deutschen und englischen Begriffen plus eine eindeutige ID.
Jetzt will ich alle Java-Dateien aus einem Ordner der Reihe nach quasi durchlaufen und wenn ein deutscher Text mit dem in der DB übereinstimmt, lade ich die englische Variante dazu.

Wenn das geschafft ist, will ich die java-datei modifiziert abspeichern.

War das in etwa verständlich? Danke


----------



## pria (11. März 2007)

Das ist möglich , allerdings läuft das auf sehr viel Arbeit hinaus.
Ich würde dir empfehlen die Dateien Stück für Stück mit einem StringSplitter
zu zerlegen und einzeln durchzuprüfen.Das sieht dann in etwa so aus:

```
void StringSplitter(String text,String zeichen)
{
 int index = text.length();
 char ch = 0;
 int a = 0;
 int b = 0;
 String splitt[] = new String[index];
 for(int i = 0;i < index;i++)
  splitt[i] = "";
 for(int i = 0;i < index;i++)
 {
  ch = text.charAt(i);
  String str = "" + ch;
  if(str.equals(zeichen))
   {
    if(b == 0)
     b = 1;
    else
    {
    a++;
    b = 0;
    }
   }
  else
  splitt[a] = splitt[a] + str;
 }
}
```
Diese Funktion zerlegt beispielsweise alles was in "" steht in ein String-Array
z.b.

```
JButton btn = new JButton("Buttontext");
```
in <Buttontext> , dann könntest du die einzeln verarbeiten und ersetzen.
Ich hoffe das hilft dir.


----------



## big_boom_bang (11. März 2007)

Hallo, geht es dir darum einmal die Beschriftung zu ändern und dann neu zu compilieren oder das du an vesch Länder angepasst bist, also in DE Beschriftung deutsch, woanders English?
Wen es um die Mobilität geht, empfehle ich dir mit Properties-Daten zu arbeiten.

Ich hoffe ich hab dein Problem nicht falsch verstanden.

MFG bigboombang


----------



## jorgeHX (11. März 2007)

Hallo,
also erstmal danke für die Nachrichten.

Ich will letztendlich alle Klassen einmal mit den Beschriftungen ersetzen und dann neu kompilieren.

Ich könnte auch meine unzähligen Klassen mit der Hand durchlaufen, nur würde das superlange dauern.

ICQ hab ich hier leider nicht, aber wenn ihr noch weitere Ideen habt, bitte nur her damit...

Tausend Dank


----------

