PureDispHelper

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Andi
Beiträge: 79
Registriert: 27.05.2008 17:29
Wohnort: Berlin

PureDispHelper

Beitrag von Andi »

In dem DispHelper-Readme-File steht etwas zu "Retrieving a value - Get the text of a word document". Ich habe mal versucht, das in PB umzusetzen:

Code: Alles auswählen

test_datei$ = "c:\ ....."
Define inhalt$ = space(1000)

Define.l oWord = dhCreateObject("Word.Application")

dhCallMethod (oWord, "Documents.Open(%T)", @test_datei$)

dhGetValue("%s", @inhalt$, oWord, "ActiveDocument.Range.Text")
MessageRequester("Inhalt des Dokuments", inhalt$)
Angezeigt werden aber nur ein paar kryptische Zeichen und nicht der Dokumentinhalt. Hat das vielleicht etwas mit der Definition der String-Variablen inhalt$ zu tun? Denn wenn ich sie nicht mit space(1000) initialisiere, gibt es sogar eine Fehlermeldung. Vielleicht hat jemand eine Idee!
PB + B4X = greatest tools on earth
Win 10 | PB 5.72
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich hab hier kein Word zum testen, aber inhalt sollte ein long bzw. ein
Pointer sein, kein String!
Dieser wird bei erfolg mit PeekS gelesen und unbedingt mit dhFreeString(inhalt)
freigegeben, bevor er anderweitig genutzt wird.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Andi
Beiträge: 79
Registriert: 27.05.2008 17:29
Wohnort: Berlin

Beitrag von Andi »

Danke, ts-soft, für Deine super Hilfe. Die Auslesevariable muss in der Tat ein Pointer sein. Jetzt funktioniert es einwandfrei!!
PB + B4X = greatest tools on earth
Win 10 | PB 5.72
Antworten