.exe Datei (Aus C++) mit OpenOffice Calc öffnen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: .exe Datei (Aus C++) mit OpenOffice Calc öffnen

von Toxitom » Do, 29.03.2007 18:10

Hey David,

lass den Makro-Rekorder auf jeden Fall weg - da lernst du gar nichts und es verwirrt nur.
OOo verwendet zwei Möglichkeiten der Skript-Programmierung: Den "normalen" code, objektorientiert (UNO) und den "Dispatcher-Mode", eine Art "Helferlein" Der Dispatchercode führt vordefinierte Aufgaben aus - festgelegt durch spezielle Schlüsselwörter. Hier kannst du kaum etwas verändern, lernen oder ähnliches - entweder es funktioniert oder eben nicht.
Der Rekorder kann nur Dispatcher-Code aufzeichnen, aber leider geht nicht alles damit. Also, beachte dieses erst gar nicht.

Gruss
thomas

von Ridic82 » Do, 29.03.2007 15:34

Toxitom hat geschrieben:Hey David,

Na ja, einen String aus Feldinhalten zu erzeugen ist nicht schwer, du brauchst halt eine Schleife....

...

Vielleicht hilft dir das.

Gruss
Thomas
Ja, es hat mir geholfen! DANKE!

Muss aber dazu sagen, dass ich trotz ein wenig Programmier-Erfahrung die Syntax bzw. die Befehle der Makro-Programmierung nicht gerade einfach finde. Wenn ich mir da den Quellcode eines "aufgenommenen" Makros durchlese, verstehe ich nur Bahnhof :wink: Da müsste man sich schon mal intensiv einlesen. Das sollte ich vielleicht mal tun, aber für das aktuelle Problem hätte sich das wohl nicht gelohnt.

Vielen Dank für die schnelle & fachkundige Hilfe!

Gruss,
David

von Toxitom » Mi, 28.03.2007 22:01

Hey David,

Na ja, einen String aus Feldinhalten zu erzeugen ist nicht schwer, du brauchst halt eine Schleife....
also bei dir:

Code: Alles auswählen

dim s as string
for i = 1 to 24
   oZelle = ThisComponent.sheets(0).getCellRangeByName("A"& i)
   s = s & oZelle.value & " "
next
msgbox s
liefert dir die Inhalte der Zellen A1-a24 des ersten Tabellenblattes als ein mit Leerzeichen getrennter String, am Ende ist allerdings auch noch ein Leerzeichen!

Vielleicht hilft dir das.

Gruss
Thomas

von Ridic82 » Mi, 28.03.2007 17:05

Toxitom hat geschrieben:

Code: Alles auswählen

sub Programm_Aufruf
 sListe = "123, 234, 345, 456"  'deine Liste der Werte, kannst du 
          'natürlich per Makro erzeugen
 sURL = "C:\Programme\meinProgramm.exe"
 oService = createUnoService("com.sun.star.system.SystemShellExecute")
 oService.execute(sURL, sListe ,0) 
end sub
Danke nochmal für die Hilfe, Thomas!

Ich hab das jetzt auch mal umgesetzt & einige Teilerfolge errungen :wink:

Ich habe ein Makro erzeugt, dass mir die Werte in den Felder A1:A24 in einer .csv abspeichert, dann die .exe öffnet & die .csv einliest.
Natürlich funktioniert es auch, wenn man - wie du - die Werte per Hand im Makro eingibt, wobei ich die Variante OHNE "," gewählt habe (Für die Übergabe zur .exe besser).


Einfacher wäre es aber, wie gesagt, den Zwischenschritt .csv auszulassen und die Werte direkt in der" sListe" zu speichen.

Habe es in deinem Programmbeispiel mit folgendem versucht:

Code: Alles auswählen

...
sListe = "$A$1:$A$24"
...
&

Code: Alles auswählen

...
sListe = "$Tabelle1.$AV$1:$AV$24"
...
Funktioniert aber nicht! :? :wink:

Ich denke mir, dass das Problem trivial ist, aber es wäre trotzdem nett, wenn mir jemand helfen könnte. :oops:


MfG,
David

von Ridic82 » Mi, 28.03.2007 12:51

Ok, vielen Dank Thomas!

Werde das nachher versuchen umzusetzen und gebe dann Feedback!

MfG,
David

von Toxitom » Mi, 28.03.2007 11:53

Hey David,

also, ein exe-Programm kannst du direkt im Shell-Befehl ausführen. Dem Programmaufruf könntest du auch Parameter mitliefern - eben so wie auf der Kommandozeile. Du könntest beispielsweise deine 24 Werte als kommaseparierte Liste als ein Parameter übergeben - und dann müsste dein Programm diesen Parameter eben auswerten.
Das Prinzip sähe dann so aus:

Code: Alles auswählen

sub Programm_Aufruf
 sListe = "123, 234, 345, 456"  'deine Liste der Werte, kannst du 
          'natürlich per Makro erzeugen
 sURL = "C:\Programme\meinProgramm.exe"
 oService = createUnoService("com.sun.star.system.SystemShellExecute")
 oService.execute(sURL, sListe ,0) 
end sub
Viele Grüße
Thomas

.exe Datei (Aus C++) mit OpenOffice Calc öffnen

von Ridic82 » Di, 27.03.2007 23:21

Hallo,

ich muss gleich dazu sagen, dass ich mit Makro-Programmierung nicht so viel am Hut habe.
Ich suche eine Möglichkeit eine .exe-Datei aus Calc zu öffnen und dieser direkt Werte aus der OO-Datei zu übergeben. Die Operationen sind recht simpel - konkret sieht das so aus:

Bis jetzt speichere ich eine "Liste" von 24 Zahlen aus OO-Calc als .csv-Tabelle. Dann öffne ich das C++-Programm, welches wiederum die 24 Werte der .csv-Tabelle einliest und weiterverarbeitet.

Ziel ist es über einen Button oder eine Tastenkombination in OO-calc das Programm direkt zu öffnen und die Werte weiterzugeben. Ob es über den Zwischenschritt der .csv-Datei geht ist eigentlich nicht so wichtig - da kann ich evtl. auch das C++-Programm modifizieren.

Wäre nett, wenn mir jemand weiterhelfen könnte!

MfG,
David

Nach oben