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 :

Reconnaissance de caractères spéciaux dans un texte


Sujet :

Langage Delphi

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut Reconnaissance de caractères spéciaux dans un texte
    bonjour,
    je dispose d'un fichier texte dont la source est le texte d'une page web. Dans ce texte il y a des caracteres speciaux (comme shift + Entrée, ° automatique...) que le fichier texte pure ne reconnait pas dans bloc note. il met dont un caractere special a la place , une sorte de carré.
    J'aurais voulu savoir si delphi permet de retrouver le code de ces caracteres et de les remplacer par autre chose.

    Merci

    bon week end!

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 911
    Points : 6 032
    Points
    6 032
    Par défaut
    Tu peux charger ton fichier dans 1 stringList (LoadFromFile), puis sur chaque item de ce stringlist utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i:=0 to MonStringList.Count - 1 do
     MonStringList.String[i]:=
         StringReplace(MonStringList.String[i],';',',',[rfReplaceAll]) ; // remplacle les ";" par des ","
    Puis SaveToFile...

    Mais c'est bien sûr à toi de piéger les caractères indésirables

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    merci,

    le probleme justement c'est de savoir comment reconnaitre les caracteres speciaux qui sont invisible (on croit que c'est un espace, et en fait ce n'est pas ca, il s'agit d'un caractere special mal affiché par Blocnote).
    Je me demandais s'il y avait un code special (comme #10#13 pour retour a la ligne je crois) que je pouvais essayer de capturer.

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 911
    Points : 6 032
    Points
    6 032
    Par défaut
    Le pb avec le retour chariot, c'est que si tu le supprimes, tu vas destructurer ton fichier.

    Et puis, normalement, le retour chariot est bien "digéré" par les éditeurs de fichiers texte.

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    j'ai imprimé les differents code ascii de mes caracteres.
    Quelle difference y a t il entre le code ascii 32 et le 160?

    les deux signifient un "espace".
    mais le cas qui est mal traité dans mon programme est celui ou espace = 160.

    Y a t il une particularité au code 160?

    Sinon, comment dans une chaine de caracteres puis je remplacer tous les caracteres ayant pour code ascii 160 par le caractere espace ayant le code ascii 32?

  6. #6
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 911
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 911
    Points : 6 032
    Points
    6 032
    Par défaut
    Citation Envoyé par tomy29

    Sinon, comment dans une chaine de caracteres puis je remplacer tous les caracteres ayant pour code ascii 160 par le caractere espace ayant le code ascii 32?
    Citation Envoyé par qi130
    Tu peux charger ton fichier dans 1 stringList (LoadFromFile), puis sur chaque item de ce stringlist utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i:=0 to MonStringList.Count - 1 do
     MonStringList.String[i]:=
         StringReplace(MonStringList.String[i],';',',',[rfReplaceAll]) ; // remplacle les ";" par des ","
    Puis SaveToFile...
    Au lieu de
    ';',','
    ,
    tu utilises la fonction Chr
    Chr(160),Chr(32)

Discussions similaires

  1. Avoir la possibilité de saisir des caractères spéciaux dans une text-box
    Par Vincent32 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 08/11/2010, 15h50
  2. [WD-2003] Reconnaissance des caractères spéciaux dans du code Word VBA
    Par laurent_diep dans le forum VBA Word
    Réponses: 15
    Dernier message: 10/06/2009, 10h02
  3. Réponses: 3
    Dernier message: 05/11/2007, 01h16
  4. Caractères spéciaux dans un texte
    Par kevinl dans le forum MATLAB
    Réponses: 2
    Dernier message: 27/06/2007, 15h33
  5. Réponses: 3
    Dernier message: 26/11/2006, 21h05

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