Sziasztok!
Adott egy szöveg, amiben zárójelek között vannak hivatkozások, akár több sorban is. Ezeket a zárójelben lévő szövegeket kellene sorban belerakni egy másik file-ba.
Elsődlegesen LibreOffice-ban kellene megoldani, de ha sokkal egyszerűbb, lehet awk+sed+cut vagy bármi ami linuxon elfut.
Példa szöveg:
( trey | 2014. január 20., hétfő - 11:05 )
Kernel
Linus néhány órával ezelőtt bejelentette a 3.13-as (zárójelben lévő szöveg) kernel végleges verziójának elérhetőségét. A változásokat tartalmazó patch az -rc8-hoz (zárójel több sorban) képest (zárójelben lévő szám: 1123123) egész kicsi, benne (még egy zárójel a soron belül)leginkább architektúrákkal és driverekkel kapcsolatos frissítések találhatók. A 3.13-as kernel végleges verziójának kiadásával a 3.14-es (zárójelben lévő . : ;) kernel beolvasztási ablaka természetesen megnyílt. Részletek a bejelentésben.
Előre is köszönöm.
- 3836 megtekintés
Hozzászólások
importClass(Packages.com.sun.star.uno.UnoRuntime);
importClass(Packages.com.sun.star.text.XTextDocument);
importClass(Packages.com.sun.star.text.XText);
importClass(Packages.com.sun.star.text.XTextRange);
importClass(Packages.com.sun.star.frame.XModel);
oDoc = UnoRuntime.queryInterface(XModel,XSCRIPTCONTEXT.getInvocationContext());
if ( !oDoc )
oDoc = XSCRIPTCONTEXT.getDocument();
xTextDoc = UnoRuntime.queryInterface(XTextDocument,oDoc);
xText = xTextDoc.getText();
var input = xText.getString();
var regex = /\((.+?)\)/g
var result = input.match(regex);
var resultText = '';
for(var i = 0; i < result.length; i++) {
resultText += result[i];
resultText += "\r\n";
}
xTextRange = xText.getEnd();
xTextRange.setString( resultText );
LibreOffice JavaScript macro, a nagy része automatikus generált (a saját a középső elkülönülő rész ill. a setString argumentuma), az egymásba ágyazott zárójelekkel nem tud mit kezdeni (az már nem reguláris nyelv).
Szerk.: A példaként megadott szövegből ezt hozza ki (beszúrja a doksi végére):
( trey | 2014. január 20., hétfő - 11:05 )
(zárójelben lévő szöveg)
(zárójel több sorban)
(zárójelben lévő szám: 1123123)
(még egy zárójel a soron belül)
(zárójelben lévő . : ;)
BlackY
- A hozzászóláshoz be kell jelentkezni
Köszönöm a gyors választ.
Működik rendesen, viszont a zárójel nem kellene a szövegben.
Le lehet vágni kiírás előtt az eredmény első és utolsó karakterét?
- A hozzászóláshoz be kell jelentkezni
resultText += result[i];
helyett
resultText += result[i].substring(1, results[i].length() - 1);
BlackY
- A hozzászóláshoz be kell jelentkezni
Köszönöm
- A hozzászóláshoz be kell jelentkezni
Valamiért a substring nem akarja elfogadni ezt az érték megadást result[i].length() - 1
- A hozzászóláshoz be kell jelentkezni
Jogos, egy sort két helyen is elírtam (így jár az, aki nem elég lusta, és kipróbálja LO-ban, aztán bezárja és újra bepötyögi a sort a fórumba :) )
Szal: results helyett result, de ez már ok, ill. a length egy attribútum és nem függvény, így result[i].length - 1
BlackY
- A hozzászóláshoz be kell jelentkezni
THX
: )
- A hozzászóláshoz be kell jelentkezni