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 :

Ecrire à une position fixe dans un fichier.


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 317
    Points : 88
    Points
    88
    Par défaut Ecrire à une position fixe dans un fichier.
    Bonjour,
    J'aimerais bien savoir si c'est possible de remplacer un caractère dans un fichier ASCI par un autre caractère de même longueur à une position donné.

    Exemple:
    J'ai un fichier de 5M et je dois remplacer le caractère 'A' a la position 728 par le caractère 'B' sans a réécrire par une boucle du début jusque a la fin, est-ce possible!

    J'utilise pour le moment une fonction avec une boucle BlockRead et BlockWrite.

    Merci beaucoup pour votre aide.
    Salutations

  2. #2
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 14
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Oui

    Utilises un fichier typé, puis seek puis blockwrite.

    En fonction de ton besoin réel tu déclares ton fichier comme étant un fichier d'enregistrement de taille 768 et tu fais un seek(2) ou alors un
    un fichier d'enregistrement de taille 1 et tu fais un seek(768)

    cordialement
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 317
    Points : 88
    Points
    88
    Par défaut
    Merci pour ta réponse aurais-tu un petit examples...
    Salutations.

  4. #4
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par Yurck Voir le message
    Oui

    Utilises un fichier typé, puis seek puis blockwrite.

    En fonction de ton besoin réel tu déclares ton fichier comme étant un fichier d'enregistrement de taille 768 et tu fais un seek(2) ou alors un
    un fichier d'enregistrement de taille 1 et tu fais un seek(768)

    cordialement
    et ça ce n'est un petit exemple, non ?
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  5. #5
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 14
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Citation Envoyé par Just-Soft Voir le message
    et ça ce n'est un petit exemple, non ?
    +1

    Maintenant il est vrai que cela dépend tu delphi que tu utilises l'aide et les exemples ont semble-t-il disparu avec le temps.

    L'exemple que j'évoquais plus haut sort de mes souvenirs des années folles du turbo pascal.

    Aujourd'hui en Delphi 2009 on écrirais un truc du genre :

    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
    Var
      F : TFileStream;
      v : char;
    begin
      F := TFileStream.Create('XXX.XX',fmOpenReadWrite);
      try
        v := 'B';
    
        F.Seek(228 - 1, soBeginning);
        F.WriteBuffer(v, 1);
    
      finally
        F.Destroy;
      end;
    end;

    A noter que bien que l'aide soit peu riche un petit sur seek (ce que je viens de faire) t'aurais éclairer.

    a+
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 317
    Points : 88
    Points
    88
    Par défaut
    Merci de m'avoir éclairer.. je vois maitenant comment faire.
    Salutation et très bonne journée.

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

Discussions similaires

  1. Ecrire une plage excel dans un fichier txt
    Par kuma_buzz dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/05/2008, 11h48
  2. Ecrire à une ligne précise dans un fichier
    Par Valkirion dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2007, 15h18
  3. ecrire une touche directionnelle dans un fichier excel
    Par aA189 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/08/2006, 20h41
  4. Ecriture à une position donné dans un fichier
    Par xarius dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 29/05/2006, 16h05
  5. aller à une position précise dans un fichier texte
    Par bassidi meryeme dans le forum Langage
    Réponses: 3
    Dernier message: 27/10/2005, 14h57

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