davidmaillard
Messages postés20Date d'inscriptiondimanche 4 janvier 2004StatutMembreDernière intervention28 juin 2011
-
24 janv. 2006 à 13:46
davidmaillard
Messages postés20Date d'inscriptiondimanche 4 janvier 2004StatutMembreDernière intervention28 juin 2011
-
24 janv. 2006 à 17:58
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
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
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 24 janv. 2006 à 14:06
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 : "@"