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

Lazarus Pascal Discussion :

Conversion Delphi vers Lazarus - Error: Ordinal expression expected [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Par défaut Conversion Delphi vers Lazarus - Error: Ordinal expression expected
    Bonjour .

    Je suis en train de convertir une petite appli Delphi vers Lazarus et ça ne se passe (pour l'instant) pas trop mal, mais je bute sur l'erreur Ordinal expression expected que je ne comprend pas. Sous Delphi, cette ligne de code fonctionne sans problème et on est là dans du basique.
    Code Pascal : Sélectionner tout - Visualiser dans une fenêtre à part
     if not (Key in [' ','-','a'..'z','A'..'Z','é','è','ê','î','ï','ô','ç','à','ù',Chr(VK_BACK), Chr(VK_DELETE)])
    L'erreur est positionnée sous la virgule qui précède le é
    Je dois dire que je ne refuserais pas un coup de main .

    Amicalement,
    naute.

    Edit: J'avais écrit "butte". Oups! Heureusement que jipété est en week-end .

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 138
    Par défaut
    Bonjour.

    Le problème vient du fait que les caractères accentués ne sont pas considérés par Lazarus comme des caractères donc de type scalaire (ordinal) mais comme des chaines de caractères (string).

    Il doit donc falloir utiliser une autre méthode (genre case ?).

    Je n'en sais pas plus !

    Cordialement.
    Christian

  3. #3
    Rédacteur/Modérateur

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 141
    Billets dans le blog
    9
    Par défaut
    Bonjour ! Pour compléter la réponse de Christian, changer l'encodage du fichier devrait résoudre le problème. Clic droit, paramètres du fichier, encodage, Ansi (cp1252).

  4. #4
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Par défaut
    Bonjour Christian, bonjour Roland .

    @ Christian:
    Merci pour ces précisions. J'ai du mal à comprendre pourquoi Lazarus (Free Pascal), qui, si j'ai bien compris, se veut une implémentation (clone) libre de Delphi (Turbo Pascal), ne respecte pas les Type(s) de base. Ce n'est certainement pas ça qui va arranger la position du Pascal dans l'Open Source.

    @ Roland:
    Merci pour ton intervention, Roland, mais:
    1 - Clic droit sur quoi? C'est peut-être évident pour toi mais pour moi bof...
    2 - Ansi (CP1252): Je voyais plutôt UTF8 mais ça n'a peut-être rien à voir.

    Amicalement,
    Hervé.

  5. #5
    Rédacteur/Modérateur

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 141
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par naute Voir le message
    Clic droit sur quoi?
    Clic droit dans la fenêtre de Lazarus, celle dans laquelle tu tapes ton code. Pardon pour le vague de ma réponse.

    D'une manière ou d'une autre, la solution la plus facile consiste à changer l'encodage du fichier. La solution moins facile est de changer certaines habitudes de programmation qui ne correspondent plus à "ce qui se fait de mieux maintenant", à savoir l'UTF-8, qui permet d'afficher tous les caractères de toutes les langues. Le code que tu nous a montré ne passerait pas non plus avec un Delphi récent.

  6. #6
    Rédacteur/Modérateur

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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 141
    Billets dans le blog
    9
    Par défaut
    Dans un fichier encodé en UTF-8 (encodage que Lazarus utilise par défaut, comme Delphi désormais), le caractère accentué est encodé sur plusieurs octets. Ce n'est pas un "type ordinal".

  7. #7
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Par défaut
    OK! .

    Maintenant que c'est fait, un autre problème arrive. Lazarus n'a pas l'air de connaître MilToPix(). Quel est son équivalent s'il existe?

  8. #8
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 104
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 104
    Par défaut
    Et là-dedans :
    Nom : manifabsent2.png
Affichages : 541
Taille : 5,5 Ko
    T'es allé voir là-dedans ?

  9. #9
    Rédacteur

    Avatar de naute
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2009
    Messages
    708
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2009
    Messages : 708
    Par défaut
    Croisement de post.

    Citation Envoyé par Jipété Voir le message
    Et là-dedans :
    Nom : manifabsent2.png
Affichages : 541
Taille : 5,5 Ko
    T'es allé voir là-dedans ?
    Ben j'y étais allé hier et j'avais enlevé la référence de la clause uses, puisque je voulais me débarrasser du manifest dont Lazarus ne voulait pas. Donc, le message est logique d'une certaine manière. Mais en revérifiant tout à l'heure tous les lfm, j'ai constaté que la référence avait été remise dans base.lfm. Je l'ai ré-enlevée (têtu) mais au lieu de compiler tout de suite, j'ai basculé unité/fiche (hier je ne pouvais pas) et j'ai constaté la disparition du composant TXPManifest. J'ai lancé la compil à la suite et ça a fonctionné. Enfin si on peut dire (voir mon post précédent).

    Encore des comportements plus ou moins erratiques.

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

Discussions similaires

  1. [Lazarus] Migration de Delphi vers Lazarus
    Par PhilLU dans le forum Lazarus
    Réponses: 4
    Dernier message: 18/01/2017, 13h00
  2. Réponses: 1
    Dernier message: 28/08/2013, 16h06
  3. [Lazarus] Transfert de composant de Delphi vers Lazarus
    Par Nandjm dans le forum Lazarus
    Réponses: 3
    Dernier message: 20/07/2011, 10h17
  4. [Lazarus] Portage d'un composant graphique Delphi vers Lazarus
    Par thierryc dans le forum Lazarus
    Réponses: 1
    Dernier message: 24/10/2009, 12h05

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