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 :

Chercher/Remplacer un ou plusieurs caractères dans un fichier ?


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut Chercher/Remplacer un ou plusieurs caractères dans un fichier ?
    Bonjour à tous,

    Voici mon problème,

    j'ai plusieurs dizaines de fichiers textes d'env. 100Mo à 150Mo chacun.
    Ces fichiers contiennent des notices qui commencent toujours par la chaîne PATN

    Dans certains de ces fichiers je viens de m'apercevoir que j'ai quelques CTRL-Z !
    Et là normal mon While not EOF(F)... sort de sa boucle !

    Je voudrais avant d'ouvrir mon fichier par la fonction AssignFile, faire une procédure
    qui ouvre, Search/Replace les caractères CTRL-Z, puis sauvegarde le fichier.

    Ce traitement n'est qu'à faire qu'une seule fois.

    Auriez vous une procedure pour faire ça en sachant que j'ai trouvé que des solutions avec des TStringLists
    et je pense pas que 150Mo soit accepté par les TStringList.

    D'avance merci pour vos conseils,

    Bruno

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 427
    Points : 24 792
    Points
    24 792
    Par défaut
    Regarde cette fonction SearchStringInFile pour remplacer

    Sinon, utilise TFileStream ton fichier en mode binaire au lieu du mode Assign ( CTRL+Z c'est quoi comme code, car j'avais eu aussi ce problème, sur le caractère 16, si mes souvenirs de 2002 sont exacts)
    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
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Salut ShaiLeTroll,

    Je connaissais cette fonction mais j'avoue que je ne sais pas encore comment l'utiliser pour faire un replace.
    je vais fureter sur le net un peu

    le code CTRL-Z, c'est le 26 ou 0x1A

    Si tu l'as déjà utilisé en mode Search/Replace, je suis preneur, j'en peux plus de tous ces fichiers à traiter...déjà un mois que je fais des conversions, je sature un peu
    (Txt->xml, xml->xml, sgml->xml etc....) Là il y a 1275 fichiers de 100Mo env. qui contiennent en tout 1 850 000 fichiers... (c'était le moment je me plains )

    Merci pour le conseil,
    Bruno

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Re,

    eh bien ce n'était pas bien long, j'ai retrouvé un post de toi ShaiLeTroll qui donne la solution à ce que je cherche à faire et
    je viens de l'implémenter et ça fonctionne parfaitement !!!

    Enfin une bonne chose

    un post dans phidels:

    http://www.phidels.com/php/forum/for...&postid=123509

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 427
    Points : 24 792
    Points
    24 792
    Par défaut
    J'avais même fait une fonction ReplaceStringInFile prête à l'emploi, je l'avais totalement oublié,
    je l'ai effectivement retrouvé dans une application de Test quand j'ai essayé la version Pulsar de Delphi
    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

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

Discussions similaires

  1. Remplacer un ou plusieurs caractères dans des zones de texte
    Par php_.net dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/04/2010, 00h03
  2. Remplacement de chaine de caractères dans un fichier
    Par koKoTis dans le forum Langage
    Réponses: 4
    Dernier message: 13/09/2008, 19h36
  3. Remplacer une chaine de caractère dans un fichier texte.
    Par Empty_body dans le forum VBA Access
    Réponses: 1
    Dernier message: 19/01/2008, 12h16
  4. Réponses: 14
    Dernier message: 15/06/2007, 14h59
  5. Réponses: 4
    Dernier message: 18/07/2006, 17h31

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