[gelöst] Bereichsnamen auslesen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

[gelöst] Bereichsnamen auslesen

Beitrag 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
Zuletzt geändert von clag am Fr, 27.06.2014 13:32, insgesamt 1-mal geändert.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Bereichsnamen auslesen

Beitrag von Karolus »

Hallo

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

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Bereichsnamen auslesen

Beitrag von Karolus »

Hallo

Es scheint sich zu handeln um:

Code: Alles auswählen

...
doc = thisComponent
bereiche = doc.getTextSections()
...
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Bereichsnamen auslesen

Beitrag 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
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Bereichsnamen auslesen

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Bereichsnamen auslesen

Beitrag von clag »

Hallo Karolus,

hier eine Beispieldatei
Bereiche_ermitteln.odt
(13.13 KiB) 94-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:
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Bereichsnamen auslesen

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Bereichsnamen auslesen

Beitrag 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:
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Bereichsnamen auslesen

Beitrag 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
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Bereichsnamen auslesen

Beitrag 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
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Antworten