cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
28 mars 2015 à 14:34
Whismeril
Messages postés18641Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 3 octobre 2023
-
28 mars 2015 à 18:20
Bonjour le forum,
Toujours dans la translation d'un script vbs en .Net, je rencontre un problème sur les collections.
Le script ci-dessous ne me semble pas optimisé.
' Déclaration des variables Dim MyList As New List(Of String) Dim MyLine As New List(Of String) Dim parts() As String Dim test() As String
' Récupération des lignes du fichier et création de la collection Try MyList = System.IO.File.ReadAllLines(Form1.PathTeam & MyCustomer & Form1.PathPDP & Form1.FileProdJobVTOM, _ System.Text.Encoding.Default).ToList For Each items As String In MyList parts = items.Split(New Char() {Convert.ToChar(10)}, StringSplitOptions.RemoveEmptyEntries) 'Me.RichTextBox1.AppendText(Environment.NewLine & parts(0)) test = items.Split(New Char() {Convert.ToChar(59)}, StringSplitOptions.RemoveEmptyEntries) For Each list As String In test 'Me.RichTextBox1.AppendText(Environment.NewLine & list.ToString) ' ICI il y aura insertion des élements dans un fichier Excel via OleDbDataAdapter Next Next Catch ex As Exception Me.RichTextBox1.AppendText(Environment.NewLine & _ "Erreur traitement du fichier vtom_plan_prod_app" & Environment.NewLine & ex.Message) Exit Sub End Try
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 28 mars 2015 à 15:22
Bonjour Whismeril,
Merci de ton intérêt !!!
Le fichier texte est un export de VTOM de type csv (;)
1ère ligne (à omettre) :
App Clef unique;Produit;Environnement;Application;Serveur;Heure Debut;Heure Fin;App Predecesseur;App Successeur;Ressource(s);Commentaire;Mode Execution;Heure;;;
2ème ligne :
BASCULE_EXPLOIT;VTOM;exploitation;BASCULE_EXPLOIT;localhost;14:00:00;23:59:59;;;;Bascule de la date
Dans le script, j'ai mis MyList.RemoveAt(0) pour ne pas prendre en compte la 1ère ligne du fichier texte (header).
Si tu veux "sauter" un n enregistrements en début de liste, plutôt que RemoveAt, utilise Skip.
Ensuite ton cas plus précisément.
VB.Net est un langage (tout) objet, la difficulté quand on passe de VB6 ou VBS à VB.Net c'est de changer de philosophie mais pas de "nom" ni "présentation générale".
C'est pourquoi je conseille toujours de passer à C# plutôt que VB.Net.
Donc tu devrais utiliser un objet métier, et chaque ligne de ton fichier est une instance de cet objet.
Tu écris une classe, chaque propriétés correspond à une colonne de ton csv.
Dans la méthode New (le constructeur), tu mets en paramètres la ligne entière.
C'est ici que tu pourras faire un split, garder au besoin le tableau dans un variable privée et répartir les données dans les différentes propriétés.
Par la suite si tu as besoin de l'heure de début du 50 eme enregistrement, se sera
Pour l'export vers excel il y a possibilité de faire une page xml, voir ce tuto https://msdn.microsoft.com/fr-FR/vstudio/Video/bb927708, la vidéo n'est plus regardable en ligne mais tu peux toujours la télécharger. Pour le coup en VB c'est mieux, je n'ai pas encore trouvé comment faire pareil en C#.
Modérer m'amène à intervenir dans de nombreux posts, mais les seuls langages que je connaisses sont le C# et un peu de VB. Pour vos codes pensez à la coloration.
Réponse trouvée ->Question Résolue
Vous n’avez pas trouvé la réponse que vous recherchez ?