textcursor funktioniert nicht

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

Moderator: Moderatoren

kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

textcursor funktioniert nicht

Beitrag von kannenklaus »

hallo zusammen,

im folgenden code löst der textcurose eine exhibition aus. woran liegt das?

Code: Alles auswählen

Sub TextEinf
'dim x as object
myDoc = thisComponent
myTables = myDoc.getTextTables
myText = myDoc.text

myTable=myTables.getByIndex(0)

For i = 1 to 1 'myTables.count

	myTable = myTables.getByIndex(i)
	'xray mytable
	x = myTable.getCellByPosition(1,13)
	
	mytextCursor = mydoc.text.createtextcursor()
	
	xray mytextcursor
	mytextCursor.gotoRange(x,false)
	
	myText.insertString(myTextCursor, "Eingriff",false)

Next i

End Sub
danke klaus
Jonny1
***
Beiträge: 55
Registriert: Mi, 12.01.2011 21:49

Re: textcursor funktioniert nicht

Beitrag von Jonny1 »

Ich weiß nicht, was eine Exibition ist.

Als ich aber in deinen Text "i" mit "i-1" ersetzt habe, und zwar so:

Code: Alles auswählen

For i = 1 to 1 'myTables.count

   myTable = myTables.getByIndex(i-1)
   'xray mytable
   x = myTable.getCellByPosition(1,13)
   
   mytextCursor = mydoc.text.createtextcursor()
   
   xray mytextcursor
   mytextCursor.gotoRange(x,false)
   
   myText.insertString(myTextCursor, "Eingriff",false)

Next i
... bin nicht mehr "out of bounds" gegangen.
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Re: textcursor funktioniert nicht

Beitrag von kannenklaus »

hallo jonny


daran liegt es nicht. vielleicht ist es ein problem von libreoffice das anstatt openoffice nutze.

danke für deine hilfe

klaus
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: textcursor funktioniert nicht

Beitrag von Karolus »

Hallo
daran liegt es nicht. vielleicht ist es ein problem von libreoffice das anstatt openoffice nutze.
Wohl kaum, schau dir mal den Mumpitz an den du in den folgenden Zeilen veranstaltest:

Code: Alles auswählen

...
myTable=myTables.getByIndex(0)
'↑hier wird die 1. Tabelle an den Namen 'mytable' gebunden.
For i = 1 to 1 'myTables.count
'↑ Hier startest du eine überflüssige for-schleife mit der einzigen Zählvariablen 1 ...wozu bitte ?
   myTable = myTables.getByIndex(i)
'↑ innerhalb der Schleife wird dann die 2. Tabelle an 'mytable' gebunden 
...
Die Grundlagen solltest du inzwischen draufhaben, sowas erst gar nicht zu schreiben geschweige es hier zu posten!


Karo
Ps. du meintest vmtl. Exception ( Ausnahme ) und nicht Exhibition ( Austellung )
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Jonny1
***
Beiträge: 55
Registriert: Mi, 12.01.2011 21:49

Re: textcursor funktioniert nicht

Beitrag von Jonny1 »

Eine Schleife, die nur einmal durchgegangen wird, hat natürlich in einem fertigen Programm keinen Sinn.

In einer Probe aber kann sie durchaus sinnvoll sein, denke ich. Wenn sie funktioniert, dann kann man sie später erweitern.

Was ich verstanden hatte, war es, daß, wenn es zur Probe nur eine einzige Tabelle gibt, dann ist der richtige Index nicht 1, sondern 0, denn Arrays fangen normalerweise mit 0 und nicht mit 1 an. Und das Programm bestätigte irgenwie die Vermutung, denn danach konnte ich durch die Stelle, die vorher den Fehler gemeldet hatte, durchgehen.
Antworten