Accueil > Forum > > > > comment mette un fichier SQL dans un Tableau ?
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
|
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
|
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 ?
|
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)
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|