Soyons pragmatique et analysons la complexité du problème (si problème complexe il y a
) :
Pour tester avec ton modèle de données, j’ai mis ça dans le send client :
Code : Tout sélectionner
//envois des donnés au serveur toutes les secondes
setInterval(function () {
let d ="time = 12.0137445525423\r\nairspeed = 34.5486679077148\r\naltitude = 520.117614746094\r\nvario = 16.6474590301514\r\n"
cltudp.Send(d, 'localhost', 5000)
}, 1000);
objectif : convertir la chaine d’entrée
data en un tableau
Data [ [‘nom’,valeur], [‘nom’,valeur], …]
ou nom est une string et valeur un nombre décimale
1 - Supprimer les éventuels espaces et saut de ligne de part et d’autre de la chaine data :
data = data.trim();
=>
data = "time = 12.0137445525423\r\nairspeed = 34.5486679077148\r\naltitude = 520.117614746094\r\nvario = 16.6474590301514"
2 - Convertir data en un tableau en splittant sur les ‘rn’ :
data = data.split("\r\n");
=>
data = [" 'nom ' , ' valeur ' " , " 'nom ' , ' valeur ' " , ... ]
3 - itération sur tout le contenu du tableau data
for (let i = 0; i < data.length; i++){ ...
4 - Convertir Data en un tableau 2d en splittant sur les ‘=’ de data
Data [ i ] = data[ i ].split("=");
=>
Data = [ [' nom ', ' valeur '], [' nom ', ' valeur '], …]
5 - On suppriment les éventuels espaces autour du nom
Data [ i ][0] = Data [ i ][0].trim();
=>
Data = [ ['nom', ' valeur '], ['nom', ' valeur '], …]
5 - On converti la valeur en un nombre décimale
Data [ i ][1] = parseFloat(Data [ i ][1]);
=>
Data = [ ['nom', valeur.décimale], ['nom', valeur.décimale ], …]
6 - fin d'iteration
...}
fini
en code, ca donne ca (avec en dessous différentes façon de se balader dans
Data). bon j'aurrais bien transformé Data en un objet mais ... non, j'déconne
- dataudp.png (48.94 Kio) Vu 6166 fois
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).