Macro Attachmate / Extraction données en fichier texte

ken Hutchinson Messages postés 7 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 8 décembre 2006 - 6 déc. 2006 à 15:57
ken Hutchinson Messages postés 7 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 8 décembre 2006 - 8 déc. 2006 à 08:00
Bonjour,

J'espère être dans le bon endroit...

j'utilise une appli Attachmate pour avoir des données chiffrées. On tape une ligne de code et on obtient un résultat. Je veux copier ce résultat et l'enregistrer sour forme de fichier TXT en créant un nouveau fichier txt. Apparemment on pourrait passer par le presse papier de windows. Mais je galère pas mal...

Voici un exemple :

' Global variable declarations
Global g_HostSettleTime%

Sub Main()
'--------------------------------------------------------------------------------
' Get the main system object
    Dim Sessions As Object
    Dim System As Object
    Set System = CreateObject("EXTRA.System")    ' Gets the system object
    If (System is Nothing) Then
        Msgbox "Could not create the EXTRA System object.  Stopping macro playback."
        STOP
    End If
    Set Sessions = System.Sessions

    If (Sessions is Nothing) Then
        Msgbox "Could not create the Sessions collection object.  Stopping macro playback."
        STOP
    End If
'--------------------------------------------------------------------------------
' Set the default wait timeout value
    g_HostSettleTime = 3000        ' milliseconds

    OldSystemTimeout& = System.TimeoutValue
    If (g_HostSettleTime > OldSystemTimeout) Then
        System.TimeoutValue = g_HostSettleTime
    End If

' Get the necessary Session Object
    Dim Sess0 As Object
    Set Sess0 = System.ActiveSession
    If (Sess0 is Nothing) Then
        Msgbox "Could not create the Session object.  Stopping macro playback."
        STOP
    End If
    If Not Sess0.Visible Then Sess0.Visible = TRUE
    Sess0.Screen.WaitHostQuiet(g_HostSettleTime)
   
' This section of code contains the recorded events
    Sess0.Screen.Sendkeys("LA LIGNE DE CODE QUE JE TAPE<Enter>")
    Sess0.Screen.WaitHostQuiet(g_HostSettleTime)

'LA REPONSE ARRIVE ICI ET JE LA COPIE

    Sess0.Screen.Copy

    System.TimeoutValue = OldSystemTimeout
End Sub

-------------------------------------------------------

et à ce moment là je voudrais que ça m'enregistre la réponse dans un fichier qui s'appellerait par exemple C:/resultat.txt

Quelqu'un pourrait il m'aider ?

merci de votre aide en tout cas...

13 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
6 déc. 2006 à 16:10
Est ce que tu mets la réponse dans une variable?

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
ken Hutchinson Messages postés 7 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 8 décembre 2006
6 déc. 2006 à 16:15
Oula mais je ne sais pas ça....

en fait je valide la ligne de code, ça efface l'écran, et une réponse arrive, je veux la copier et enregistrer en fichier txt sur mon disque... après je remettrais ça en forme dans Excel.
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
6 déc. 2006 à 16:28
Salut au fait! Ton screen.Copy c'est un imprime écran? T'as réponse elle d'ou et sous quelle forme? Est ce que tu peux intercepter cette réponse et la mettre dans une variable? Comment tu connais la réponse? C'est un peu flou!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
6 déc. 2006 à 16:31
Sinon pour ce qui est du fichier texte pour le créer et écrire dedans:

Open "C:\resultat.txt" For Output As #1

Write #1, LaReponse

Close #1

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0

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

Posez votre question
ken Hutchinson Messages postés 7 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 8 décembre 2006
6 déc. 2006 à 16:43
Ok...

Le sreen.copy c'est quand je surligne tout l'écran avec ma souris et que je clique droit "COPIER".

La réponse vient d'un serveur et je ne peux pas l'intercepter. Elle apparait simplement à) l'écran et je peux la copier/coller comme je veux, intégralement ou en partie.

c'est un peu comme si tu tapais des lignes de code dans le notepad, et qu'en faisant ENTREE tu avais la réponse dans le notepad sans tableau ni rien

Tu as déjà vu les écrans d'agence de voyages ? ben c'est pareil..
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
6 déc. 2006 à 16:48
Essaye ça mais j'ai des doutes (mais si tu copies du texte peut être que!)

Open "C:\resultat.txt" For Output As #1

Write #1, Sess0.Screen.Past

Close #1

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
6 déc. 2006 à 16:49
Open "C:\resultat.txt" For Output As #1

Write #1, Sess0.Screen.Paste

Close #1

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
ken Hutchinson Messages postés 7 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 8 décembre 2006
6 déc. 2006 à 16:52
Et pour écrire ce qu'il y a dans le buffer quand on copie en cliquant droit sur la réponse ?

car quand je mets ton code, ça créé le fichier mais il est vide... comment écrire la réponse qui est dans le presse papier ?
0
ken Hutchinson Messages postés 7 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 8 décembre 2006
6 déc. 2006 à 17:01
et non ça ne marche pas. le fichier reste vide... mince... je sens qu'on approche pourtant !!

en fait faudrait écrire dans le fichier ce qu'il y a en attente dans la memoire du pc quand on fait copie...

paste.buffer ou un truc comme ça ?
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
6 déc. 2006 à 17:02
Open "C:\resultat.txt" For Output As #1

Write #1, Clipboard.
GetText

Close #1

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
6 déc. 2006 à 17:03
Essaye la derniere solution, c'est un truc dans ce style, sinon là je pars du taf je verai ça demain! bon courage!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
ken Hutchinson Messages postés 7 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 8 décembre 2006
7 déc. 2006 à 08:22
Salut,

Bon la macro colle bien des données dans le fichier qu'elle créé et ce sont les données du presse papier de windows. En clair elle ne copie pas l'écran dans le presse papier. Donc ma ligne de code Sess0.screen.copy ne copie pas l'écran au bon endroit ou ne le copie pas du tout. Il faudrait que je connaisse le code pour copier mon écran vers le presse papier...
0
ken Hutchinson Messages postés 7 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 8 décembre 2006
8 déc. 2006 à 08:00
Bon en fait il fallait sélectionner... avant de copier et de coller... tout bete...

en tout cas merci de votre aide !!!
0
Rejoignez-nous