Lesen einer Zeichenkette unbekannter Länge

Ich wurden beauftragt mit dem schreiben einer Fortran-95-Programm auf das Lesen von Eingabezeichen aus einer Datei, und dann (beginnen mit) einfach spucken es wieder heraus.
Der schwierige Teil ist, dass diese Zeilen von input sind von unterschiedlicher Länge (Länge nicht angegeben) und es kann eine beliebige Anzahl von Zeilen innerhalb der Datei.

Ich verwendet habe,

    do
      read( 1, *, iostat = IO ) DNA    ! reads to EOF -- GOOD!!
      if ( IO < 0 ) exit               ! if EOF is reached, exit do
      I = I + 1
      NumRec = I                       ! used later for total no. of records
      allocate( Seq(I) )
      Seq(I) = DNA
      print*, I, Seq(I)
      X = Len_Trim( Seq(I) )           ! length of individual sequence
      print*, 'Sequence size: ', X
      print*
    end do

Jedoch meine anfänglichen Aussagen-Liste

    character(100), dimension(:), allocatable :: Seq
    character(100)  DNA

und die entsprechenden ganzen zahlen etc.

Ich denke, was ich verlange ist, wenn es irgendeinen Weg gibt, um NICHT die Größe der Zeichenketten in der ersten Instanz. Sagen, ich habe einen DNA-Strang, die 200+ Zeichen, und dann noch nur 25, gibt es eine Möglichkeit, dass das Programm nur Lesen können, was da ist und nicht brauchen, um alle zusätzlichen Leerzeichen? Kann das getan werden, ohne die Verwendung len_trim, da kann es nicht sein, auf die in der Erklärung Aussagen?

  • Es gibt einen Unterschied zwischen ein wenig Lesen einer Zeile (in Fortran-Terminologie - ein Rekord), machen einige Verarbeitung auf das bisschen, lese ein bisschen mehr auf der gleichen Linie, - Verarbeitung, bit, usw., im Gegensatz zum Lesen in die komplette Linie und dann machen einige Verarbeitung auf, dass die komplette Zeile (einem Dritten Fall liest die gesamte Datei und dann die Verarbeitung der gesamten Datei). Die erste ist leicht in Fortran 95 - Verwendung des nicht-voran-Eingang. Das zweite ist ... ein wenig chaotisch. Was wollen Sie? Beide sind leicht in Fortran 2003 - muss man sich an F95?
  • Leider habe ich nur Zugriff auf f95, wie ich bin mit meinen Vorgesetzten computer/software etc. Natürlich die einfachen ist vorzuziehen, aber vielleicht geben Sie mir beide? Danke!
InformationsquelleAutor | 2013-02-08
Schreibe einen Kommentar