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.![]()
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
Partager