Récupérer le texte entre ; d'un fichier texte
Fermé
sommaille
Messages postés
63
Date d'inscription
mardi 21 décembre 2010
Statut
Membre
Dernière intervention
16 avril 2016
-
12 avril 2016 à 19:43
Utilisateur anonyme - 13 avril 2016 à 07:20
Utilisateur anonyme - 13 avril 2016 à 07:20
A voir également:
- Récupérer le texte entre ; d'un fichier texte
- Fichier rar - Guide
- Excel cellule couleur si condition texte - Guide
- Comment ouvrir un fichier epub ? - Guide
- Transcription audio en texte word gratuit - Guide
- Comment réduire la taille d'un fichier - Guide
2 réponses
Utilisateur anonyme
Modifié par Whismeril le 12/04/2016 à 20:23
Modifié par Whismeril le 12/04/2016 à 20:23
Bonjour
tout d'abord, je te conseille d'utiliser Visual Studio Commuty plutôt que Visual Studio Express, les 2 sont gratuits et Community est plus complet.
Commence par écrire une classe dont chaque champ correspond à une "colonne" de ton csv.
Il faut maintenant savoir initialiser une instance de cette classe avec les données d'une ligne.
J'ai tendance à "prôner" qu'une classe doit savoir se deserialisée elle -même.
On peut utiliser un constructeur ou une méthode de classe.
Je te montre avec un constructeur
On peut même écrire une propriété qui retournera le corps du message.
Maintenant que nous savons faire l'import d'une ligne dans une instance d'un objet bien pratique, il faut lire le fichier et créer une collection d'instances de notre classe Donnees
Cette fois, je te propose une méthode de classe.
On va faire une requête Linq sur File.ReadAllLines, cela nécessite l'import de System.IO
Il ne te reste plus, de l'endroit ou tu veux lire ce fichier qu'à faire
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
tout d'abord, je te conseille d'utiliser Visual Studio Commuty plutôt que Visual Studio Express, les 2 sont gratuits et Community est plus complet.
Commence par écrire une classe dont chaque champ correspond à une "colonne" de ton csv.
Public Class Donnees Public Property Nom() As String Public Property Email() As String Public Property Lieu() As String End Class
Il faut maintenant savoir initialiser une instance de cette classe avec les données d'une ligne.
J'ai tendance à "prôner" qu'une classe doit savoir se deserialisée elle -même.
On peut utiliser un constructeur ou une méthode de classe.
Je te montre avec un constructeur
Public Sub New(Ligne As String) Dim donnees As String() = Ligne.Split(";"c) 'split découpe un string en fonction d'un ou plusieur séparateurs Nom = donnees(0) Email = donnees(1) Lieu = donnees(2) End Sub
On peut même écrire une propriété qui retournera le corps du message.
Public ReadOnly Property Corps() As String Get Return String.Format("Bonjour {0}, de {1}", Nom, Lieu) End Get End Property
Maintenant que nous savons faire l'import d'une ligne dans une instance d'un objet bien pratique, il faut lire le fichier et créer une collection d'instances de notre classe Donnees
Cette fois, je te propose une méthode de classe.
On va faire une requête Linq sur File.ReadAllLines, cela nécessite l'import de System.IO
Public Shared Function LireFichier(ByVal Filename As String) As List(Of Donnees) Return ( From ligne In File.ReadAllLines(Filename) Select New Donnees(ligne)).ToList() End Function
Il ne te reste plus, de l'endroit ou tu veux lire ce fichier qu'à faire
Dim mesDonnees As List(Of Donnees) = Donnees.LireFichier(Chemin)
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
12 avril 2016 à 19:57
12 avril 2016 à 19:57
Bonjour,
en VB.Net voir ceci:
http://vb.net-informations.com/string/vb.net_String_Split.htm
en VB.Net voir ceci:
http://vb.net-informations.com/string/vb.net_String_Split.htm
sommaille
Messages postés
63
Date d'inscription
mardi 21 décembre 2010
Statut
Membre
Dernière intervention
16 avril 2016
12 avril 2016 à 20:01
12 avril 2016 à 20:01
Merci pour 'string split', c'est le mot clé que je recherchais. Un grand merci, bonne soirée à vous.
Amicalement,
Amicalement,
12 avril 2016 à 23:11
Premièrement effectivement j'utilise bel et bien VStudio community :)
Deuxièmement, effectivement je cherche à faire cela sous forme structuré csv mais avec intégration de variable au cas par cas :
Mettre toto dans la variable locale Nom
Mettre toto@gmail.com dans la var locale Email
Mettre totoVille dans la var local Ville
Remplacer %nom, %email et %ville par les champs respectifs dans un textbox multiline; envoyer le mail à 'Email' avec les champs % modifiés, ensuite recommencer, pour chaque ligne du fichier.
En clair : Envoyer un sample identique avec 3 variables qui diffèrent : Nom, Email et Ville, permettant d'envoyer un email avec ces champs personnalisés et un texte qui reste identique.
En tapant le code au dessus de Public class Accueil :
Ainsi que celui ci dessous dans Public class Accueil :
j'obtiens sur une erreur sur 'ligne' avec comme explications : Too many arguments to 'Public Sub New()'
Quant à Nom, Email et Lieu, ils sont dit comme non défini, ce qui est le cas, je dois les définir en tant que Public au préalable, en tant que string ?
Merci de votre soutien,
Amicalement,
13 avril 2016 à 07:20
je t'ai écrit de créer une classe, pas d'essayer de l'imbriquer dans une classe existante.
Je te conseille de suivre ce cours https://plasserre.developpez.com/cours/vb-net/ avant de te remettre à ton projet.