IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Manipulation d'un fichier .txt comme Bdd


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Par défaut Manipulation d'un fichier .txt comme Bdd
    Bonjour à tous,

    alors voilà je m'exerce à manier un fichier texte en tant que base de données afin de récupérer des données (paramètres avec valeurs).

    Donc j'ai crée un module à ma manière, contenant le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    ' Found = Emplacement de l'élément recherché et trouvé
    ' Taille = Variable et nombre de caractères qui vont être séléctionnés, APRES la valeur de SelStart
    ' Selstart va déterminer l'emplacement de dépard à partir duquel on va commencer à séléctionner
    ' xmax est le nombre de caractère maximal séléctionnable après Selstart
    ' x est le nombre de caractère du contenu de txt2
     
    Public Sub Ram()
            Dim Found As String
            Dim taille As Integer
            Dim xmax As Long
            Dim x As Long
     
     
    xmax = 100 ' Nombre de caractère maximal séléctionnable après SelStart
     
    Form1.txt2.SelStart = 0
    Form1.txt2.SetFocus
    Form1.txt2.SelLength = 50
    x = Form1.txt2.SelLength
     
    Form1.txt2.SelLength = 0
    Form1.txt.SelLength = 0      ' Permet de réinitialiser
    taille = Form1.txt.SelLength ' les valeurs
     
     
        Found = InStr(Form1.txt.Text, Form1.txt2.Text)
     
        If Found <> 0 Then
            Form1.txt.SetFocus
            Form1.txt.SelStart = Found + 2 + x '***** Position de l'élément trouvé - " =" + élément de txt2 *****
            Form1.txt.SelLength = taille + xmax '***** avec xmax = 100 ****
            SendKeys "^{C}"
            SendKeys "{TAB}"
            SendKeys "{TAB}"
            SendKeys "{TAB}"
            SendKeys "^{V}"
        Else
            MsgBox "erreur"
     
        End If
     
    End Sub

    Donc vous l'avez compris, impossible que cette méthode fonctionne avec la base de données (qui est affichée sous un RichTextBox) non visible, notamment à cause des SendKeys.

    Comment et par quoi pourrais-je remplacer les éléments de mon code qui nuisent à mon objectif qui est d'exectuer cette manip' de manière invisible ?

    Merci d'avance !

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonsoir,


    Il vas falloir être plus clair : qu'appelle tu "manipuler un fichier texte comme une base de donnée" ? pour agir sur un fichier texte tu n'as nullement besoin de simuler des touches du clavier ..

  3. #3
    Membre émérite
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Par défaut
    Bonsoir Ramdoulou,
    De Bbil
    Il vas falloir être plus clair : qu'appelle tu "manipuler un fichier texte comme une base de donnée" ? pour agir sur un fichier texte tu n'as nullement besoin de simuler des touches du clavier
    Il faut être plus explicite car moi non plus je ne comprends rien à ta demande.
    Aucune instruction se rapportant à un fichier texte dans ton code?
    Ou bien tu as oublié de nous en dire plus...


    A+

  4. #4
    Membre éclairé Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Par défaut
    Excusez moi de mon imprecision.

    Alors enfaite, j'ai un text dans lequel il y a d'inscrit :

    "Param1 = 1
    Param2 = 358
    Param3 = 000000

    Fin = Gagné"

    Mon code permet de parcourir justement ce texte pour récupérer les valeurs de Param1, Param2, Param3 et Fin.

    Donc il va chercher le nom du paramètre, sauté le nombre de caractère que contient le nom de ce paramètre, + 3 autres caractères (" = ") pour arriver ensuite à sa valeur.

    Mon code fonctionne que si le RichTextBox (txt) est visible.
    Dans txt2, c'est le nom du paramètre qu'on choisit pour récupérer sa valeur.

  5. #5
    Membre éclairé Avatar de Ramdoulou
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    286
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 286
    Par défaut
    C'est selon vb6 le "setfocus" qui ne peut fonctionner lorsque le RichTextBox est invisible.
    Et forcemment les SendKeys aussi...(les TAB me permettent d'aller d'un composant de l'interface à celui désiré)

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Pour lire un fichier texte il ne faut pas passer par un contrôle RichTextBox ....

    tu peu utiliser FileSystemOBject pour cela, rajoute à ton projet une référence à "Microsoft Scripting Runtime"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim oFso As New FileSystemObject
    Dim stParam As String
    Dim stFichier As String
     
    stFichier = "d:\tmp\param.txt" 'Fichier à lire
     
    If oFso.FileExists(stFichier) Then
        stParam = oFso.GetFile(stFichier).OpenAsTextStream.ReadAll
        MsgBox stParam
    Else
      MsgBox "Fichier inexistant " & stFichier
      Exit Sub
    End If
    ensuite les fonctions de manipulations de chaines de caractères te permettent d'extraire ton paramètre

    http://vb.developpez.com/cours/?page=initiation#chaines

    par exemple en utilisant les fonctions Instr et Mid :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Dim iDeb As Integer
    Dim iFin As Integer
     
    'Recherche la position de "Param3 ="
    iDeb = InStr(1, stParam, "Param3 =", vbTextCompare)
    If iDeb = 0 Then
        MsgBox "Erreur Parma3 introuvable"
        Exit Sub
    End If
    ' Rajoute à iDeb la longueur de la chaine "Param3 ="
    iDeb = iDeb + Len("Param3 =")
    'Recherche fin de la ligne  "Param3 ="
    iFin = InStr(iDeb, stParam, vbCr, vbTextCompare)
    stParam3 = Mid(stParam, iDeb, iFin - iDeb)
     
    'Resultat intermédiaire pour info :
    MsgBox ">" & stParam3 & "<"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SP-2007] lire une liste de fichier infopath comme bdd
    Par benneb dans le forum SharePoint
    Réponses: 3
    Dernier message: 23/11/2009, 08h52
  2. lire un fichier .txt comme une matrice
    Par Medoou dans le forum MATLAB
    Réponses: 9
    Dernier message: 27/07/2009, 09h40
  3. [MySQL] Requetes multiple à partir d'un fichier txt, comme dans phpmyadmin
    Par beejeridou dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/05/2009, 17h03
  4. Utiliser des fichiers XML comme "bdd"
    Par Shirraz dans le forum XQUERY/SGBD
    Réponses: 6
    Dernier message: 28/04/2009, 17h37
  5. [XI] Utilisation d'un fichier txt comme source de données
    Par captainamerica75 dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 14/06/2007, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo