Bonjour,
J'ai 2 fichier XML,
le premier contient ce type de lignes :
et le second ce type de lignes :
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <root> <name id="0">Aaron</name> <name id="1">Adam</name> <name id="2">Adrian</name> <name id="3">Alan</name> <name id="4">Alejandro</name> <name id="5">Alex</name> <name id="6">Allen</name> <name id="7">Andrew</name> <name id="8">Andy</name> <name id="9">Anthony</name> <name id="10">Art</name> <name id="11">Arthur</name> <name id="12">Barry</name> <name id="13">Bart</name> <name id="14">Ben</name> <name id="15">Benjamin</name> <name id="16">Bill</name> <name id="17">Bobby</name> <name id="18">Brad</name> <name id="19">Bradley</name> <name id="20">Brendan</name> <name id="21">Brett</name> <name id="22">Brian</name> <name id="23">Bruce</name> <name id="24">Bryan</name> <name id="25">Carlos</name> <name id="26">Chad</name> <name id="27">Charles</name> <name id="28">Chris</name> <name id="29">Christopher</name> <name id="30">Chuck</name> <name id="31">Clay</name> <name id="32">Corey</name> <name id="33">Craig</name> <name id="34">Dan</name> </root>
Je cherches à découper les mots du premier fichier un par un en syllabes pour incrémenter le count du fichier où sont stockées les syllabes de la langue (c'est pour une analyse superficielle de syllabes dans les langues).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <root> <vowel type="char" count="0">u</vowel> <vowel type="string" count="0">ya</vowel> <consonant type="char" count="0">z</consonant> <consonant type="string" count="0">ch</consonant> <special type="string" count="0">ion</special> </root>
Voici ce que j'ai réussit à faire pour le moment
Mais là j'avoue que je sèche un peu, je ne sais pas par où je dois continuer pour avancer.
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Xml.Linq; namespace Random_Name_Generator { internal class obj_Letters { public string Letter; public struct CurrentChar { public char curentchar; public bool isvowel; } public struct CurrentString { public string String; public bool IsWowel; } public Enum CompChar; public CurrentChar ObtainSyllabe(obj_word ThisWord) { Dictionary<int, CurrentChar> Dico = new Dictionary<int, CurrentChar>(); int count = 0; foreach(char mychar in ThisWord.word) { CurrentChar MycharToDic = new CurrentChar {curentchar = mychar}; IEnumerable<XElement> vowels = root.Elements("vowel").Select(el => el); foreach (XElement el in vowels) { MycharToDic.isvowel = mychar == el.Value.ToCharArray().First(); } Dico.Add(count,MycharToDic); count++; } CurrentString MyCompStr = new CurrentString(); Dictionary<int, CurrentString> ForResearch = StandardList(ThisWord); int MaxLenght = ForResearch.Select(kvp => kvp.Value.String.Length).Concat(new[] {0}).Max(); for (int j = 0; j < MaxLenght; j++) { List<string> aList = (from kvp2 in ForResearch where kvp2.Value.String.Length == j select kvp2.Value.String).ToList(); } return _currentchar; } public Dictionary<int, CurrentString> StandardList(obj_word TheWord) { Dictionary<int, CurrentString> _StandardList = new Dictionary<int, CurrentString>(); XElement root = XElement.Load(TheWord.language.f_info.FullName); IEnumerable<XElement> vowels = root.Elements("vowel").Select(el => el); IEnumerable<XElement> consonants = root.Elements("consonant").Select(el2 => el2); int count = 0; foreach (XElement el in vowels) { CurrentString _MyCurrStr = new CurrentString {String = el.Value.Trim(), IsWowel = true}; _StandardList.Add(count,_MyCurrStr); count++; } foreach(XElement el2 in consonants) { CurrentString _MyCurrStr2 = new CurrentString {String = el2.Value.Trim(), IsWowel = false}; _StandardList.Add(count,_MyCurrStr2); count++; } return _StandardList; } } } }
Partager