Seite 1 von 1

[gelöst] Bereichsnamen auslesen

Verfasst: Fr, 27.06.2014 09:20
von clag
Hallo Kenner und Könner,

Ich habe eine odt die viele Bereiche verwendet (jeweils ein Bereich je Kapitel) bis zu 70 pro odt
wo kann man den/einen Bereichsnamen auslesen?
Ich habe erfolglos mit Xray Absätze untersucht finde aber keine Info zu welchem Bereich dieser Absatz gehört.

Welches Element muss man anfassen/ in Xray anzeigen um den/ die angewendeten Bereiche für diesen Absatz zu ermitteln?

Oder ersatsweise, wo kann man die Liste der verwendeten Bereich abgreifen, so wie sie im Navigator unter "Bereiche" angezeigt wird?

schonmal Danke fürs lesen

Re: Bereichsnamen auslesen

Verfasst: Fr, 27.06.2014 09:33
von Karolus
Hallo

Hast du mal eine Beispielsdatei, damit ich mir nicht etwas zusammenbasteln muss dass am Ende gar nicht deinen "Bereichen" entspricht.

Karolus

Re: Bereichsnamen auslesen

Verfasst: Fr, 27.06.2014 09:39
von Karolus
Hallo

Es scheint sich zu handeln um:

Code: Alles auswählen

...
doc = thisComponent
bereiche = doc.getTextSections()
...
Karolus

Re: Bereichsnamen auslesen

Verfasst: Fr, 27.06.2014 10:19
von clag
Hi Karolus,

das passt schon mal gut

Code: Alles auswählen

doc = thisComponent
bereiche = doc.getTextSections()
und liefert schon einmal die Liste der verwendeten Bereiche

allerdings möchte ich die direkte Zugehörigkeit eines Absatzes zu einem Bereich prüfen,

Ein Beispiel liefere ich noch muss ich nur noch erstellen bzw verstümmeln

Re: Bereichsnamen auslesen

Verfasst: Fr, 27.06.2014 10:42
von Karolus
Hallo

Etwa so:

Code: Alles auswählen

#...
if para.TextSection:
    print( 'Absatz ist im Bereich {}'.format(para.TextSection.Name) )
else:
    print( 'Absatz gehört zu keinem Bereich') 

 
Die Übersetzung nach Basic überlasse ich dir.

Karolus

Re: Bereichsnamen auslesen

Verfasst: Fr, 27.06.2014 10:51
von clag
Hallo Karolus,

hier eine Beispieldatei
Bereiche_ermitteln.odt
(13.13 KiB) 95-mal heruntergeladen
mein Ziel es den Bereichsnamen auszulesen wenn "Enum" die Zeile "dieser Text befindet sich in einem Bereich aber in welchem?" findet


PS
wie es scheint warst du schneller auch ohne Beispieldatei :shock:

Re: Bereichsnamen auslesen

Verfasst: Fr, 27.06.2014 11:04
von Karolus
Hallo

Code: Alles auswählen

def main():
    doc = XSCRIPTCONTEXT.getDocument()
    text = doc.Text
    for para in iterate(text):
        if para.TextSection:
            print('Absatz ist im Bereich {}'.format(para.TextSection.Name))
        else:
            print( 'Absatz gehört zu keinem Bereich') 
    
    
def iterate(enumerable):
    enum = enumerable.createEnumeration()
    while enum.hasMoreElements():
        yield enum.nextElement() 
Die Ausgabe für dein Document:

Code: Alles auswählen

Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200501
Absatz ist im Bereich 200501
Absatz ist im Bereich 200501
Absatz ist im Bereich 200501
Absatz ist im Bereich 200501
Absatz ist im Bereich 200501
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200502
Absatz ist im Bereich 200502
Absatz ist im Bereich 200502
Absatz ist im Bereich 200502
Absatz ist im Bereich 200502
Absatz ist im Bereich 200502
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200503
Absatz ist im Bereich 200503
Absatz ist im Bereich 200503
Absatz ist im Bereich 200503
Absatz ist im Bereich 200503
Absatz ist im Bereich 200503
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200504
Absatz ist im Bereich 200504
Absatz ist im Bereich 200504
Absatz ist im Bereich 200504
Absatz ist im Bereich 200504
Absatz ist im Bereich 200504
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200505
Absatz ist im Bereich 200505
Absatz ist im Bereich 200505
Absatz ist im Bereich 200505
Absatz ist im Bereich 200505
Absatz ist im Bereich 200505
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200506
Absatz ist im Bereich 200506
Absatz ist im Bereich 200506
Absatz ist im Bereich 200506
Absatz ist im Bereich 200506
Absatz ist im Bereich 200506
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200507
Absatz ist im Bereich 200507
Absatz ist im Bereich 200507
Absatz ist im Bereich 200507
Absatz ist im Bereich 200507
Absatz ist im Bereich 200507
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200508
Absatz ist im Bereich 200508
Absatz ist im Bereich 200508
Absatz ist im Bereich 200508
Absatz ist im Bereich 200508
Absatz ist im Bereich 200508
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200509
Absatz ist im Bereich 200509
Absatz ist im Bereich 200509
Absatz ist im Bereich 200509
Absatz ist im Bereich 200509
Absatz ist im Bereich 200509
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200510
Absatz ist im Bereich 200510
Absatz ist im Bereich 200510
Absatz ist im Bereich 200510
Absatz ist im Bereich 200510
Absatz ist im Bereich 200510
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200511
Absatz ist im Bereich 200511
Absatz ist im Bereich 200511
Absatz ist im Bereich 200511
Absatz ist im Bereich 200511
Absatz ist im Bereich 200511
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200512
Absatz ist im Bereich 200512
Absatz ist im Bereich 200512
Absatz ist im Bereich 200512
Absatz ist im Bereich 200512
Absatz ist im Bereich 200512
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200513
Absatz ist im Bereich 200513
Absatz ist im Bereich 200513
Absatz ist im Bereich 200513
Absatz ist im Bereich 200513
Absatz ist im Bereich 200513
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200514
Absatz ist im Bereich 200514
Absatz ist im Bereich 200514
Absatz ist im Bereich 200514
Absatz ist im Bereich 200514
Absatz ist im Bereich 200514
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200515
Absatz ist im Bereich 200515
Absatz ist im Bereich 200515
Absatz ist im Bereich 200515
Absatz ist im Bereich 200515
Absatz ist im Bereich 200515
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200516
Absatz ist im Bereich 200516
Absatz ist im Bereich 200516
Absatz ist im Bereich 200516
Absatz ist im Bereich 200516
Absatz ist im Bereich 200516
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200517
Absatz ist im Bereich 200517
Absatz ist im Bereich 200517
Absatz ist im Bereich 200517
Absatz ist im Bereich 200517
Absatz ist im Bereich 200517
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200518
Absatz ist im Bereich 200518
Absatz ist im Bereich 200518
Absatz ist im Bereich 200518
Absatz ist im Bereich 200518
Absatz ist im Bereich 200518
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200519
Absatz ist im Bereich 200519
Absatz ist im Bereich 200519
Absatz ist im Bereich 200519
Absatz ist im Bereich 200519
Absatz ist im Bereich 200519
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200520
Absatz ist im Bereich 200520
Absatz ist im Bereich 200520
Absatz ist im Bereich 200520
Absatz ist im Bereich 200520
Absatz ist im Bereich 200520
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200521
Absatz ist im Bereich 200521
Absatz ist im Bereich 200521
Absatz ist im Bereich 200521
Absatz ist im Bereich 200521
Absatz ist im Bereich 200521
Absatz gehört zu keinem Bereich
Absatz ist im Bereich 200522
Absatz ist im Bereich 200522
Absatz ist im Bereich 200522
Absatz ist im Bereich 200522
Absatz ist im Bereich 200522
Absatz ist im Bereich 200522
Absatz gehört zu keinem Bereich
Karolus

Re: Bereichsnamen auslesen

Verfasst: Fr, 27.06.2014 11:16
von clag
Hallo Karolus,

ja holla
dein Formel und Code Zauberhut liefert ja "direkt und ohne delay :D

ich muss es jetzt nur noch sezieren und verstehen :shock:

Re: Bereichsnamen auslesen

Verfasst: Fr, 27.06.2014 11:24
von Karolus
clag hat geschrieben:Hallo Karolus,

ja holla
dein Formel und Code Zauberhut liefert ja "direkt und ohne delay :D

ich muss es jetzt nur noch sezieren und verstehen :shock:
Jo - mit der Hilfe von IPython notebook geht das schneller wie Basic in der Basic-IDE

Karolus

Re: Bereichsnamen auslesen

Verfasst: Fr, 27.06.2014 13:32
von clag
Hi Karolus

es ist wie immer,
wenn man erst einmal weiß wie es geht, dann ist es einfach

Code: Alles auswählen

enum = objText.createEnumeration
Do While Enum.hasMoreElements
checkElement = Enum.nextElement
if left(checkElement.string,11) = "dieser Text" then 
..
blockID = checkelement.TextSection.Name
..
print blockID
.
.
besten Dank