OLE-Schnittstelle, OLE-Programmierung in VB

Hallo

Ich suche eine Möglichkeit, wie man im RagTime 6.5 / Windows gewisse Abläufe automatisieren könnte. Da bin ich auf die OLE-Schnittstelle gestossen. Ich finde jedoch weder weitere Hinweise noch Beispiele zu RagTime im Internet.

- Wo sind die Kommandos der Ole-Schnittstelle von RagTime aufgeführt?
- Wie werden diese mit VisualBasic ausgeührt?
- Sind Beispiele vorhanden?

Vielen Dank für Hinweise und Beispiele.

Gruss
Dave

Re: OLE-Schnittstelle, OLE-Programmierung in VB

#9051 On 19 November, 2009 12:39 Stephan Will said,

Hallo Dave,

Am Wed Nov 18 2009 15:01:02 GMT+0100 schrieb Dave :
> Ich suche eine Möglichkeit, wie man im RagTime 6.5 / Windows gewisse Abläufe
> automatisieren könnte. Da bin ich auf die OLE-Schnittstelle gestossen. Ich finde
> jedoch weder weitere Hinweise noch Beispiele zu RagTime im Internet.
>
> - Wo sind die Kommandos der Ole-Schnittstelle von RagTime aufgeführt?
> - Wie werden diese mit VisualBasic ausgeührt?
> - Sind Beispiele vorhanden?

OLE ist 1. von MS, 2. instabil und 3. veraltet.

zu 1. Infos zu OLE findest Du per Google oder bei MS selbst.
zu 2. ...
zu 3. MS hat die Entwickluing von OLE bereits vor Jahren eingestellt.

Somit gibt es keine Bugfixes und keine Anpassung an neuere OS-Versionen
und Programme.
Ich würde OLE nicht verwenden.

Wofür willst Du es nutzen?

Gruß
Stephan

Re: OLE-Schnittstelle, OLE-Programmierung in VB

#9052 On 19 November, 2009 14:11 Dave said,

Hallo Stephan

Vielen Dank für Deine Antwort. Also scheint dies auch keine Lösung zu sein.

Ich möchte RagTime gerne als "Test-Dokumentierungs-Tool" auf Windows in der Firma einsetzen. Der Funktionsumfang von RagTime würde dies supper ermöglichen (Messdaten in Tabellen zu Grafiken, Bilder von Testaufbauten, Testbeschreibungen, usw. --> in Testbericht).

Die Messdaten liegen z.B. in verschiedenen Dateiformaten vor welche direkt in eine RagTime-Tabelle (mit verschiedenen Umformatierungen) eingelesen werden sollen. Da wäre ein "Makro" extrem hilfreich. Natürlich könnte man die Daten auch z.B. mit VBA ins Excel einlesen, .csv-Datei erzeugen und im RagTime einlesen. Ok dieser Fall wäre erledigt, aber was kommt weiter noch?

Ich habe einfach ein "ungutes" Gefühl, wenn ich ein Programm quasi als Standard einführe von dem ich genau weiss, dass keine Möglichkeit von irgend welcher "Automatisierung" vorhanden ist.

Mac-OS auf PC und dann Mac-Script verwenden, scheint mir auch keine Lösung zu sein.
(Das Ganze mit Office 2007 zu lösen befriedigt mich auch nicht, denn: man nehme eine Bild, platziere es an die gewünscht Stelle, schreibe eine zusätzliche Zeile - wo ist jetzt das Bild? usw.)
Ein "ähnliches" Programm ist mir nicht bekannt.

Gruss
Dave

Re: OLE-Schnittstelle, OLE-Programmierung in VB

#9053 On 19 November, 2009 15:24 Norbert Lindenthal said,

Moin, Dave,

wie wärs denn, Windows auf einem Mac laufen zu lassen (Parallels) und
RagTime mit Mac OS X per AppleScript zu automatisieren?

Norbert Lindenthal

Re: OLE-Schnittstelle, OLE-Programmierung in VB

#9059 On 23 November, 2009 09:50 Dave said,

Hallo Norbert

Danke für den Tipp, aber wir haben PCs als Standard in unserer Firma und dürfen keine Macs beschaffen.

Gruss Dave

Re: OLE-Schnittstelle, OLE-Programmierung in VB

#9054 On 19 November, 2009 15:44 Stephan Will said,

Hallo Dave,

Am Thu Nov 19 2009 14:16:01 GMT+0100 schrieb Dave :

> Ich habe einfach ein "ungutes" Gefühl, wenn ich ein Programm quasi als
> Standard einführe von dem ich genau weiss, dass keine Möglichkeit von
> irgend welcher "Automatisierung" vorhanden ist.

was genau möchtest Du denn weiter "Automatisieren"?
Innerhalb von RagTime kann man mit Formeln in Tabellen vieles
automatisieren, zusäztlich gibt es noch Martins PowerFunctions (oder so
ähnlich).
Per FileTime könnte man auch eine Datenbank abfragen, evtl. auch direkt
auf Excel-Daten zugreifen (per ODBC).

In welchen Datenformaten liegen die nutzenden Werte denn vor?

Grüße
Stephan

Re: OLE-Schnittstelle, OLE-Programmierung in VB

#9060 On 23 November, 2009 10:35 Dave said,

Hallo Stephan

Danke dass Du Dich nochmals gemeldet hast.
Es geht nicht um Datenbankzugriffe und die PowerFunctions sind zu eingeschränkt.

Eine der möglichen Automatisierung wäre, das Textfile (Auszug unten) direkt in die folgende Tabellen-Struktur zu bringen. Ablauf: nach Count> die Anzahl Messpunkte, nach XStart> die Start- und nach XStop> die Stopfrequenz einlesen, Titelzeilen entfernen, in erste Spalte die aus XStart, XStop und Count berechnete Frequenzreihe mit zugehörenden Werten bilden.

Auszug aus Textdatei (Messdaten)
...
...
TimeSpanStart>-1/TimeSpanStart
TimeSpanLength>-1/TimeSpanLength>
InternalYUnits>dBm/InternalYUnits>
InternalXUnits>Hz/InternalXUnits>
YUnits>dBuV/YUnits>
XUnits>Hz/XUnits>
MinMax>false/MinMax>
Count>10401/Count>
XStart>10000/XStart>
XStop>1800000/XStop>
y>8.2883100509643555/y>
y>10.071749687194824/y>
y>8.1025800704956055/y>
...
...

Wunschtabelle im RagTime

Spalte1 | Spalte2
Frequenz | Wert
10000 | 8.2883100509643555
10172 | 10.071749687194824
10344 | 8.1025800704956055
...
...

Ist so etwas ohne "Makroprogrammierung" möglich?
Ich möchte nochmals betonen, dass dies nur eine mögliche "Problemstellung" von weiteren ist, welche ich noch nicht so konkret definieren kann.
Könnte man dies überhaupt mit OLE lösen? Ich kenne mich da zu wenig aus.

Auf der Ragtime-Homepage ist zu lesen:
Die neu implementierte OLE-Automatisierung bietet über 1500 Funktionen um RagTime in vielen Bereichen zu automatisieren. Auf Basis von VisualBasic und anderen Programmiersprachen können Dokumente per Fernsteuerung erstellt, erweitert, aktualisiert, gedruckt und exportiert werden.

Das tönt eigentlich vielversprechend, aber (wie Du geschrieben hast) ist das bereits veraltet, oder?

Gruss
Dave

Re: OLE-Schnittstelle, OLE-Programmierung in VB

#9062 On 23 November, 2009 11:42 Bernhard Storch said,

Hallo Dave,

mit RagTime kannst du mit dem Befehl "Teil(...)" aus einem Text eine bestimmte Zeichenkette auslesen und falls nötig auch mit dem Befehl "Wert(...)" in eine Zahl wandeln. Falls die gesuchte Zeichenkette nicht immer an der selben Stelle des Textes zu finden ist, kannst du mit dem Befehl "Finden(...)" die Stelle im Text lokalisieren, an der eine bestimmte Zeichenfolge wie z.B. "/y" zu finden ist. Das alles ohne AppleScript und ohne OLE!

Gruß, Bernhard Storch

Re: OLE-Schnittstelle, OLE-Programmierung in VB

#9061 On 23 November, 2009 11:35 Thomas Kaegi said,

Hallo Dave

Mit "Finden" und "Teil" kannst du die Werte aus dem Text extrahieren - ohne Scripting. Woher allerdings die Frequenzwerte in Spalte 1 stammen, ist mir nicht klar. Deinem Text können sie nicht entnommen werden.

Ich habe eine Musterdatei erstellt, in der du sehen kannst, wie das gemacht wird:

http://www.ragtime-consult.ch/ExtractWerteAusText.zip

Wenn die Textdatei viele Werte enthält, kann man das mit einem Suchlauf automatisieren, ohne Formeln endlos nach unten kopieren zu müssen. Dazu verweise ich auf die Beispiele in meinem Buch "RagTime 6".

Gruss
Thomas

Re: OLE-Schnittstelle, OLE-Programmierung in VB

#9073 On 25 November, 2009 12:25 Dave said,

Hallo Bernhard und Thomas

Vielen Dank für Euren Tipp der Formeln.
Ich habe etwas "rumgespielt" und habe das Prinzip verstanden.

Leider kenne ich die Funktionen von RagTime (noch) zu wenig aber das ganze wird für mich konkreter.

Zu Eurer Info:
Ich muss z.B. 40 Dateien, wie ich sie in #9060 dargestellt habe mit je 10'401 Messpunkten (!) möglichst einfach und schnell einlesen. Zu jedem Messwert muss der zugehörige Frequenzwert berechnet werden.
Detail zur Formel: Increment = ((XStop - XStart) / (Count-1)). Frequenzwert = XStart + (increment * "ZeilenNr").
Das Ziel ist alle 40 Datenreihen (Frequenz und Wert) in einer (!) Tabelle zusammenzufassen (nur Werte, ohne Formeln, ohne zusätzliche Hilfstabellen usw.)

Mein Kollege hat dies mit AppleScript und RagTime (auf seinem privaten Mac) in ählicher Weise mit akzeptabler Ausführgeschwindigkeit (ca. 9s Konvertierungszeit für eine Dateien) hingekriegt.

Mein Gefühl ist, dass etwas davon mit den Formeln lösbar ist (Abarbeitungsgeschwindigkeit ist ok). Aber können dann die 40 Textdateien bzw. die Hilfsdateien wieder automatisch gelöscht werden?
Ist es z.B. möglich einen Ordner zu selektieren und alle darin enthaltenen Dateien mit einem bestimmten Datei-Typ wie oben beschrieben einzulesen?
Das "Handling" um die eigentliche Daten-Konvertierung herum ist vermutlich mit den Formeln, bzw. ohne AppleScript nicht lösbar, oder sehe ich das falsch?

Darum war meine Frage ob man auf einem Windows-PC so etwas über die OLE-Schnittstelle, mit "Plugins" oder auf eine andere Art realisieren kann.
Ich befürchte jedoch langsam, dass dies mit RagTime auf Windows nicht möglich ist, welches sehr schade wäre.

Danke für Eure Bemühungen.

Gruss
Dave

Re: OLE-Schnittstelle, OLE-Programmierung in VB

#9074 On 25 November, 2009 23:32 Thomas Kaegi said,

Hallo Dave

Mit Formeln lassen sich aus RagTime keine Vorgänge mit externen Dokumenten steuern. Damit RagTime-Formeln für die Textextraktion ihre Wirkung entfalten können, muss der zu verarbeitende Text in eine Rechenblattzelle eingelesen sein. Diese Zelle kann auch in einem zweiten RagTime-Dokument liegen. Aber um den Text von der externen Datei mit den Messwerten in diese Zelle zu importieren brauchst du ein Skript und ebenso um die externe Datei zu löschen. Mit AppleScript ist diese Steuerung sicher zu machen. Ich nehme an, mit OLE geht das auch. Aber diese Annahme ist willkürlich - denn von OLE weiss ich gar nichts. Ich habe gegenüber RagTime schon mal den Wunsch geäussert, doch ein oder ein paar Beispiele mit OLE verfügbar zu machen. Vielleicht (hoffentlich!) beglückt uns Jürgen Schell demnächst mit einer entsprechenden InfoMail.

Gruss
Thomas