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

Langage Delphi Discussion :

[D10.2][StrPas] Erreur Conversion


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 101
    Points : 132
    Points
    132
    Par défaut [D10.2][StrPas] Erreur Conversion
    Bonsoir tous le monde,

    Je viens quérir votre aide afin de convertir ce bout de code de sorte qu'il fonctionne sous D10.2 sans me confronter au message d'erreur suivant:
    StrPas est déprécié moved to the AnsiString unit.

    le bout de 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
     
    function TPCSCRaw.SCErrToStr(ErrorCode: DWord): ansistring;
    var
      Flags: DWord;
      buff: array[0..255] of Ansichar;
    begin
        Flags:=FORMAT_MESSAGE_FROM_HMODULE or FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS;
        {Len:=}FormatMessage(Flags,Pointer(fhWinSCard), ErrorCode, 0, @buff[0], 250, nil);
        result:=StrPas(buff);
        if (Result='') then begin
          (* this should not happen, but we've seen it.... *)
          Result:=IntToHex(GetLastError(), 8);
          Exit;
        end;
        if Copy(Result,Length(Result)-1,2)=#13#10 then SetLength(Result, Length(Result)-2);
    end;
    j'avoue avoir du mal avec les conversions style Char = AnsiChar , string = AnsiString, etc...

    et l'aide fournie sur le wiki embarcadero ne m'aide pas à mieux comprendre http://docwiki.embarcadero.com/Libra...ysUtils.StrPas

    Vous remerçiant pour toutes explications / solutions éventuelles pouvant m'être fournie (niveau débutant).

    Bien à vous
    Windows 7 / Debian 8 jessie / Kali 2 / Nas Synology ds214se / Arduino Mega 2560 / Raspberry Pi 3

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Je crois qu'il suffit de déclarer l'unité AnsiStrings et d'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    result := AnsiStrings.StrPas(buff);
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 694
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Aide StrPas :
    Pour convertir une chaîne à zéro terminal en une chaîne AnsiString ou en chaîne en langage Delphi natif, utilisez un transtypage ou une affectation.
    Tu peux donc supprimer StrPas, Delphi gère nativement ce type de conversion result := buff;

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 101
    Points : 132
    Points
    132
    Par défaut
    Grand Merçi à vous deux d'avoir consacré un peu de votre temps à la résolution de mon problème.
    je marque le post comme résolu.

    Bien à vous
    Windows 7 / Debian 8 jessie / Kali 2 / Nas Synology ds214se / Arduino Mega 2560 / Raspberry Pi 3

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

Discussions similaires

  1. SQL SERVER/DELPHI Erreur Conversion CHAR DATETIME
    Par Macadoshis dans le forum Bases de données
    Réponses: 7
    Dernier message: 13/06/2008, 12h52
  2. erreur conversion type de données 3421
    Par sunwind dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/05/2008, 16h27
  3. Erreur conversion valeur datetime à partir chaîne de caractères
    Par goullater dans le forum Développement
    Réponses: 1
    Dernier message: 16/04/2008, 14h55
  4. Erreur conversion de type - import fichier excel
    Par Greg84 dans le forum Access
    Réponses: 2
    Dernier message: 16/08/2006, 16h32
  5. [VB.NET] Erreur conversion de code c=>vb (opendialogfile)
    Par hirochirak dans le forum Windows Forms
    Réponses: 19
    Dernier message: 02/06/2004, 16h31

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