begin process at 2012 02 14 20:30:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Bases de données

 > 

comment mette un fichier SQL dans un Tableau ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comment mette un fichier SQL dans un Tableau ?

mardi 24 janvier 2006 à 13:46:57 | comment mette un fichier SQL dans un Tableau ?

davidmaillard

Bonjour

Voila j'ai un fichier Map.sql et je voudrais mettre son contenu dans Tableau.

Le fichier se presente comme sa :

INSERT INTO `x_world` VALUES (3579,250,250,3,29124,'Residence à Rome',9347,'hezekiel',492,'Tget',117);

Avec une ligne comme sa je n'ai pas de soucis tous ce fait bien a chaque virgule il crée une ligne dans le Tableau
 Ce qui donne
INSERT INTO `x_world` VALUES (3579
250
250
3
29124
'Residence à Rome'
9347
'hezekiel'
492
'Tget'
117);

Par contre j'ai un soucis avec une ligne comme ca
INSERT INTO `x_world` VALUES (38103,-42,182,1,27090,'Zaak,shire',27093,'Zaak',0,'dff',335);

Parce qu'il me coupe en deux cette partie 'Zaak,shire' parce qu'il y a une virgule dans le nom
Il me fait les ligne de gaucheet il me faudrais celle de droite

INSERT INTO `x_world` VALUES (38103       INSERT INTO `x_world` VALUES (38103      
-42                                                                     -42
182                                                                     182
1                                                                          1
27090                                                                 27090
'Zaak                                                                  'Zaak,shire'
shire'                                                                   27093  
27093                                                                  'Zaak'
'Zaak'                                                                  0
0                                                                        'dff'
'dff'                                                                     335);
335);

voici le code que j'utilise  :
Dim Tableau() As String
Dim Nbr
Nbr = 1
Open App.Path & "\txt\map.sql" For Input As #1
Do While Not EOF(1)
Input #1, machaîne
ReDim Preserve Tableau(Nbr)
Tableau(Nbr) = machaîne
Nbr = Nbr + 1

Loop
Close #1

Si quelqu'un pouvais m'aider ce serais simpas

Merci

mardi 24 janvier 2006 à 14:06:22 | Re : comment mette un fichier SQL dans un Tableau ?

econs

Administrateur CodeS-SourceS
Salut,



Il faut parcourir la chaine de caractères de départ, caractère par caractère.
Dès que tu rencontres une apostrophe, tu considères que tu es dans une chaine de caractère. Dès que tu en rencontres une autre, tu considères que tu es sorti de ta chaine de caractères.
Il doit toujours y avoir un nombre pair d'apostrophes dans ta syntaxe SQL.

Dim isInsideString As Boolean
Dim bModif As Boolean

isInsideString=False
bModif = False
sChaine ="INSERT INTO `x_world` VALUES (38103,-42,182,1,27090,'Zaak,shire',27093,'Zaak',0,'dff',335);"
For ll=1 to Len(sChaine)
    sTemp = Mid$(sChaine,ll,1)
    Select Case sTemp
       Case "'":
          isInsideString = Not(isInsideString)
       Case ",":
          If isInsideString Then
             '   On remplace cette virgule par autre chose. Par ex : "@"
             sChaine = Left$(sChaine,ll-1) & "@" & Right$(sChaine,Len(sChaine)-ll)
             bModif = True
          End If
    End Select
Next ll

A la sortie, ta chaine vaut :
INSERT INTO `x_world` VALUES (38103,-42,182,1,27090,'Zaak@shire',27093,'Zaak',0,'dff',335);

Tu fais le split qui va bien avec la virgule.
Tu obtiens alors le tableau suivant :
INSERT INTO `x_world` VALUES (38103
-42
182
1
27090
'Zaak@shire'
27093
'Zaak'
0
'df'
335);

Si bModif = True, alors il y a au moins un champ qui a été transformé. Y'a plus qu'à transformer le @ en virgule.


Tu peux utiliser autre chose que l'@ si tes champs sont censés en contenir ... ( T'as le choix : # , % , µ , § , ? , ... )



Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
mardi 24 janvier 2006 à 15:54:16 | Re : comment mette un fichier SQL dans un Tableau ?

davidmaillard

Je te remercie de ta reponce

Pourrait tu me dire comment je peut faire pour faire un Split avec deux choix de separateur

Car je doit slipter la virgule mais aussi le point virgule

Merci

mardi 24 janvier 2006 à 16:45:43 | Re : comment mette un fichier SQL dans un Tableau ?

econs

Administrateur CodeS-SourceS
Réponse acceptée !

Split ne prend qu'un seul séparateur pour découper une chaine. Si tu en veux deux, il faut créer une fonction perso.



Private Function monSplit(sString As String, sSep1 As String, sSep2 As String) As String()
Dim t() As String
Dim ll As Long
Dim lOldIndex As Long
Dim newWord As String
Dim maxIndex As Long
Dim sTemp As String

    maxIndex = 0
    ReDim t(0)
    For ll = 1 To Len(sString)
        sTemp = Mid$(sString, ll, 1)
        Select Case sTemp
            Case sSep1, sSep2:
                newWord = Mid$(sString, lOldIndex + 1, ll - lOldIndex - 1)
                lOldIndex = ll
                maxIndex = maxIndex + 1
                ReDim Preserve t(maxIndex)
                t(maxIndex) = newWord
        End Select
    Next ll
    If ll = Len(sString) + 1 Then
        newWord = Mid$(sString, lOldIndex + 1, ll - lOldIndex - 1)
        lOldIndex = ll
        maxIndex = maxIndex + 1
        ReDim Preserve t(maxIndex)
        t(maxIndex) = newWord
    End If
   
monSplit = t
End Function



'   Procedure pour tester le résultat de monSplit :

Private Sub toto()
Dim tablo() As String
Dim s As String

    s = "qsdfqds,fdsfdsf;dsf,dsfq;sdfq;sdfsdf,ze"
    tablo = monSplit(s, ",", ";")
   
    For ll = LBound(tablo) To UBound(tablo)
        sTemp = sTemp & tablo(ll) & " "
    Next ll
    MsgBox sTemp
   
End Sub




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
mardi 24 janvier 2006 à 17:58:23 | Re : comment mette un fichier SQL dans un Tableau ?

davidmaillard

Réponse acceptée !

Je te remercie



Cette discussion est classée dans : tableau, into, values, world, zaak


Répondre à ce message

Sujets en rapport avec ce message

Comment insérer un tableau ..... [ par Cassiopé ] Bonjour,Je suis présentement un cours en VB et j'ai fait un jeu de mémoire, il est fonctionnel à deux joueur mais je voudrais que le deuxième joueur s créer un tableau [ par maryem ] salut! je suis débutante en Vb et1- je voudrais savoir comment créer un tableau pour y stocker des valeurs constantes2- je voudrais savoir comment fa Comment trier un fichier ASCII ?? [ par Cesar ] Salut,Je voudrai trier un fichier ecrit par WRITE #1,xx,xx,xx,xx,xx,etc...Il contiens a peux pres 500 ligne sur 10 colonnes.Sinon, le moyen de trier u tableau de string [ par tobby ] qq sait comment declarer un tableau de string?du type array(20) of string,pour un tableau de 20 chaines de caracteres? graphique dynamique [ par tery ] salut a tous.j essaie de faire un genre de graphique dynamique mais je ne sais pas comment m y prendre.En gros, je pioche des valeurs contenu dans un Passage à une dll d'un tableau de chaines de caracteres [ par khelif ] J ai une function en C qui recupere un tableau de pointeurs sur chaine de caracteres (nom d'un fichier)En Vb je desire appeller cette fonction avectab Passage d'un tableau de byte à une fonction encapsulé dans un ACtiveX Dll [ par novik ] J'aimerai pouvoir passer un tableau de Byte a ma fonction (Activex Dll)lors de l'appel j'ai une erreur Type Mismatch.Or lorsque j'appelle cette foncti Comment faire un tableau [ par nox ] SalutJe souhaiterai faire un tableau qui se remplirai en fonction de selection faite dans un textbox par l'utilisateur et ensuite pouvoir l'afficher.V ReDim Preserve plante sur un tableau à dimension (VB4) [ par NoJhan ] J'essaie de changer la derniére dimension d'un tableau avec l'instruction : Redim Preserve Tableau(n,n,t)


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales