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++Builder Discussion :

Port COM outil de modification d'un fichier


Sujet :

C++Builder

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Port COM outil de modification d'un fichier
    Bonjour,

    je souhaite créer sous C++ Builder un Outil de modification / saisie du fichier d’initialisation des paramètres à une carte connectée à l'ordinateur par un COM virtuel.

    Pouvais vous m'aider ?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    C'est à dire ?
    Tu veux stocker le BaudRate, StopBits, Parity ... de la configuration utilisé avec ton port COM virtuel ?

    Est-ce un format libre que tu vas définir ? utilise TIniFile ou une TStringList
    Est-ce un format imposé par un logiciel tiers ? utilise TFileStream
    Est-ce que le Port COM concerne vraiment la problématique de fichier ou c'est juste que tu amalgames tout !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    En fait je dois lire un fichier ".ini" contenant des constantes, récupérer les données et les copier dans les différentes constantes que j'utilise dans mon projet. En fait pour le port COM il y a juste la variable contenant le nom du port...

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Utilise tout simplement TIniFile
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup j'ai réussi le programme.

    J'ai un autre problème si tu peux m'aider stp.
    J'utilise des composants videolab pour faire fonctionner une caméra sur c++ Builder. Je doit faire une fonction permettant de confirmer la prise de la photo pour que le programme puisse continuer. On m'a dit d'utiliser peut être un timer mais je voit pas comment.
    La prise d'une photo se fait en activant le filtre de la caméra.

    Merci d'avance
    MagRemi

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Composant TTimer ou TThread si VideoLab le supporte

    pour ton histoire de filtre, ce n'est pas lié à C++Builder mais à l'api que tu utilises, je te laisse consulter la documentation videolab à ce sujet
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup !

    Sais tu comment faire pour créer un répertoire de travail et enregistrer dans le répertoire sous C++ Builder ?

    Merci.

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Répertoire de Travail pour le programme ?
    Utilise GetTempPath() comme base de dossier, tu peux y créer tes fichiers temporaires et inclure une fonction de nettoyage à ton programme à sa fermeture, c'est ce que je fais pour ma part

    Ce code est utilisé dans une DLL partagée par plusieurs programmes pouvant être lancé simultanément (tous étant UniqueInstance), pour chaque appelant, un répertoire de travail est créé !
    DeleteTemporaryFiles est appelé lors du déchargement de la DLL par un Exe appelant
    Sachant que dans un comportement normal, j'essaye de supprimer explicitement les fichiers temporaire que l'objet qui les a créés est libéré

    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
     
    //---------------------------------------------------------------------------
    /*static*/ TFileName Txxx::GetTemporaryPath()
    {
      TFileName Result;
     
      wchar_t TempPath[MAX_PATH];
      if (GetTempPathW(MAX_PATH, TempPath) > 0)
      {
        wchar_t ModuleFileName[MAX_PATH];
        GetModuleFileNameW(NULL, ModuleFileName, MAX_PATH); // NULL c'est pour l'EXE même si depuis une DLL, avec HInstance cela fournirait le nom de la DLL
        Result = xxxFormatString("%s\\xxx\\%s\\", (ExcludeTrailingPathDelimiter(TempPath), ExtractFileName(ModuleFileName)));
      }
     
      return Result;
    }
     
    //---------------------------------------------------------------------------
    /*static*/ void Txxx::DeleteTemporaryFiles()
    {
      // Dans certains circonstances, certains fichiers temporaires n'ont pu être supprimés proprement !
      // Exemple, lors d'un Echec ... (abus de clic sur Pause), la lib ... ne libère pas le fichier, il faudra fermer, relancer et re-ferme le moniteur pour nettoyer ces fichiers !
     
      TFileName TempPath = GetTemporaryPath();
     
      if ( ! TempPath.IsEmpty())
      {
        TFileName TempMask = TempPath + "*.*";
     
        int Len = TempMask.Length();
        int Size = Len + 1; // +1 pour le caractère zéro terminal de chaine
     
        wchar_t* pFormArray = new wchar_t[Size + 1]; // +1 pour le caractère zéro terminal de tableau de chaine
        try
        {
          StrCopy(pFormArray, TempMask.c_str());
          pFormArray[Size] = 0; // Indique la fin du tableau de chaine
     
          SHFILEOPSTRUCTW DeleteCriteria;
          ZeroMemory(&DeleteCriteria, sizeof(DeleteCriteria));
          DeleteCriteria.wFunc = FO_DELETE;
          DeleteCriteria.pFrom = pFormArray;
          DeleteCriteria.fFlags = FOF_FILESONLY | FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI;
     
          SHFileOperationW(&DeleteCriteria);
        }
        __finally
        {
          delete [] pFormArray;
        }
     
        RemoveDir(TempPath);
      }
    }
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Merci, oui c'est pour une créer un répertoire de travail qui contiendra ensuite les photos prisent par mon programme...

    Peux tu m'aider sur les bases de données ?
    Je souhaiterai récupérer des valeurs présentent dans une ListBox pour les intégrer dans ma base de données. Comment je peux faire ?

    Merci d'avance
    MagRemi

  10. #10
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Utilise une TDBListBox
    Voir Delphi et SGBD
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Je te remercie de tes informations.

    J'ai un autre problème, comment peut on utilisé un événement portCOM dans un thread.

    J'ai essayer d'appeler la fonction comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    From1->ComPort1RxChar(Sender,Count);
    Mais je ne connait pas Sender et Count donc cela ne marche pas...

    Si tu peux m'aider stp

  12. #12
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    C'est un Gestionnaire d'Evenement ce n'est pas toi qu'il l'appelle
    Tu dois juste en faire l'implémentation, là c'est les bases de la VCL en général, conventions que respecte le TComport, voir le tutoriel dont l'article IV-H. Lecture d'une valeur sur Rx

    Il est temps de prendre en main l'aide via la touche F1 et faire une démarche de recherche un peu plus approfondi !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Fichier string, Port com et donnée
    Par elecpic dans le forum Débuter
    Réponses: 8
    Dernier message: 26/07/2009, 21h49
  2. Réponses: 1
    Dernier message: 19/12/2006, 11h18
  3. erreur fichier ports COM
    Par _yeye_ dans le forum Visual C++
    Réponses: 3
    Dernier message: 27/09/2006, 08h16
  4. [TCOMPORT] probleme modification du port com
    Par msstaf dans le forum C++Builder
    Réponses: 5
    Dernier message: 26/04/2006, 01h24
  5. Outil pour modification de fichiers html par lots
    Par Tavernier dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 19/08/2005, 09h21

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