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

Fortran Discussion :

L'équivalent de \n (C++) sous Fortran


Sujet :

Fortran

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2012
    Messages : 23
    Points : 11
    Points
    11
    Par défaut L'équivalent de \n (C++) sous Fortran
    Bonjour
    J'essaye de trouver l'équivalent d'une instruction C++ sous Fortran et je n'y arrive pas du tout. C'est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (data[i] == '\n') (*nlines)++;
    Cette instruction me servira en effet à parcourir une chaîne de caractère (data où j'ai sauvegardé tout un fichier) pour la classer en lignes en détectant à chaque fois un retour à la ligne. Malheureusement je n'ai pas pu le faire avec l'excellente et simple read(*,*) parce que je suis dans un environnement MPI parallèle !!!!

    Quelqu’un pourra s'il vous plait me trouver l'équivalent de cette détection de retour à la ligne sous Fortran ?
    Merci

  2. #2
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2012
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    Il s'est avéré que c'est CHAR(10) pour un saut de ligne et CHAR(13) pour un retour chariot.
    Merci.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Points : 1 346
    Points
    1 346
    Par défaut
    Il n'y a pas directement d'équivalent Fortran à la stratégie C que tu veux répliquer. Il y a moyen de le faire, mais c'est beaucoup moins élégant.

    La raison est qu'en C, un fichier est d'abord une longue chaîne de caractères dans laquelle il y a des '\n' permettant de délimiter des "lignes". En Fortran, un fichier est une collection de lignes, et la lecture est toujours assujettie à cette structure en ligne.

    Si tu veux tout lire d'un coup, puis détecter les marqueurs de ligne pour remettre en lignes dans un tableau, tu dois questionner ta stratégie puisqu'en Fortran, un fichier c'est déjà des lignes !

    Cela dit, si tu maintiens ta stratégie, tu dois utiliser un stream. C'est le plus proche équivalent d'une lecture C. Et pour le '\n', ça dépend du OS parce qu'il n'y aura pas de conversion des marqueurs physiques en '\n'. Tu auras bien char(13) // char(10) sur Windows, mais autre chose sur d'autres OS.

Discussions similaires

  1. l'équivalent de os.kill sous windows ?
    Par mdriesbach dans le forum Général Python
    Réponses: 4
    Dernier message: 16/12/2008, 10h01
  2. équivalent linux de 'open' sous mac
    Par befalimpertinent dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 30/07/2008, 09h30
  3. Appel de code Java sous Fortran
    Par hazyscl dans le forum Fortran
    Réponses: 6
    Dernier message: 02/07/2008, 19h03
  4. [Fichier] Api équivalent du tail -f sous unix
    Par Actarus78 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 09/09/2005, 11h34
  5. équivalent des Synonymes Oracle sous SQL Server 2000
    Par wello00 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/07/2005, 08h52

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