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

 Delphi Discussion :

Recharger deux valeurs d'un fichier texte et les afficher dans un Tspinedit !


Sujet :

Delphi

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 425
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 425
    Points : 1 326
    Points
    1 326
    Par défaut Recharger deux valeurs d'un fichier texte et les afficher dans un Tspinedit !
    Bonsoir à toutes et à tous,

    J'essaye de trouver la possibilité d'afficher dans mes deux SpinEdit la valeur récupérée de mon fichier text.

    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
     
    var
    UnStringList:TStringList;
     
    begin
      //Création du STringList
      UnStringList:=TStringList.Create;
      try
     
         //Chargement du fichier texte
         UnStringList.LoadFromFile(chappli + 'MonFichier.txt');
     
         Edwidth.Text:=UnStringList.strings[UnStringList.Count-2];
         Edheight.Text:=UnStringList.strings[UnStringList.Count-1];
     
         //sp1.value:= 
         //sp2.text:=  
     
     
      finally
     
         //Destruction du StringList
         UnStringList.Free;
     
      end;
    Dans mes deux Tedit c'est ok et lors de mes essais les valeurs sont bien aussi affichées dans les deux TSpinEdit mais lorsque j'incrémente un, j'obtiens une exception.

    J'ai testé avec la propriété texte plutôt que value et toujours l'exception.

    Soit charger dans les deux TsspinEdit directement du fichier texte ou depuis les deux Tedit.

    Merci de votre aide.

    @+,

    cincap

  2. #2
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 345
    Points : 3 123
    Points
    3 123
    Par défaut
    Bonjour,

    est ce que MaxValue et MinValue sont compatibles avec Value ?

    A+
    Charly

  3. #3
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 345
    Points : 3 123
    Points
    3 123
    Par défaut
    Bonsoir,

    avec ce code cela ne plante pas quand je clique sur le SpinEdit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure TF_Princ.Button1Click(Sender: TObject);
    begin
      SpinEdit1.MaxValue := 10 ;
      SpinEdit1.MinValue := 0 ;
      SpinEdit1.Value := 5 ;
    end;
    Si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    begin
      SpinEdit1.MaxValue := 10 ;
      SpinEdit1.MinValue := 0 ;
      SpinEdit1.Value := 15 ;
    end;
    Cela ne plante pas non plus. Le SpinEdit Affiche 10 soit le max

    (Testé en Delphi 7)

    A+
    Charly

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 425
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 425
    Points : 1 326
    Points
    1 326
    Par défaut
    @ Charly910, merci de ton intervention, vu comme cela oui mais ma demande consiste à récupérer ce qui est dans mon TEdit ou directement de mon fichier texte à la 1ère ligne et à la 2ième ligne :

    Dans le fichier texte :

    Votre Réponse est :
    3920
    4080
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Edwidth.Text:=UnStringList.strings[UnStringList.Count-2];
    Edheight.Text:=UnStringList.strings[UnStringList.Count-1];
     
    sp1.value := UnStringList.strings[UnStringList.Count-2];
    sp2.value := UnStringList.strings[UnStringList.Count-2];
    @+,

    cincap

  5. #5
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Peut être directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sp1.value := UnStringList.Count-2;

  6. #6
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 345
    Points : 3 123
    Points
    3 123
    Par défaut
    Bonjour

    est ce que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Edwidth.Text:=UnStringList.strings[UnStringList.Count-2];
    Edheight.Text:=UnStringList.strings[UnStringList.Count-1];
     
    sp1.value := StrToInt(Edwidth.Text) ;
    sp2.value := StrToInt(Edheight.Text) ;
    ne fonctionne pas ?

    A+
    Charly

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 425
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 425
    Points : 1 326
    Points
    1 326
    Par défaut
    Bonjour à toutes et à tous,

    @ ALWEBER, merci pour ta suggestion, l'application ne plante pas mais le résultat dans les SpinEdit ne correspond pas au résultat des Tedit.

    @ Charly910, merci aussi pour ta suggestion, mais l'application plante à l'ouverture.

    J'ai aussi testé avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sp1.text:= UnStringList.strings[UnStringList.Count-2];
    sp2.text:= UnStringList.strings[UnStringList.Count-1];
    Sans succès car le résultat s'affiche bien comme dans les 2 Tedit mais si je modifie l'incrémentation j'obtiens une erreur "3920 N'est pas une valeur entière".

    @+,

    cincap

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 425
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 425
    Points : 1 326
    Points
    1 326
    Par défaut
    @ tous,

    Dans mon test si je code ceci, cela fonctionne et les Tspinedit peuvent être incrémentés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Edwidth.Text:= '3920' ;//UnStringList.strings[UnStringList.Count-2];
    Edheight.Text:= '4080' ;//UnStringList.strings[UnStringList.Count-1];
    sp1.value := StrToInt(Edwidth.Text) ;
    sp2.value := StrToInt(Edheight.Text) ;
    Donc le problème vient bien du chargement des valeurs dans le fichier texte.

    Peut être le format ?

    @+,

    cincap

  9. #9
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Excuses moi j'étais un peu dans la lune ce matin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UnStringList.strings[UnStringList.Count-2];
    =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UnStringList[UnStringList.Count-2];
    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sp1.text:= UnStringList[UnStringList.Count-2];
    Essaye de faire un UnStringList.text := trim (UnStringList.text) avant
    ce qui peut retirer des infos résiduelles en fin de fichier

  10. #10
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 345
    Points : 3 123
    Points
    3 123
    Par défaut
    Oui, c'est surement un problème d'espaces ou de caractères non affichables. Affiche dans les TEdit entre 2 caractères | par exemple.

    D’où vient ton fichier Texte. l'as tu affiché avec NotePad ? Tu peux aussi essayer de lire les lignes 2 et 3 avec un TextFile et readln pour comparer.

    A+
    Charly

  11. #11
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 345
    Points : 3 123
    Points
    3 123
    Par défaut
    Sinon poste un exemple de ton fichier txt que l'on puisse le charger

    A+
    Charly

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 425
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 425
    Points : 1 326
    Points
    1 326
    Par défaut
    @ ALWEBER, cela fonctionne avec "trim", étonnant car dans mes tests je l'avais utilisé peut être pas correctement.

    En fait l'oubli de l'emploi de "trim" est souvent mon défaut.

    @ Charly910, le fichier texte est créé depuis un fichier .bat donc comme n'importe quel fichier avec Notepad.exe.

    sp1 et sp2 peuvent être incrémenté !

    Voici le code :

    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
     
    var
    UnStringList:TStringList;
     
    begin
      //Création du STringList
      UnStringList:=TStringList.Create;
      try
     
         //Chargement du fichier texte
         UnStringList.LoadFromFile(chappli + 'resolution.txt');
     
         Edwidth.Text:= UnStringList[UnStringList.Count-2];
         Edheight.Text:= UnStringList[UnStringList.Count-1];
     
        sp1.text:= trim(UnStringList[UnStringList.Count-2]);
        sp2.text:= trim(UnStringList[UnStringList.Count-1]);
     
      finally
     
         //Destruction du StringList
         UnStringList.Free;
     
      end;
    Autre façon de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       Edwidth.Text:= trim(UnStringList.strings[UnStringList.Count-2]);
       Edheight.Text:= trim(UnStringList.strings[UnStringList.Count-1]);
     
       sp1.value := StrToInt(Edwidth.Text) ;
       sp2.value := StrToInt(Edheight.Text) ;
    Merci à vous deux encore une mine de savoir à retenir.

    Le topic peut être fermé haut la main.

    @+,

    cincap

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

Discussions similaires

  1. [Python 2.X] Extraire des valeurs d'un fichier texte pour les mettre dans une matrice
    Par nekcorp dans le forum Général Python
    Réponses: 12
    Dernier message: 22/04/2016, 17h01
  2. Réponses: 8
    Dernier message: 19/12/2014, 14h12
  3. Réponses: 5
    Dernier message: 23/05/2014, 13h09
  4. Réponses: 2
    Dernier message: 22/06/2008, 15h41
  5. Réponses: 5
    Dernier message: 21/02/2007, 16h12

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