PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : var1 = "" was steht dahinter



mat-sche
01.12.2010, 21:15
Hi Ihr's,

ich habe in meine Code einen Ausdruck:
var1 = ""
und var1 ist:
dim var1(8) As Byte At var2 Overlay

was wird nun mit = "" bewirkt?
Kann mir jemand mal auf die Sprünge helfen?

Danke & Gruß

Jaecko
01.12.2010, 23:00
Var1 wird hier ein leerer String, "", zugewiesen.
Nur wunderts mich, warum das dann ein Byte-Array und kein String ist.
Was ist Var2 für ein Typ? Auch Byte-Array oder ein String?

PicNick
02.12.2010, 10:27
Konkret schreibt er an die Adresse von "var1" ein Byte mit &H00
Wegen "Overlay" auch in das erste Byte von "var1"

Je nachdem, als was "var1" definiert ist, hat das nun recht unterschiedliche Bedeutungen.
WORD, INTEGER, FLOAT, LONG, DOUBLE werden ins Unleserliche verstümmelt.

Da aber meistens "STRING" auf ein CHAR-Array "overlayed" wird (oer umgekehrt) sag ich dir gleich: bei der CHAR-Array wird NUR das erste Byte auf null gesetzt.

Es wird NICHT das ganze Array gelöscht !!!!!

mat-sche
02.12.2010, 12:29
Hi,

Danke für Eure Antworten! Richtig ist, dass Var1 ein String ist. Mir war nur nicht der Ausdruck = "" geläufig. Und gut zu wissen auch, dass nur das erste Byte gelöscht wird.

Grüße

for_ro
02.12.2010, 12:46
Ihr meint sicherlich beide, dass var2 ein String ist. Var1 ist ein Array aus 8 Bytes, das steht oben.

Ich würde mir allerdings vom Compiler wünschen, das er die Zuweisung
Var1 = ""
zurückweist, weil man einem Byte keinen String zuweisen kann und außerdem Var1 ein Array ist und man dem nur auf einen bestimmten Index etwas zuweisen darf.
Richtig wäre daher und hätte beides den gleichen Effekt
Var(1) = 0 oder
Var2 = ""

PicNick
02.12.2010, 12:51
Ich würde mir allerdings vom Compiler wünschen...

Ich glaub, dieser Wunsch wird er dir erfüllen :-)
Du hast recht, man ist in die Irre gegangen