Forum: FPGA, VHDL & Co. Beschreibung leerer String


von Matthias F. (flint)


Lesenswert?

Hallo,

ich hab bei meiner Testbench ein Problem mit den Strings gehabt und bin 
beim Nachforschen auf folgendes draufgekommen:

Wenn ich eine line anlege mit einem leeren string, also
1
test_line := new string'("");

dann ist test_line'LOW gleich 1 und test_line'HIGH gleich 0. Es geht 
wohl auch nicht anders, denn ein String (1 to 1) enthält ja schon ein 
Zeichen.

Aber Strings sind als positive range deklariert, insofern darf da gar 
kein 0 sein. Und es wirkt auch nicht sauber, dass der rechte Index bei 
to kleiner ist, als der linke.

Übersehe ich da was oder ist das wirklich ein bisserl ein Blödsinn, was 
da spezifiziert ist?

von Rick Dangerus (Gast)


Lesenswert?

Der Range sollte doch die maximale mögliche Länge des Strings angeben. 
Und da ist eine maximale Länge von 0 eher Quatsch, oder?!

Versuch doch mal Folgendes (ungetestet):
1
constant empty_c : string := "";
2
...
3
test_line := empty_c;

Rick

von Matthias F. (flint)


Lesenswert?

Das Ergebnis ist für einen String das selbe.

Und der leere String ist kein Quatsch, der kann zb auch rauskommen, wenn 
man aus einem File eine Zeile einliest, in der nur ein Newline 
drinsteht.

von Thomas H. (mac4ever)


Lesenswert?

Newline ist aber auch ein bestimmtes Zeichen, also ist der String 
keineswegs leer !

von Matthias F. (flint)


Lesenswert?

Aber ich bekomme ihn von der readline-Procedure ohne Newline, also habe 
ich das Zeichen dann auch nicht im String.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.