Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > MATLAB
MATLAB Forum d'entraide sur MATLAB. Avant de poster : FAQs MATLAB
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 30/10/2012, 15h45   #1
le fab
Modérateur
 
Avatar de le fab
 
Homme Fabien Grand-Perret
Développeur informatique
Inscription : mars 2005
Messages : 467
Détails du profil
Informations personnelles :
Nom : Homme Fabien Grand-Perret
Âge : 37
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : mars 2005
Messages : 467
Points : 805
Points : 805
Par défaut actXserver & windows 64 bits

Hello

Bon désolé je pose une question sans même avoir pris le temps de chercher, mais bon, je suis un peu pris par le temps

bref, j'ai un ensemble de fonctions qui me permettent (via des actXserver) d'ouvrir des fichiers offices, d'écrire dedans ... etc ...
ensemble de fonction qui marchaient jusque là

mais depuis que je suis passé sous windows 64 bits, c'est des soucis
je suppose que c'est le passage à windows 64 bits car j'ai réinstallé la même version d'office (2007) et de matlab (2011b)

bref, avant un objet com sur un document office avait cette gueule là :
Code :
Interface.Microsoft_Excel_9.0_Object_Library._Workbook
(repris sur la doc matlab, correspond pas forcement à mon pb)

maintenant il a cette gueule là :
Code :
Interface.0002096B_0000_0000_C000_000000000046
sic ...
en fait tout le code dont je dispose pour traiter ces objets ne marche plus

est ce que quelqu'un a été confronté à ce problème ? et connais une solution ? (j'aimerais retourner sur un "adressage" comme avant )

Bon, re désolé de poser une question alors que j'ai même pas cherché 5 minutes ... je pars en recherche d'une solution en espérant qu'entre temps quelqu'un qui sait soit passé par là ;-)

Merci
fab
le fab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2012, 16h29   #2
Dut
Responsable MATLAB & Hardware/PC

 
Avatar de Dut
 
Inscription : novembre 2006
Messages : 15 078
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 15 078
Points : 31 134
Points : 31 134
Je ne vois pas très bien pourquoi tu devrais te soucier de ce nommage interne.

Pourrais-tu nous montrer un exemple simple de code qui ne fonctionne plus en nous disant ce qu'il est censé faire ?
__________________
Identification de processeur sous MATLAB (3/3) Identification de processeur sous MATLAB (2/3) Mes contributions MATLAB (R2009a - Windows & Linux)

J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" (Saint Huck)
Dut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2012, 16h44   #3
le fab
Modérateur
 
Avatar de le fab
 
Homme Fabien Grand-Perret
Développeur informatique
Inscription : mars 2005
Messages : 467
Détails du profil
Informations personnelles :
Nom : Homme Fabien Grand-Perret
Âge : 37
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : mars 2005
Messages : 467
Points : 805
Points : 805
bah, c'est assez simple en fait
dans le code de certaines fonctions on passe en parametre une interface qui peut être soit une interface de l'objet document soit une interface d'un sous objet de ce document ...
alors pour départager, on décompose cet objet interface retranscrit en string (fonction class) et on compare avec des opérateurs type strcmp
pas forcement hyper propre, mais bon ... (je suis pas l'auteur de ces fonctions, je les utilise, et je suis incompétent en COM)

bref, j'ai trouvé une parade, par exemple pour savoir si l'objet passé en argument correspond à un document ou à une sélection (dans le document)
j'ai remplacé quelque chose comme
Code :
1
2
3
4
5
6
7
8
9
shCOM = class(hCOM);
idx = strfind(shCOM,'.');
if strcmpi(shCOM(idx(end)+1:end),'Selection')
   ...
elseif strcmpi(shCOM(idx(end)+1:end),'_Document')
   ...
else
   ...
end
par :
Code :
1
2
3
4
5
6
7
if strcmp(class(hCOM),class(hCOM.Parent.Selection))
    ...
elseif  strcmp(class(hCOM),class(hCOM.Document))
    ...
else
    ...
end
ça marche dans mon cas, mais je suis pas sur que ça soit identique dans tous les cas de figures (je maîtrise pas du tout l'arborescence COM) même si sur le papier ca me parait un poil plus propre (et surtout compatible avec des changement de nommage)

mais bon, le plus simple pour moi serait de pouvoir retomber sur le nommage d'origine afin de ne pas aller modifier plusieurs fonctions
le fab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h57.


 
 
 
 
Partenaires

Hébergement Web