Wörter automatisch nummerieren, Word oder sonst wo

Daem

Neu angemeldet
Registriert
8 Sep. 2013
Beiträge
14
Hallo,

ich muss bestimmte Wörter in einem langen nummerieren. Aber das ganze ca 1000 mal ist sehr aufwändig, daher will ich es am liebsten automatisch machen lassen.

Ich habe Sätze, die mit "text" enden. Diese können allerdings schon Nummern dahinter enthalten, weil die Sätze aus anderen Quellen reinkopiert wurden. ZB. heißen sie dann "text1", "text7", "text3", usw. Nicht in einer Reihenfolge, dafür wiederholen sich einige dieser Nummern.

Was ich möchte ist dass alle "text"e samt ihrer bisherigen Nummer umgeändert werden in "text1", "text2", "text3" usw. bis "text1000".

Ich hab das in Word (2013) versucht.
Ich hab dort durch Suche "text" 1000 mal gefunden und es wird dort gelb hervorgehoben. Mann kann nun das gesuchte (und gefundene Wort) "ersetzen".
Für mein Vorhaben brauche ich eine Art Code oder Kombination, die dann für eine beliebige Zahl steht. Ich stells mir so vor:

Ersetze alle "text👎" mit "text(1+n)"

oder so ähnlich. Geht sowas denn über Word? Ich finde selbst nichts dazu. Oder gibt es eine andere Möglichkeit?
 
Es geht nur um reinen Text, ohne Formatierung? Dann könnte ich recht schnell was schreiben. Wenn die Formatierung erhalten bleiben muss müsste das ja quasi ein Word Plugin etc sein, da habe ich keine Ahnung
 
  • Thread Starter Thread Starter
  • #3
Tatsächlich ist der Text im Editor entstanden bzw. ich nutze den Editor dafür und hab den Text von dort in Word nur kopiert weil ich dachte ich finde da eine Lösung. Die Formatierung ist wirklich egal, Hauptsache jeder "text" wird durchnummeriert.
 
So. Ich hoffe ich habe dich richtig verstanden. Ist aber Java, aber gepackt als .jar, einfach doppelklicken.
Musste es .rar'en, da man .jar's nicht hochladen darf.



EDIT: falls jemand den Code interessiert, hier:
[src=java] String text = textPane.getText();
String target = textFieldSearch.getText();
int n = Integer.parseInt(textFieldFrom.getText());

int pos = 0;

while(pos < text.length()) {

// Suche nach target
int targetBegin = text.indexOf(target, pos);

// kein target gefunden
if(targetBegin == -1) {
break;
}
int targetEnd = targetBegin + target.length();

// Suche nach zahl hinter target
if(targetEnd >= text.length()) { // target end hinter ende
text = text + n;
break;
}

String ch = Character.toString(text.charAt(targetEnd));
try {
Integer.parseInt(ch); // schlägt nicht fehl -> zahl folgt
// Zahlen entfernen
int k = 1;
while(true) {
try {
Integer.parseInt(Character.toString(text.charAt(targetEnd + k)));
}
catch (Exception e) {
// k war keine Zahl -> k -1 ist letzte zahl
break;
}
k++;
}

// Nummerierung 👎 einfügen
String teil1 = text.substring(0, targetEnd);
String teil2 = text.substring(targetEnd + k, text.length()); // Nach zahl schneiden
text = teil1 + n + teil2;
n++;
}
catch(Exception e) {

// Nummerierung 👎 einfügen
String teil1 = text.substring(0, targetEnd);
String teil2 = text.substring(targetEnd, text.length());
text = teil1 + n + teil2;
n++;
}


pos = targetEnd + Integer.toString👎.length();
}
textPane.setText(text);[/src]
Ich erhebe natürlich keinen Anspruch auf Effizienz, nur schnell runtergetippt und getestet/gefixt. Es sind ein paar Redundanzen drin, funktionieren tuts aber.

EDIT 2: Nun gibts auch Scrollbalken am Textfeld


Grüßle,
Kampfmelone
 

Anhänge

Zuletzt bearbeitet:
Wenn es die Aufgabe löst ist es natürlich gut.

Aber eine Lösung mit Word wäre ja dennoch interessant.
Leider habe ich gerade kein Office zur Hand. Aber ich denke an Suchen/Ersetzen mit Platzhaltern, so daß alles gefunden wird, was mit "text" beginnt . Ersetzt wird dann mit "text"+Feldfunktion (SEQ-Feld oder LISTNUM-Feld).

Müßte man mal ausprobieren.
 
  • Thread Starter Thread Starter
  • #6
Wahnsinn, genau was ich gebraucht hab und funktioniert super :T du hast mir echt ne riesen Arbeit abgenommen, ich freu mich echt riesig.
Hast du ne PayPal Adresse damit dein nächstes Döner auf mich geht?

@Kapitn:
Ich lese SEQ zum ersten mal, dabei dachte ich ich kenn mich gut mit Word aus. Ich hab nicht mehr die Zeit es auszuprobieren, vielleicht mal die Tage.
Trotzdem danke
 
Zurück
Oben