IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Problème lecture fichier TXT de 2500 lignes, et timeout server


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut Problème lecture fichier TXT de 2500 lignes, et timeout server
    Bonjour à tous,

    Je suis en train de développer une application ASP.net C# qui lit un fichier TXT en ligne, qui contient des coordonnées GPS sur chaque ligne.

    Je le converti ensuite en une chaîne encodée Polyline Google pour afficher le tracé GPS sur une carte Google Map. Ca fonctionne à merveille pour des petits fichiers (100/200 lignes), mais le temps de réponse augmente avec les lignes, et je ne peux pas lire de gros fichiers... comment faire ?

    Le message d'erreur du serveur :

    The following error occurred:

    Timeout waiting for Web Server to respond to request.
    The response exceeded the timeout interval: 40 Seconds.

    This means that:

    Acceleration Server did not get a response back from the webserver before the timeout interval passed.
    Confirm that the address is correct.
    Confirm that the host is reachable and online.
    Merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Chef de Projet
    Inscrit en
    Décembre 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de Projet
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2012
    Messages : 113
    Par défaut
    Bonjour,

    Avoir le code que tu utilises permettrait peut être de t'aider à voir pourquoi cela devient lent.

    Ensuite, peut être que paralléliser les calculs permettraient de diminuer les temps de réponse (par exemple, avec Parallel.ForEach)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    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
     scriptString = "";
     
                List<GoogleAPI.Coordinate> Liste = new List<GoogleAPI.Coordinate>();
                GoogleAPI.Coordinate Point = new GoogleAPI.Coordinate();
     
                // Création d'une instance de StreamReader pour permettre la lecture de notre fichier 
                StreamReader monStreamReader = new StreamReader(Server.MapPath(fichier));
                string ligne = monStreamReader.ReadLine();
     
                string Degres = "";
                string Minutes = "";
                string Secondes = "";
     
                double Lat, Lng;
     
                while (ligne != null)
                {
     
                        try
                        {
                            if (ligne.Substring(0, 1) == "B")
                            {
                                Degres = ligne.Substring(7, 2);
                                Minutes = ligne.Substring(9, 2);
                                Secondes = ligne.Substring(11, 3);
     
     
     
                                Lat = double.Parse(Degres) + (double.Parse(Minutes) / 60.000) + (double.Parse(Secondes) * 60 / 1000 / 3600.000);
     
                                if (ligne.Substring(14, 1) == "S") Lat = -Lat;
     
                                Lat = Math.Round(Lat, 6);
     
                                //scriptString += Degres + " " + Minutes + " " + Secondes + "   -->    "+Lat+"                  /                   ";
     
                                Degres = ligne.Substring(15, 3);
                                Minutes = ligne.Substring(18, 2);
                                Secondes = ligne.Substring(20, 3);
     
                                Lng = double.Parse(Degres) + (double.Parse(Minutes) / 60.000) + (double.Parse(Secondes) * 60 / 1000 / 3600.000);
                                Lng = Math.Round(Lng, 6);
                                if (ligne.Substring(23, 1) == "W") Lng = -Lng;
     
                                //scriptString += Degres+" "+Minutes+" "+Secondes + "  -> "+Lng+"\n";
     
                                Point.Latitude = Lat;
                                Point.Longitude = Lng;
                                Liste.Add(Point);
                            }
                            ligne = monStreamReader.ReadLine();
     
     
                        }
                        catch
                        {
                        }
     
                }
     
                            scriptString = GoogleAPI.EncodeCoordinates(Liste);
     
                // Fermeture du StreamReader (attention très important) 
                monStreamReader.Close();
    En gros, on lit les lignes une par une, on récupère les coordonnées GPS que l'on converti et que l'on ajoute dans la liste List<>. Enfin, on renvoi le tracé GPS codé dans scriptString

  4. #4
    Membre expérimenté
    Homme Profil pro
    Chef de Projet
    Inscrit en
    Décembre 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de Projet
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2012
    Messages : 113
    Par défaut
    Quelle est la partie qui prend du temps ? Est-ce l'appel à l'API Google (GoogleAPI.EncodeCoordinates(Liste)) ? Ou est-ce la constitution de la liste ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    C'est la constitution de la liste (2500 passages dans le While).

  6. #6
    Membre expérimenté
    Homme Profil pro
    Chef de Projet
    Inscrit en
    Décembre 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Chef de Projet
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2012
    Messages : 113
    Par défaut
    Je ne vois pourtant rien qui expliquerait cela. Peut être que le StreamReader est lent à l'utilisation !

    Si éventuellement tu as la possibilité de mettre à disposition un petit fichier d'exemple pour faire quelques tests... Enfin, quand je dis petit, un gros fichier de 2500 lignes ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Saut de ligne lors de lecture fichier .txt
    Par Loupire dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/01/2010, 09h02
  2. Problème lecture fichier txt
    Par Sarah38000 dans le forum C++
    Réponses: 2
    Dernier message: 27/09/2008, 09h36
  3. [SAX] Problème lecture fichier xml
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 07/07/2005, 18h11
  4. Problème lecture fichier en C++
    Par cali1983 dans le forum C++
    Réponses: 17
    Dernier message: 20/05/2005, 09h36
  5. [langage] prob lecture fichier .txt
    Par martijan dans le forum Langage
    Réponses: 3
    Dernier message: 16/07/2003, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo