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 :

modiffication d'un text dans un edit


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    électronique, radioamateur, retraité, jardin
    Inscrit en
    Mars 2025
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : électronique, radioamateur, retraité, jardin
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2025
    Messages : 43
    Par défaut modiffication d'un text dans un edit
    bonjours a toutes et tous,
    je suis sans expérience ni formation en Delphi mon edi est delphi7
    après avoir chercher sur les forum je n'ai pas réussi a trouvé la fonction que je cherche !!!!!, je vous soumet donc une question sur une fonction

    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
    Form1.Memo1DblClick
    var
    s,r:string;
    begin
    //ici j'envoie le text dans mon edit1 sa marche
    // edit1.text:=memo1.seltext; // ok ( :020000040000FA )
    // ici je remplace cet fonction
    s:=memo1.seltext; // s récupère seltext
    ////////////////////////////////////////////////////////////////////////
     
    r:=fonction pour retiré les deux (:) et (FA) ???
     
    ///////////////////////////////////////////////////////////////////////
    edit1.text:=r;// r:= devrait être sa (020000040000)
     
    end;

    la fonction que je cherche c'est :
    comment supprimé les deux point ( devant ma ligne et aussi les deux dernier caractère (FA)

    le but est de pouvoir réalisé le checksum de ma ligne

    cordialement
    Alain

  2. #2
    Membre chevronné Avatar de archonte
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 343
    Par défaut
    Bonjour Alll1,

    Si ta chaine a toujours la même longueur et le même formatage, as-tu regardé du coté de la fonction COPY ?
    Tu peux aussi tester les expressions régulières, mais pas sûr que tu puisses le faire en D7 ...

    cordialement
    "Je n'ai jamais rencontré d'homme si ignorant qu'il n'eut quelque chose à m'apprendre."
    Galilée

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 089
    Par défaut
    Si ce n'est pas positionnel soit que la réponse est Non pour "Si ta chaine a toujours la même longueur et le même formatage"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    edit1.text:= StringReplace(edit1.text:= StringReplace(memo1.seltext, ':', '', [rfReplaceAll, rfIgnoreCase]), 'FA', '', [rfReplaceAll, rfIgnoreCase])
    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

  4. #4
    Membre actif
    Homme Profil pro
    électronique, radioamateur, retraité, jardin
    Inscrit en
    Mars 2025
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : électronique, radioamateur, retraité, jardin
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2025
    Messages : 43
    Par défaut modification
    bonjours shailetroll,

    hélas non la chaine n'as pas toujours la même longueur c'est de l'hexadécimale
    voici un exemple de code hexa:
    ORIGINE // VERS
    :020000040000FA // 020000040000
    :10100000F209F009D60AD50ACD08D20800FF9421CA // 10100000F209F009D60AD50ACD08D20800FF9421
    :1010100001A00C00FFFFFFFFFFFFFFFFFFFFFFFF2F // 1010100001A00C00FFFFFFFFFFFFFFFFFFFFFFFF
    :1010200035200000008E2001BB00000003003DB20F //1010200035200000008E2001BB00000003003DB2
    ETC.…

    il faut vraiment que je puisse enlever le premier ":"et les deux dernier caractère "FA" de la chaine que je charge
    pour votre fonction pour remplacé les deux ":" déjà sa doit être pas mal sa oui effectivement avec [rfReplaceAll, rfIgnoreCase])
    mais il faudrait que je "memo1.count" le nombre de caractère pour les deux dernier je pense
    je vais déjà tester dans cet direction

    cordialement
    Alain

    Citation Envoyé par ShaiLeTroll Voir le message
    Si ce n'est pas positionnel soit que la réponse est Non pour "Si ta chaine a toujours la même longueur et le même formatage"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    edit1.text:= StringReplace(edit1.text:= StringReplace(memo1.seltext, ':', '', [rfReplaceAll, rfIgnoreCase]), 'FA', '', [rfReplaceAll, rfIgnoreCase])

  5. #5
    Membre actif
    Homme Profil pro
    électronique, radioamateur, retraité, jardin
    Inscrit en
    Mars 2025
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : électronique, radioamateur, retraité, jardin
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2025
    Messages : 43
    Par défaut modification
    bonsoir shailetroll,
    bon votre formule est super intéressante déjà je retire les deux point en début le la ligne charger sa sa marche

    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
    procedure TForm1.Memo1DblClick(Sender: TObject);
    var
    s:string;
    begin
       edit1.Text:= memo1.SelText;    //   la sa marche mais faut retiré le premiere caratere et les deux dernier
     
     edit1.text:= StringReplace(edit1.Text, ':', '',[rfReplaceAll, rfIgnoreCase]) ; // la sa marche plus de : super déjà cool
     
    /////////////////////////////////////////////////////////////////////////
     
    s:= edit1.count -2 ? // compter le nombre de caractère et prendre les deux dernier pour le supprimé ?
     
    edit1.text:= StringReplace(edit1.Text, s , '',[rfReplaceAll, rfIgnoreCase]) ;
     
     
    /////////////////////////////////////////////////////////////////////////
    Citation Envoyé par ShaiLeTroll Voir le message
    Si ce n'est pas positionnel soit que la réponse est Non pour "Si ta chaine a toujours la même longueur et le même formatage"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    edit1.text:= StringReplace(edit1.text:= StringReplace(memo1.seltext, ':', '', [rfReplaceAll, rfIgnoreCase]), 'FA', '', [rfReplaceAll, rfIgnoreCase])

  6. #6
    Membre actif
    Homme Profil pro
    électronique, radioamateur, retraité, jardin
    Inscrit en
    Mars 2025
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : électronique, radioamateur, retraité, jardin
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2025
    Messages : 43
    Par défaut modification nombre de caractère -2
    bonsoir shailetroll,

    bon ai bossé avec la base de votre 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
    procedure TForm1.Memo1DblClick(Sender: TObject);
    var
    charcount: integer;
    s,t: string;
    begin
       edit1.Text:= memo1.SelText; 
     
     edit1.text:= StringReplace(edit1.Text, ':', '',[rfReplaceAll, rfIgnoreCase]) ; // supprime les : impec
     charcount:= length(edit1.Text);
      s:= inttostr(charcount);
      label13.Caption := ' il y as '+ (inttostr(charcount) + ' caractères '); // me dit le nombre de caractère dans label13 ok
     
    ///////////////////////////////////////////////////////////////////////////////////////////////
    // ici a trouvé comment supprimé les dernier caractère 
    // t:= charcount-2; // ou s-2 ?????
      edit1.text:= StringReplace(edit1.Text, t , '',[rfReplaceAll, rfIgnoreCase]) ;
    //////////////////////////////////////////////////////////////////////////////////////////////
    end;
    cordialement
    Alain




    Citation Envoyé par ShaiLeTroll Voir le message
    Si ce n'est pas positionnel soit que la réponse est Non pour "Si ta chaine a toujours la même longueur et le même formatage"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    edit1.text:= StringReplace(edit1.text:= StringReplace(memo1.seltext, ':', '', [rfReplaceAll, rfIgnoreCase]), 'FA', '', [rfReplaceAll, rfIgnoreCase])

  7. #7
    Membre actif
    Homme Profil pro
    électronique, radioamateur, retraité, jardin
    Inscrit en
    Mars 2025
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : électronique, radioamateur, retraité, jardin
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2025
    Messages : 43
    Par défaut mofification text
    bonjours archonte,

    hélas non la chaine n'as pas toujours la même longueur c'est de l'hexadécimale
    voici un exemple de code hexa:
    ORIGINE // VERS
    :020000040000FA // 020000040000
    :10100000F209F009D60AD50ACD08D20800FF9421CA // 10100000F209F009D60AD50ACD08D20800FF9421
    :1010100001A00C00FFFFFFFFFFFFFFFFFFFFFFFF2F // 1010100001A00C00FFFFFFFFFFFFFFFFFFFFFFFF
    :1010200035200000008E2001BB00000003003DB20F //1010200035200000008E2001BB00000003003DB2
    ETC.…

    il faut vraiment que je puisse enlever le premier ":"et les deux dernier caractère "FA" de la chaine que je charge

    cordialement
    Alain



    Citation Envoyé par archonte Voir le message
    Bonjour Alll1,

    Si ta chaine a toujours la même longueur et le même formatage, as-tu regardé du coté de la fonction COPY ?
    Tu peux aussi tester les expressions régulières, mais pas sûr que tu puisses le faire en D7 ...

    cordialement

  8. #8
    Membre actif
    Homme Profil pro
    électronique, radioamateur, retraité, jardin
    Inscrit en
    Mars 2025
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : électronique, radioamateur, retraité, jardin
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2025
    Messages : 43
    Par défaut copy texte partiel
    bonjours archonte,

    bon après avoir exploré votre solution et avec moulte recherche j'ai réussi a solutionné mon problème enfin
    avec la fonction copy on peut demarré ou ons veut et pour la fin de la ligne a copier j'ai utilisé length
    donc pour mon besoin je code de cet façon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var
    charcount: integer;
    s: string;
    begin
       edit1.Text:= memo1.SelText; 
       Edit1.Text := copy(Edit1.Text, 2, Length(Edit1.Text)-3);
     charcount:= length(edit1.Text);
      s:= inttostr(charcount);
      label13.Caption := ' il y as '+ (inttostr(charcount) + ' caractères ');
     
    end;
    et la magique plus de : et les dernier caractère ne sont plus présent
    avec la fonction length je prend n'importe quel longueur dans mon code c'est chouette

    donc résolut
    merci a tout ceux qui on pris le temp de réfléchir a ma question qui m'ont répondu bien sur









    Citation Envoyé par archonte Voir le message
    Bonjour Alll1,

    Si ta chaine a toujours la même longueur et le même formatage, as-tu regardé du coté de la fonction COPY ?
    Tu peux aussi tester les expressions régulières, mais pas sûr que tu puisses le faire en D7 ...

    cordialement

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

Discussions similaires

  1. Ajouter du texte dans une edit box
    Par raf_gug dans le forum MFC
    Réponses: 10
    Dernier message: 23/05/2013, 10h00
  2. Afficher le contenu d'un fichier TEXT dans une edit
    Par darkman13130 dans le forum C++Builder
    Réponses: 1
    Dernier message: 06/06/2008, 16h41
  3. texte dans un edit control
    Par boboz2 dans le forum MFC
    Réponses: 1
    Dernier message: 14/08/2007, 16h22
  4. Problème de texte dans un Edit
    Par psiyg69 dans le forum Windows
    Réponses: 1
    Dernier message: 11/04/2007, 09h20
  5. DÉBUDANT : Détecter la selection du text dans un Edit .
    Par LibrairieSI dans le forum Windows
    Réponses: 1
    Dernier message: 16/10/2005, 00h54

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