Bonjour,
Existe il une fonction permettant de découper un texte sur plusieurs lignes ou rangés dans plusieurs variables de x caractères.
Exemple : réaliser par exemple des lignes de 40 caractère sans couper de mots.
merci
Bonjour,
Existe il une fonction permettant de découper un texte sur plusieurs lignes ou rangés dans plusieurs variables de x caractères.
Exemple : réaliser par exemple des lignes de 40 caractère sans couper de mots.
merci
voila un exemple mais tu doit spécifier l’arrêt de ton curseur, dans ce cas apres tous paragraphe qui fini par ain on découpe le text
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 string[] lines2 = System.IO.File.ReadAllLines(@"../../../mime.txt"); IEnumerable<string> query2 = from line2 in lines2 let w = line2.Split("\r\n\r\n") where line2.EndsWith("ain") select w[0] + ";" + w[1] + ";" + w[2] + ";" + w[3] + ";" + w[4] + ";"; System.IO.File.WriteAllLines(@"../../../Bloq.csv", query2.ToArray());
Tu peux faire quelque chose comme ça :
Il y a une limitation potentiellement un peu gênante, c'est que ça ne gère que l'espace comme séparateur ; si tu en ajoutes d'autres au niveau du Split, c'est difficile de savoir quel était le séparateur pour le remettre si besoin... donc en fait il faudrait peut-être utiliser une autre approche. J'y réfléchirai sans doute plus tard, c'est un problème intéressant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 static IEnumerable<string> SplitLines(string s, int maxLength) { var builder = new StringBuilder(); var words = s.Split(' '); foreach (var word in words) { if (builder.Length == 0) { builder.Append(word); } else if (builder.Length + word.Length <= maxLength) { builder.Append(" " + word); } else { yield return builder.ToString(); builder.Clear(); builder.Append(word); } } if (builder.Length > 0) yield return builder.ToString(); }
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Bonjour messieurs,
C'est juste pour vous signaler que VB.net n'est pas très friand des accolades.
À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.
Ô Saint Excel, Grand Dieu de l'Inutile.
Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.
Effectivement, j'ai pas vu qu'on était dans le forum VB.NET
Cela dit c'est pas très compliqué à transcrire en VB.NET (à condition d'utiliser VB11, donc VS2012 ou 2013, puisque les itérateurs (Yield) n'existaient pas dans les versions précédentes)
EDIT: voilà la version VB :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Shared Function SplitLine(ByVal s As String, ByVal maxLength As Integer) As IEnumerable(Of String) Dim builder As New StringBuilder() Dim words = s.Split(' ') For Each word in words If builder.Length = 0 Then builder.Append(word) ElseIf builder.Length + word.Length <= maxLength Then builder.Append(" " + word) Else Yield builder.ToString() builder.Clear() builder.Append(word) End If Next If builder.Length > 0 Yield builder.ToString() End Function
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager