-1
votes

Lire les données du fichier csv un par un c #

Mon exemple de jeu de données de fichier CSV sont les suivants (horodatage; longitude; latitude): xxx

essentiellement, je veux mettre ces emplacements à la carte. Cependant, je veux que chaque point apparaisse un par un sur la base de l'horodatage. Par exemple, après la présentation des données à la première ligne, les données à la deuxième ligne suivront après 13 secondes en raison des différences d'horodatage. Après cela, la troisième rangée sera sortie de 9 secondes après la deuxième donnée. Dans ce cas, l'intervalle de temps n'est pas le même.

Est-il possible de le faire? Comment faire ça? J'ai essayé quelque chose comme ceci: xxx

Cependant, les broches sur la carte apparaissent après une boucle avec toute la fin du fil.


4 Réponses :


0
votes

Vous pouvez lire un fichier .csv à l'aide de lecteur de flux et séparez les colonnes à l'aide de la fonction Split (";"), déterminant que le point-virgule est le séparateur de chaque ligne. Après cela, vous pouvez stocker des données dans ArrayList ou vous pouvez stocker une table de base de données en fonction de la colonne.

List<string> lattitude=new List<string>();
List<string> longitude=new List<string>();
List<string> timestamp=new List<string();
using (var rd = new StreamReader("yourfile.csv"))
{
    while (!rd.EndOfStream)
    {
        var arrlst= rd.ReadLine().Split(';');
        timestamp.add(arrlst[0])
        lattitude.Add(arrlst[1]);
        longitude.Add(arrlst[2]);
    }
}


3 commentaires

L'intervalle de temps n'est pas le même pour chaque boucle :(


Ouais, dans ce cas, vous devez gérer l'intervalle de temps avec quelques logiques lorsque vous avez choisi d'utiliser le sélecteur de temps. Ou vous pouvez trier les ensembles de données en fonction de l'horodatage, puis d'afficher en calculant les secondes en fonction de vos besoins. J'ai donné un indice pour vous aider à penser que vous pouvez penser :). Bonne chance


Oui, le thread peut également être un autre moyen d'afficher vos données en fonction de votre temps nécessaire en secondes.




0
votes

Il y a plusieurs étapes à prendre, mais je ne vais que vous concentrer sur le premier. Conversion des résultats du fichier en une structure que vous pouvez utiliser ..

Le reste est à vous (et uniquement à des fins académiques morbides), vous devez choisir votre propre aventure

donnée < / forte> xxx

méthode pour convertir xxx

usage xxx


0 commentaires

2
votes

Lire et stocker les informations:

Dans cette partie, je ne préconiserai aucune bibliothèque de la 3ème pièce qui sera simplement la lecture et l'écriture d'un CSV. Comme l'aide de CSV. Parce qu'il est évident que vous devriez l'utiliser. P> xxx pré>

décimal.tryparse (élément [1], out lon)? LON: 0 code> est un moyen court pour tryparse code> l'entrée et donnez-lui une valeur par défaut si elle échoue. P>

À ce stade, vous avez une liste d'objet personnalisé qui correspond aux données exactes que vous avez présentées dans le fichier. La lecture est terminée, vous pouvez commencer à travailler dessus. Pour savoir comment le délai de Mutch chaque point devrait avoir que nous devons le supprimer avec la première datetime. P>

var readingTime = DateTime.Today.AddHours(19);
var displayData = usefullData.Select(x =>
                                new
                                {
                                    Date = readingTime + x.Delay,
                                    x.Lon,
                                    x.Lat,
                                });


0 commentaires