abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
Programmierung
Alles über Programmierung in GDL und Python

String(Text) Variable erforderlich!

Bernhard Binder
Graphisoft Partner
Graphisoft Partner
Soda liebe GDL-Gemeinde, wieder ein Problem!

Wenn ich
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">dim txt [1000]
txt[1]="Hallo"
xx=STRSUB(txt[1],1,3)verwende, dann funktioniert das wunderbar. (Ich weiss, der Code macht so alleine gesehen keinen Sinn!)

Wenn ich aber Text aus eine externen Datei lesen will mit:
</font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">Code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">dim txt [1000]

ch= OPEN ("TEXT", "datei", "SEPARATOR='\n', MODE=RO, LIBRARY")
nr=INPUT (ch,1,1,txt[1])
close ch

xx=STRSUB(txt[1],1,10)Dann kommt immer die Meldung, dass eine String(Text)-Variable erforderlich ist.

habe in der Externen Datei natürlich einen Text. Hab's auch schon mit " und ' probiert.

Den Wert mit PRINT oder TEXT2 ausgeben ist übrigens kein Problem!

Hat wer einen guten Rat? :confused:
AC4.5-AC27 AUT, GER, INT
www.a-null.com
2 ANTWORTEN 2
Anonymous
Nicht anwendbar
Das Einlesen aus Datei ist immer schwierig. Jetzt könnte man philosophieren über Sinn und Nutzen von zwangsweisen Variablendeklarationen, aber das hilft dir jetzt nicht weiter.
AC hat die nette Angwohnheit, daß Variablen beliebige Typen haben können. Sogar innerhalb eines Arrays. Diese können unter besonderen Umständen sogar im Verlauf eines Skripts verändert werden. Die Typen, nicht der Wert.
AFAIK geht das aber nicht beim Lesen aus Dateien per INPUT. Probiers mal mit einem vorangestellten

txt[1]="Ich bin leer"

Danach kannst Du prüfen, was reinkam:

if vartype (txt[1])=2 then
print "Das war Text:"+txt[1]
endif
if vartype (txt[1])=1 then
print "Das war eine Zahl:"+str("%.4",txt[1])
endif

Tippfehler nicht ausgeschlossen. Schau mal im Handbuch nach, ob vartype=2 tatsächlich 'string' ist, da ich nur das 6.0er Handbuch hier habe und mein Speicher gerade nicht für den Reader ausreicht (Mac 😞 ).
Anonymous
Nicht anwendbar
Ich habe das auch schon so gemacht, daß ich den Input zunächst einer dummy-Variablen zugewiesen habe und dann per vartype entschieden habe, wohin der Wert der dummy-Variablen dann übergeben wird. Da ist viel Probieren angesagt. Denn auch die Zeilenenden/Dateienden liefern einen Wert zurück, der dann eben nicht mehr 'string' ist.

P.S. Hat das mit deinem Counter geklappt?

[ 15. April 2004, 14:19: Beitrag editiert von: Lars ]