gianfranco0104
Erfahrenes Mitglied
Hi, habe einen ACE-Editor Elemente, die ich ständig abgreifen möchte. Soweit klappt das auch ganz gut:
im HTML:
und der "Finden" Script:
Das Problem ist, wenn eines der gesuchten Wörter vor her geschrieben ist wie es im <pre>-Tag aufgelistet ist:
"
auslesen_MW3(); (kommt zuerst)
auslesen_MW10(); (kommt danach)
"
also MW10=3
und MW3=2
wird MW10 nicht gefunden, da MW3 in meiner Auflistung zuerst kommt. woran kann das liegen?
es muss demnach also wirlich
MW3=2
und dann MW10=3 im Editor stehen, damit MW10 gefunden wird.
Noch ein Phänomen:
Ich habe im <pre>-Tag auch die Auflistungsreihenfolge umgedreht, dann ist es genau anders herum
Und wenn das erste Element in der der <pre>-Tag Auflistung garnicht im Editor vorkommt, dann werden nachfolgende Elemente auch nicht gefunden. sozusagen ist jedes Element, in der Reihenfolge, wie es im <pre>-Tag aufgelistet ist, abhängig vom vorherigen.
Habe es auch mit weiteren, also mehreren Elementen Probiert um das Fehlerbild zu probieren.
Ich hoffe ich habe das gut dargestellt. ist nicht so einfach.
im HTML:
HTML:
<pre id="editor"
onMouseDown="if (window.event.button === 0) {
auslesen_MW3();
auslesen_MW10();
}"
onKeyUp="
auslesen_MW3();
auslesen_MW10();
">
</pre>
und der "Finden" Script:
Javascript:
// Auslesen MW10 -Werte ---------
function auslesen_MW10(){
editor.find('needle',{
backwards: true,
wrap: false,
caseSensitive: false,
wholeWord: true,
regExp: false
})
editor.$search.set({
needle: /MW10=[0-9].[0-9]\b|MW10=[0-9]\b|MW10=[1-2][0-9]\b/ //|MW10=[1-9][0-9].[0-9][1-9]/
});
var found = editor.$search.find(editor.getSession());
var Range = require('ace/range').Range,
mine = new Range(found.start.row, found.start.column+1, found.end.row, found.end.column);
pump_value01.value = editor.session.getTextRange(mine).replace(/M\b|MW10=\b|W10=\b|[^\\d]/, "");
if (pump_value01.value === "") { pump_value01.value = 0 };
ManPump01();
}
// --------- ENDE Auslesen MW10-Werte ---------
// Auslesen MW3 -Werte ---------
function auslesen_MW3(){
editor.find('needle',{
backwards: true,
wrap: false,
caseSensitive: false,
wholeWord: true,
regExp: false
})
editor.$search.set({
needle: /MW3=[0-9].[0-9]\b|MW3=[0-9]\b|MW3=[1-2][0-9]\b/
});
var found = editor.$search.find(editor.getSession());
var Range = require('ace/range').Range,
mine = new Range(found.start.row, found.start.column+1, found.end.row, found.end.column);
mw3_VC01.value = "MW3 = " + editor.session.getTextRange(mine).replace(/M\b|MW3=\b|W3=\b|[^\\d]/, "");
if (mw3_VC01.value === "") { mw3_VC01.value = "MW3 = " + 1 };
//ManPump01();
}
// --------- ENDE Auslesen MW10-Werte ---------
Das Problem ist, wenn eines der gesuchten Wörter vor her geschrieben ist wie es im <pre>-Tag aufgelistet ist:
"
auslesen_MW3(); (kommt zuerst)
auslesen_MW10(); (kommt danach)
"
also MW10=3
und MW3=2
wird MW10 nicht gefunden, da MW3 in meiner Auflistung zuerst kommt. woran kann das liegen?
es muss demnach also wirlich
MW3=2
und dann MW10=3 im Editor stehen, damit MW10 gefunden wird.
Noch ein Phänomen:
Ich habe im <pre>-Tag auch die Auflistungsreihenfolge umgedreht, dann ist es genau anders herum

Und wenn das erste Element in der der <pre>-Tag Auflistung garnicht im Editor vorkommt, dann werden nachfolgende Elemente auch nicht gefunden. sozusagen ist jedes Element, in der Reihenfolge, wie es im <pre>-Tag aufgelistet ist, abhängig vom vorherigen.
Habe es auch mit weiteren, also mehreren Elementen Probiert um das Fehlerbild zu probieren.
Ich hoffe ich habe das gut dargestellt. ist nicht so einfach.