Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save cKlee/5261227 to your computer and use it in GitHub Desktop.
Save cKlee/5261227 to your computer and use it in GitHub Desktop.
SucheErsetze Skript mit neuer Bedingung
function bearbeiteZeilenErsetzen()
{
//Zuerst werden die Zeilen gezählt, dann wandert das Script durch
//den ganzen Datensatz und vergleicht die Kategorien mit den Vorgaben des Anwenders
//bei der find-Anweisung steht lineOnly immer auf true, weil jede Zeile einzeln
//untersucht werden soll
var strbedingung = document.getElementById("idBedingung").value;
var strbedingung2 = document.getElementById("idBedingung2").value;
var zeilenNr, tagContent, strTag;
application.activeWindow.title.endOfBuffer(false);
var lZeilen = application.activeWindow.title.currentLineNumber;
application.activeWindow.title.startOfBuffer(false);
var bedingungInRange;
if (strbedingung2 != "")
{
var bedingungInRange = false;
if (application.activeWindow.title.find(strbedingung2, bcaseSensitive, false, bwholeWord) == true){
strTag = application.activeWindow.title.tag;
if(strTag >= Kat1 && strTag <= Kat2)
{
bedingungInRange = true;
}
application.activeWindow.title.startOfBuffer(false);
}
} else {
bedingungInRange = true; // keine Bedingung
}
//alle Zeilen im Datensatz prüfen:
for (zeilenNr = 1; zeilenNr <= lZeilen; zeilenNr++){
strTag = application.activeWindow.title.tag;
//alert("strTag: " + strTag + "\nKat1: " + Kat1 + "\nKat2: " + Kat2);
//alle Vorkommnisse in der Kategorie werden ersetzt:
if (strTag >= Kat1 && strTag <= Kat2){
if(bedingungInRange)
{
if (strbedingung != "")
{
if (application.activeWindow.title.find(strbedingung, bcaseSensitive, true, bwholeWord) == true)
{
application.activeWindow.title.startOfField(false);//Suche ab Zeilenanfang:
while(application.activeWindow.title.find(strSuche, bcaseSensitive, true, bwholeWord) == true)
{
application.activeWindow.title.insertText(strErsetze);
}
}
} else {
while(application.activeWindow.title.find(strSuche, bcaseSensitive, true, bwholeWord) == true){
application.activeWindow.title.insertText(strErsetze);
}
}
}
//alert(Kat1 + "\n" + strSuche + "\n" + application.activeWindow.title.find(strSuche, bcaseSensitive, true, bwholeWord));
//find geht zum gesuchten Begriff und markiert ihn. Nochmals ausgeführt wird im Rest der Zeile gesucht
// while(application.activeWindow.title.find(strSuche, bcaseSensitive, true, bwholeWord) == true){
// application.activeWindow.title.insertText(strErsetze);
// }
}
application.activeWindow.title.endOfField(false);//wichtig bei mehrzeiligen Inhalten!
application.activeWindow.title.lineDown(1, false);
application.activeWindow.title.startOfField(false);
}
return;
}
<?xml version="1.0"?> <!-- -*- Mode: HTML -*- -->
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<?xml-stylesheet href="chrome://global/skin/global.css" type="text/css"?>
<dialog
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="Suche und Ersetze"
buttons="cancel"
onload="onLoad();"
ondialogcancel="return onCancel();"
onunload="application.activate(); "
>
<script type="application/x-javascript" src="chrome://ibw/content/xul/gbv_sucheErsetze_dialog.js" />
<tabbox flex="1">
<tabs >
<tab label="Suchen und Ersetzen" onclick="focusFeldidSuche();"/>
<tab label="Ergänzen von Kategorien" onclick="focusFeldidWennKat();"/>
<tab label="nur VZG" id="tabLoeschen" onclick="focusFeldidLoescheKat();" />
</tabs>
<tabpanels >
<tabpanel id="idSeite1">
<vbox flex="1">
<description style="width: 30em;" flex="1">
Mit diesem Formular können in allen Datensätzen eines Sets Texte gesucht und durch neue ersetzt werden.
</description>
<groupbox>
<caption label="Was soll gesucht und ersetzt werden?"/>
<grid flex="1">
<columns>
<column flex="1"/>
<column flex="1"/>
</columns>
<rows>
<row>
<label value="Suche:" />
<textbox id="idSuche"
name="textboxTab1"
flex="1"
minheight="22px"/>
</row>
<row>
<label value="Ersetze:" />
<textbox id="idErsetze"
name="textboxTab1"
flex="1"
minheight="22px"/>
</row>
</rows>
</grid>
</groupbox>
<groupbox>
<caption label="In welcher Kategorie soll Text ersetzt werden?"/>
<grid flex="1">
<columns>
<column flex="1"/>
<column flex="1"/>
<column flex="1"/>
</columns>
<rows>
<row>
<separator/>
<label value="von:"/>
<label value="bis:"/>
</row>
<row>
<label value="Kategorie/n:"/>
<textbox id="idKategorie1"
name="textboxTab1"
flex="1"
tooltiptext="Beispiel: 7100 bis 7109"
minheight="22px"/>
<textbox id="idKategorie2"
name="textboxTab1"
flex="1"
tooltiptext="Beispiel: 7100 bis 7109"
minheight="22px"/>
</row>
</rows>
</grid>
</groupbox>
<groupbox>
<caption label="Weitere Bedingung (optional)"/>
<description style="width: 30em;" flex="1">
Ersetze nur, wenn in derselben Kategorie auch dieser Text vorkommt.
</description>
<textbox id="idBedingung"
name="textboxTab1"
flex="1"
minheight="22px"/>
</groupbox>
<groupbox>
<caption label="Weitere Bedingung (optional)"/>
<description style="width: 30em;" flex="1">
Ersetze nur, wenn in einer der angegebenen Kategorien auch dieser Text vorkommt.
</description>
<textbox id="idBedingung2"
name="textboxTab1"
flex="1"
minheight="22px"/>
</groupbox>
<groupbox>
<caption label="Sucheinstellungen"/>
<checkbox id="idCheckboxExemplar" name="checkbox" label="Nur Lokal- und Exemplarebene"/>
<checkbox id="idCheckboxWort" name="checkbox" label="als Wort"/>
<checkbox id="idCheckboxCase" name="checkbox" label="Groß-/Kleinschreibung"/>
</groupbox>
<separator/>
<hbox align="right">
<button label="Alles zurücksetzen" oncommand="resetAllErsetzen();" />
<button label="Set bearbeiten" accesskey="S" oncommand="bearbeiteSetErsetzen();" />
</hbox>
</vbox>
</tabpanel>
<tabpanel id="idSeite2" flex="1">
<vbox flex="1">
<groupbox>
<caption label="Ergänzen von Kategorien:"/>
<grid flex="1">
<columns>
<column flex="1"/>
<column flex="1"/>
</columns>
<rows>
<row>
<label value="Wenn in Kategorie ... " />
<label value="dieser Text vorkommt ..." />
</row>
<row>
<textbox id="idWennKat"
name="textboxTab2"
flex="1"
minheight="22px"/>
<textbox id="idWennText"
name="textboxTab2"
flex="1"
minheight="22px"/>
</row>
<row>
<label value="Dann ergänze Kategorie ..." />
<label value="mit diesem Text ..." />
</row>
<row>
<textbox id="idDannKat"
name="textboxTab2"
flex="1"
minheight="22px"/>
<textbox id="idDannText"
name="textboxTab2"
flex="1"
minheight="22px"/>
</row>
</rows>
</grid>
</groupbox>
<hbox align="right">
<button label="Alles zurücksetzen" oncommand="resetAllZufuegen();" />
<button label="Set bearbeiten" accesskey="b" oncommand="bearbeiteSetZufuegen();" />
</hbox>
</vbox>
</tabpanel>
<tabpanel id="idSeite3" flex="1" hidden="true">
<vbox flex="1">
<groupbox>
<caption label="Löschen von Kategorien:"/>
<grid flex="1">
<columns>
<column flex="1"/>
<column flex="1"/>
</columns>
<rows>
<row>
<label value="Lösche Kategorie ... " />
<label value="wenn dieser Text darin vorkommt ..." />
</row>
<row>
<textbox id="idLoescheKat"
name="textboxTab3"
flex="1"
minheight="22px"/>
<textbox id="idLoescheText"
name="textboxTab3"
flex="1"
minheight="22px"/>
</row>
</rows>
</grid>
</groupbox>
<hbox align="right">
<button label="Alles zurücksetzen" oncommand="resetAllLoeschen();" />
<button label="Set bearbeiten" accesskey="b" oncommand="bearbeiteSetLoeschen();" />
</hbox>
<separator/>
<label value= "Diese Registerkarte ist nur für die ELN 1999 und 2013 sichtbar."/>
</vbox>
</tabpanel>
</tabpanels>
</tabbox>
<groupbox>
<caption label="Schlussmeldung: "/>
<label id="idSchlussmeldung1" value= " "/>
<label id="idSchlussmeldung2" value= " "/>
<label id="idSchlussmeldung3" value= " "/>
<button id="idButtonDatei"
label="Datei öffnen" oncommand="fehlerDateiOeffnen();"
hidden="true" />
</groupbox>
</dialog>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment