Recuperer une structure tableau d'un fichier en c à un fichier en vbscript

Résolu
vi87 Messages postés 7 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 6 octobre 2008 - 6 oct. 2008 à 11:11
vi87 Messages postés 7 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 6 octobre 2008 - 6 oct. 2008 à 16:46
Bonjour,

Je crée un script en c qui automatise des process. Je conserve mes valeurs dans un tableau statique de type structure que je declare comme cela :
    struct  Recup_Data {
        char *label;
        char *state;
        char *comments;
        char *laps;
        char *contact;
    } ;

    typedef struct Recup_Data RD;

    RD  tab_data[300];

mon tableau se remplit bien , pas de soucis. A la fin de mon script, je veux sauver le tableau dans un fichier excel, j'appelle dc un fichier en vb que j'appelle comme ca :

system("wscript Creation_bulletin_xls.vbs  tab_data.state tab_data.contact tab_data.laps tab_data.comments")

Le fichier vb s'ouvre bien mais je n'arrive pas a recuperer ma structure tableau, je ne connais pas trop (voire pas du tout) le vb et j'ai pas trop d'idée au comment faire :

'On Error Resume Next

Set args = WScript.Arguments
num = args.Count

WScript.Arguments(0).echo
WScript.Arguments(1).echo
WScript.Arguments(2).echo
WScript.Arguments(3).echo

Dim oExcel
Set oExcel = CreateObject("excel.application")

oExcel.Visible = True
oExcel.DisplayAlerts = False

'Ouverture du fichier excel
Set objWorkbook = oExcel.Workbooks.Open ("c:\Bulletins.xls")
Set objWorksheet = objWorkbook.Worksheets(1)

'Fill in
oExcel.ActiveSheet.Cells(7, 3)=args(0).state
oExcel.ActiveSheet.Cells(7, 2)="OK"
oExcel.ActiveSheet.Cells(8, 2)="OK"
objWorkbook.SaveAs ("c:\Bulletin_test.xls")
oExcel.Quit
---
Je ne sais pas si je dois faire des sous programmes, comment dois je recuperer le tableau enfin là je suis bien perdue.
Donc si quelqu'un a une idee il/elle est le/la bienvenu(e).
Merci d'avance,

Vi.

In tartiflette we trust.

8 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 oct. 2008 à 15:47
Si les adresses de ta structure restent valides le temps du prog, alors pas de probleme pour enregistrer les données dans le fichier et les relire depuis du VBS.

Pour info, strtok() introduit une variable partagée dans ton prog, ce peut être une source ultérieure de bug très difficile à déceler si tu passes ton prog plus tard en multithread. Il faut lui préférer strstr() qui ne souffre pas de cette anomalie.

ciao...
BruNews, MVP VC++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 oct. 2008 à 14:01
"Je conserve mes valeurs ..."
Je ne te vois conserver que des adresses.

ciao...
BruNews, MVP VC++
0
vi87 Messages postés 7 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 6 octobre 2008
6 oct. 2008 à 14:59
Je remplis mon tableau comme ca :

    token=(char*)strtok(lr_eval_string("{callBaoRef2Res}"),separators);
    tab_data[cpt].state=(char *)strtok(NULL, separators);

Tu dis que le soucis est au niveau de la def de la structure, utiliser char state[255] au lieu de char *state? Dans ce cas là le strtok ne fonctionne plus, si? Ce qui est bizarre c'est que quand je fais un print de mon tableau j'ai bien les valeurs que je recupère.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 oct. 2008 à 15:14
strtock() et autres fonctions ancestrales pour handicapés profonds du C ne retournent toujours que des adresses, tu n'as donc tes données dispos QUE le temps de ton prog.
Si tu enregistres des adresses, elles ne seront plus valables dans une instance ultérieure du prog.
Ajoutons que passer des adresses à un script interprété (VB ici), c'est totalement illusoire.

Je te suggère de te plonger dans un bouquin de C avant d'espérer faire de l'échange de données entre différents langages.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vi87 Messages postés 7 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 6 octobre 2008
6 oct. 2008 à 15:21
ok pas la peine de prendre les gens pour des cons...j'ai trouvé une autre solution en utilisant mes fonctions d'handicapés profonds du C. Mais merci qd mm.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 oct. 2008 à 15:23
Te fache pas, j'ai l'habitude très clair en disant les choses, voila tout.

ciao...
BruNews, MVP VC++
0
vi87 Messages postés 7 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 6 octobre 2008
6 oct. 2008 à 15:28
Jsuis pas fachée...enfin un peu qd mm. Je t'expose ma solution, je prepare le casque, la combi et tout. Je conserve mes valeurs dans un fichier texte qu'apres j'ouvre dans un fichier vbs pour remplir le fichier excel. Y a t'il plus simple? Enfin peux tu me donner une explication par rapport à mes lignes de codes pr faire marcher ce que j'ai fait.
0
vi87 Messages postés 7 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 6 octobre 2008
6 oct. 2008 à 16:46
Ok merci pr l'info je vais modif ca tout de suite
0
Rejoignez-nous