Ich habe eine Frage zu Fortran 77 und konnte bisher keine Lösung finden.
Ich versuche, ein Array von Zeichenfolgen wie folgt definiert zu speichern:
character matname(255)*255
Das ist ein Array von 255 Zeichenfolgen der Länge 255.
Später lese ich die Liste der Namen aus einer Datei und setze den Inhalt des Arrays wie folgt:
matname(matcount) = mname
EDIT: Eigentlich mname
Wert ist hartkodiert als mname = 'AIR'
vom Typ character*255
ist er ein Parameter einer Funktion matadd()
was die vorherige Zeile ausführt. Aber das ist nur zum Testen, in Zukunft wird es aus einer Datei gelesen werden.
Später möchte ich es mit ausdrucken:
write(*,*) matname(matidx)
Aber es scheint alle 255 Zeichen zu drucken, es druckt die Zeichenfolge, die ich zugewiesen habe, und eine Menge Müll.
- Das ist also meine Frage, wie kann ich die Länge der gespeicherten Zeichenfolge kennen?
- Sollte ich ein weiteres Feld mit allen Längen anlegen?
- Und wie kann ich die Länge der gelesenen Zeichenfolge ermitteln?
Merci.