Besoin de VB pour Script sur SSIS 2k5
Bonsoir,
Je viens faire un tour sur cette page car j'avoue être un peu paumé après avoir cherché dans les tutoriels et autres docs sur VB.:oops:
Je construis un datawarehouse avec SSIS 2k5 à partir de fichiers plats, je suis en train de bloquer sur un problème qui à mon avis nécessite un Script VB dont je ne suis pas un spécialiste, loin de là !:mur:
Je cherche à récupérer le serveur et la datasource sur ce type d'enregistrement
Code:
1 2 3
|
09-29-09 00:31:47 INFO broker.operation - Java server "http://sgsi2ksifwbp4/exploit-mag-abrasifs/" contacted about server start on computer SGSI2KSIFAPP3 for datasource 07-V9-EXPLOIT-MAG-ABRASIFS.
09-29-09 00:32:25 INFO broker.operation - Server started on computer SGSI2KSIFAPP7 for datasource "16-V9-EXPLOIT-MAG-SGBDUK". |
Les lignes d'enregistrements comme les données dans ces lignes ne sont pas de même longueur (comme la datasource par exemple)
Je sais qu'il existe des fonctions de recherche de chaîne de caractères (pour chercher "computer" ou "server" ou "datasource" et récupérer les valeurs) mais je ne sais pas les utiliser.
Et surtout comment incrémenter pour passer à la ligne suivante vu que
_ je ne connais pas le nombre de caractères dans chaque ligne
_ je ne connais pas le nombre exact de lignes (des milliers dans le fichier réel)
Faut-il que je commence ainsi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
Dim indice ligne, indice caractère
As Integer
Dim Ligne_Broker as String 'Ligne en cours à examiner
N=250 'dans le cas optimiste où il ny aurait pas plus de 250 caractères dans la ligne.
Dim T(N) As String 'élément de 0 à 250
For i=0 To N-1
'...
'là je ne sais plus quoi faire exactement CHERCHER la chaîne et RAMENER la valeur
'...
Next i
'faut-il passer par ce genre de boucle infernale ? |
:scarymov:
Si quelqu'un a une idée à me proposer je lui souhaite d'avance un très JOYEUX NOEL
:ange:
Besoin de VB pour Script sur SSIS 2k5 : La revanche des sites
Bonjour,
Je viens de trouver une nouvelle piste à force de chercher sur différents sites.:ccool:
J'ai trouvé :
Code:
1 2 3 4 5 6 7
|
chaine = "bonjour tout le monde"
mot_cherche = "tout"
if instr(1, chaine, mot_cherche) > 0 then
wscript.echo "mot trouvé dans la chaîne"
end if |
Ca ressemble à ce que je voudrais faire dans mon VB.Script.:D
_ chaine c'est dans mon cas le contenu total ou partiel de ma ligne
_ mot_cherche ce serait mon mot-clé "computer" ou "datasource"
Ensuite à la place de wscript.echo, il faut que j'exécute certainement un autre instr() pour récupérer ce qui suit, c'est-à-dire la valeur du serveur ou de la datasource.
Je pense que je ne suis pas loin du résultat.
Comment faire pour qu'à la place de "bonjour tout le monde", chaine fasse référence à la ligne courante de mon fichier plat extrait en entrée de SSIS (est-ce un genre de Me.qqchose comme dans ACCESS ?) :question:?
Ensuite, je dois indexer mes lignes pour lire mon fichier plat de A à Z jusqu'à fin_de_fichier, ça se programme comment en VB ?:question:
Merci et bonne année 2010