analyser le texte de fichier et de supprimer les virgules à l'intérieur de guillemets doubles
J'ai un fichier texte qui doit être converti en un fichier csv.
Mon plan est de:
- analyser le fichier ligne par ligne
- de rechercher et de remplacer les virgules à l'intérieur de guillemets doubles avec un espace
- puis supprimez tous les guillemets
- ajouter la ligne d'un nouveau fichier csv
Question:
J'ai besoin d'une fonction qui reconnaissent la virgule à l'intérieur de guillemets doubles et de le remplacer.
Voici un exemple de ligne:
"MRS Brown","4611 BEAUMONT ST"," ","GUERRIER EXÉCUTER, PA"
Y aurait-il des guillemets à l'intérieur de la cité de cordes? Si oui, comment vont-ils être sauvés? (E. g.
Oui, il peut y avoir des guillemets à l'intérieur des guillemets.
J'ai essayé les expressions régulières et de les remplacer.
.NET a un bon soutien pour cela, utilisez le TextFieldParser classe. Il vous donne un string[], vous pouvez simplement utiliser des chaînes de caractères.Remplacer pour frapper les virgules.
"quotes \"inside\" other quotes"
ou "quotes ""inside"" other quotes"
?)Oui, il peut y avoir des guillemets à l'intérieur des guillemets.
J'ai essayé les expressions régulières et de les remplacer.
.NET a un bon soutien pour cela, utilisez le TextFieldParser classe. Il vous donne un string[], vous pouvez simplement utiliser des chaînes de caractères.Remplacer pour frapper les virgules.
OriginalL'auteur Internet Engineer | 2012-03-27
Vous devez vous connecter pour publier un commentaire.
Votre fichier semble être déjà dans un CSV plainte format. Tout bon CSV lecteur sera en mesure de le lire correctement.
Si votre problème est juste en train de lire les valeurs des champs correctement, alors vous avez besoin pour lire de la bonne façon.
Ici est une façon de le faire:
EDIT:
Je viens de remarquer que la question a été déposée en vertu de C#, VB.NET-2010.
Ici, c'est le VB.NET version, juste au cas où vous êtes le codage en VB.
OriginalL'auteur Pradeep Kumar
Voici une fonction simple qui permet de supprimer les virgules inséré entre deux guillemets dans une chaîne de caractères. Vous pouvez passer une longue chaîne qui a plusieurs occurrences de "abc,123",10/13/12,"description"...etc. Il va également supprimer les guillemets.
OriginalL'auteur The Glockster
Grâce à Baz, Le Glockster Réponse en VB, j'ai juste converti en C# et sa fonctionne bien. Avec ce code, vous n'avez pas besoin d'un tiers de l'analyseur.
OriginalL'auteur Hasan Abrar
Je ne comprends pas votre question avant. Maintenant, je suis sûr que je l'ai eu droit:
OriginalL'auteur Michal B.
OriginalL'auteur L.B
Il ne sonne pas comme si ce que vous décrivez va finir comme un fichier csv mais pour répondre à votre question, je voudrais faire cela.
Vous devez d'abord obtenir le fichier texte dans certains utilisable code qui peut être bouclé comme ceci:
Ensuite une boucle sur la liste et à l'aide d'une simple boucle foreach et exécuter le remplacer sur la liste comme ceci:
Après vous faites cela, alors vous devez créer un fichier csv ligne par ligne. Je voudrais utiliser un StringBuilder de nouveau, et puis il suffit de faire un sb.AppendLine(x) pour créer la Chaîne qui deviendra le fichier texte puis l'écrire sur le disque en utilisant quelque chose comme ça.
OriginalL'auteur RJ.
Cela a fonctionné pour moi. Espérons que cela aide quelqu'un d'autre.
OriginalL'auteur andy
Je voudrais tout faire avant de vous commencer à traiter ligne par ligne.
Aussi, découvrez CsvHelper. Il est facile et rapide. Il suffit de prendre vos résultats et de les jeter dans un TextReader et puis la passer à CvsReader.
Ici est votre virgule (entre guillemets) et puis après le guillemet double strip-teaseuse.
OriginalL'auteur Phillip Brandon Holmes