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

C Discussion :

Probleme avec fseek


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Probleme avec fseek
    Bonjour,

    Quand je compile cette ligne :
    fseek(stream, -(strlen(tmp) + j), SEEK_CUR);

    le compilateur m'indique l'avertissement :
    Valeur non signée négative.

    Y-a-t'il un moyen de realiser un retour en arriére dans un fichier sans ce message d'erreur?
    KURT

  2. #2
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 23
    Points : 35
    Points
    35
    Par défaut
    Je ne suis pas sûr que l'on puisse revenir en arrière avec fseek.

    Par contre, dans mon man (Sun Solaris) c'est possible avec lseek :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include <sys/types.h>
    #include <unistd.h>
     
    off_t lseek(int fildes, off_t offset, int whence);
    Essaye la fonction fseeko (si elle existe chez toi) qui se rapproche plus de lseek pour voir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <stdio.h>
     
    int fseeko(FILE *stream, off_t offset, int whence);
    Détail des explications : cours et tutoriels pour apprendre la programmation C : http://c.developpez.com/cours/

  3. #3
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 67
    Points : 79
    Points
    79
    Par défaut
    je n'ai pas testé mais essaie ca...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    FILE *stream;
    fpos_t *pos;
    fgetpos(stream,pos );
    fseek(stream, pos-(strlen(tmp) + j), SEEK_CUR);

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Merci pour l'info
    KURT

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    Pour le retour en arrière dans un fichier j'ai utilisé les fonctions

    fgetpos(FILE *stream, fpos_t filepos);
    Pour memoriser l'emplacement ou revenir

    et la fonction

    fsetpos(FILE *stream, fpos_t filepos);
    Pour revenir a l'emplacement voulu

    @+
    KURT

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    salut,
    Pour se déplacer en arrière dans un fichier texte, on peut utiliser
    fseek(curseur,-nbchar,SEEK_CUR);
    en remontant de nbchar caracteres dans le texte.
    MAIS lorsque j'ai essayé un code du style
    do
    {
    fseek(curseur,-2,SEEK_CUR);
    c=fgetc(curseur);
    }while(c != '<');
    afin de remonter dans le texte jusqu'au caractère '<' (pour moi)
    cela ne fonctionne pas si le fichier n'est pas ouvert en binaire!!!!!!
    (fopen(SourceFichier,"rb+")car le caractère \n n'est pas reconnu et pire, il plante tout car la boucle est infinie.
    Voilà.
    Je réponds un peu tard à ce message mais ça servira peut être à quelqu'un d'autre.

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

Discussions similaires

  1. [VB6] [ADO] Problème avec recordcount
    Par MASSAKA dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/01/2003, 11h45
  2. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  3. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  4. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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