Mon exemple de jeu de données de fichier CSV sont les suivants (horodatage; longitude; latitude): 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. P> Est-il possible de le faire? Comment faire ça? J'ai essayé quelque chose comme ceci: p> Cependant, les broches sur la carte apparaissent après une boucle avec toute la fin du fil. p> p>
4 Réponses :
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]);
}
}
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.
Oui, vous pouvez le faire. P>
Fondamentalement, vous avez des données dans CSV, vous pouvez écrire une API pour lire des données à partir de CSV et retourner à l'objet JSON. Vous pouvez le faire en écrivant ASP.NET API. P>
Voici comment lire le fichier CSV dans ASP.NET http: //oniwebblog.blogspot. com / 2016/01 / aspnet-mvc-web-application-how-to-read_31.html P>
Voici une référence à la construction d'API WEB .NET Écrire une API Web P>
sur le côté du client, vous pouvez utiliser JQuery pour appeler API et obtenir des données JSON. P>
Maintenant pour le traquage de l'emplacement pour que vous puissiez utiliser Google API pour charger la carte et les points de dessin. p>
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 p>
méthode pour convertir strud> p> strong> usage fort > p>
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> À 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> 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> var readingTime = DateTime.Today.AddHours(19);
var displayData = usefullData.Select(x =>
new
{
Date = readingTime + x.Delay,
x.Lon,
x.Lat,
});
Oui, il est possible de faire ça.
Super de savoir cela. quelque chose en code?
Avez-vous un indice comment faire ça?
Oui. Et non, donc un service de rédaction de code.
Dupliqué possible de lire le fichier CSV et stocker des valeurs dans un tableau a>
Ce n'est pas pareil
C'est vague. Je ne suis pas sûr qu'il est clair pour vous comment gérer cette première colonne. Vous ne savez pas quel type de données et comment utiliser simplement le délai que vous avez à chaque fois que vous souhaitez l'afficher.
Si c'est le nombre de secondes ou d'une période de temps, vous devez avoir avant d'afficher, il devrait être saisi comme tel.
Donc, votre problème n'est pas lié à la lecture d'un CSV. Cela n'a rien à voir avec le CSV. Vous partez à partir d'un tableau avec DateTime et vous devez en faire une gamme de tispan, en fonction de la différence entre un élément et le premier élément de la matrice.
Deuxièmement, ne faites pas tout dans la même boucle. En fait, prenez un papier et écrivez l'étape de votre processus. Vous écrirez quelque chose comme "lire. Mettre en tableau Donc, ces actions doivent être séparées.
Vous devriez jeter un oeil à ReadallText et ReadallLine. Cela vous fera gagner du temps et clarifiera le processus.