APPNOTE : accès aux arguments de ligne de commande avec FORTRAN

Traductions disponibles Traductions disponibles
Numéro d'article: 65236 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Sommaire

Résumé

Une note d'application intitulée « accès À ligne de commande arguments avec FORTRAN, » qui décrit l'accès aux arguments de ligne de commande dans les versions de Microsoft FORTRAN 4.00, 4.01 et 4.10, est disponible auprès des services de support technique Microsoft.

Ce fichier a été supprimé de la bibliothèque de logiciels, mais peut être demandé en appelant des services de support technique Microsoft. Les fonctions incluses dans cette note d'application utiliser le PSP (programme segment préfixe) pour déterminer l'emplacement des arguments de ligne de commande dans la mémoire. OS/2 n'implémente pas le PSP, et par conséquent ces fonctions ne fonctionnent pas correctement sous le système d'exploitation OS/2. De plus, l'environnement qui est également effectuée via le PSP est inaccessible.

FORTRAN, versions 5.0 et 5.1 contiennent les fonctions intrinsèques getarg et le narg pour accéder aux arguments de ligne de commande de dans un programme FORTRAN.

Plus d'informations

This article contains the same information as the application note.
======================================================================
   Microsoft Product Support Services Application Note (Text File)
        HF0220: ACCESSING COMMAND-LINE ARGUMENTS WITH FORTRAN
======================================================================
                                                   Revision Date: 8/91
                                                      No Disk Included
The following information applies to Microsoft FORTRAN versions 4.0,
4.01, and 4.1.
 --------------------------------------------------------------------
| INFORMATION PROVIDED IN THIS DOCUMENT AND ANY SOFTWARE THAT MAY    |
| ACCOMPANY THIS DOCUMENT (collectively referred to as an            |
| Application Note) IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY      |
| KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO    |
| THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A     |
| PARTICULAR PURPOSE. The user assumes the entire risk as to the     |
| accuracy and the use of this Application Note. This Application    |
| Note may be copied and distributed subject to the following        |
| conditions: 1) All text must be copied without modification and    |
| all pages must be included; 2) If software is included, all files  |
| on the disk(s) must be copied without modification [the MS-DOS(R)  |
| utility DISKCOPY is appropriate for this purpose]; 3) All          |
| components of this Application Note must be distributed together;  |
| and 4) This Application Note may not be distributed for profit.    |
|                                                                    |
| Copyright 1990-1991, Microsoft Corporation. All Rights Reserved.   |
| Microsoft, MS-DOS, and the Microsoft logo are registered           |
| trademarks and Windows is a trademark of Microsoft Corporation.    |
 --------------------------------------------------------------------
				

Résumé

Cette note d'application décrit l'accès aux arguments de ligne de commande avec des versions 4.0, 4.01 et 4.1 des FORTRAN Microsoft.

Ci-dessous est le code de fichiers FORTRAN suivants :
   Filename      Description
  --------      -----------

  PSPTST.FOR    Main program that contains the INTERFACE to DMPCMD and
                calls DMPCMD

  DMPCMD.FOR    Subroutine that prints the contents of the command
                line

  Note: DMPCMD must be compiled in a separate source file.
				

Comment faire pour utiliser PSPTST

Utilisez la commande suivante pour compiler les deux programmes :
  
   FL PSPTST.FOR DMPCMD.FOR

If PSPTST is invoked with a command line such as

  PSPTST hello

the output will be as follows:

  < hello>
				
la sortie seront les suivantes :
< hello >
Dans les versions FORTRAN 5.0 et 5.1, arguments de ligne de commande est accessible à l'aide la fonction NARGS et la procédure GETARG décrites sur la page 271 du manuel « Microsoft FORTRAN référence » pour la version 5.0 ou 5.1.

Le programme PSPTST

c The INTERFACE statement is used to pass the addresses of the start
c of the command line and the number of characters in the command line
c to the separately compiled subroutine, DMPCMD, by value, instead of
c by reference. The variables are passed by value because they are
c themselves addresses. The DMPCMD subroutine is compiled separately
c so that it will accept its arguments by reference. This results in
c the two passed addresses being properly "dereferenced."
c
      INTERFACE TO SUBROUTINE DMPCMD( II,JJ )
      INTEGER*4 II [VALUE], JJ [VALUE]

      END
c
c --------------------------------------------------------------------
      PROGRAM PSPTST
      INTEGER*4 PSP, PSPNCH, OFFSET
c --------------------------------------------------------------------
c The method used in this program will work only if the Program
c Segment Prefix precedes the main program, which it will by
c default. Since the PSP starts 16 paragraphs (256 bytes) before
c the main program, the first step is to load the variable OFFSET
c with the hex value 0010:0000, as follows:
c
      OFFSET = #00100000
c --------------------------------------------------------------------
c Use LOCFAR to find the segment:offset of the main program:
c
      PSP = LOCFAR(PSPTST)
c --------------------------------------------------------------------

c To set PSP so that it points to the start of the text of the
c command line, do the following:
c
c 1. Zero out the offset portion of the address in variable PSP.
c
c 2. Subtract 16 paragraphs from the segment:offset.
c
c 3. Add hex 81 so that PSP now points to the start of the text of the
c    command line:
c
      PSP = (PSP-MOD(PSP,#10000))-OFFSET+#81
c --------------------------------------------------------------------
c PSPNCH points to the byte (80 hex) in the PSP that contains the
c length of the command line:
c
      PSPNCH = PSP-1
c --------------------------------------------------------------------
c Call DMPCMD to list out the command line:
c
      CALL DMPCMD(PSP, PSPNCH)
      END
				

LA SOUS-ROUTINE DMPCMD

Remarque : compiler cette routine dans un fichier distinct de PSPTST.
      SUBROUTINE DMPCMD(CMDLIN, N)
      CHARACTER*80 CMDLIN
      INTEGER*1 N
c
c Write out N characters from CMDLIN (N is PSP+80 hex; CMDLIN is
c PSP+81 hex).
c
      WRITE (*,*) '<',CMDLIN(:N),'>'
      RETURN
      END
				

Propriétés

Numéro d'article: 65236 - Dernière mise à jour: mercredi 5 février 2014 - Version: 2.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft FORTRAN Compiler 4.0
  • Microsoft FORTRAN Compiler 4.01
  • Microsoft FORTRAN Compiler 4.1
  • Microsoft FORTRAN Compiler 4.0
  • Microsoft FORTRAN Compiler 4.01
  • Microsoft FORTRAN Compiler 4.1
Mots-clés : 
kbnosurvey kbarchive kbmt KB65236 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 65236
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com