![]() |
mehrere variablen gleichzeitig initialisieren
hi weiss jamand von euch wie ich mehrere Variablen gleichzeitig initialisieren kann?
zb variable1,variable2,variable3,variable4 := 0; aber das funzt nicht. muss ich wirklich variable1 := 0; variable2 := 0; variable3 := 0; variable4 := 0; oder geht das ringer? |
Re: mehrere variablen gleichzeitig initialisieren
HI,
nein, du kannst nicht mehr als 1 Variable gleichzeitig beschreiben. Dies geht auch nicht, wenn du globale Variablen initialisierst. Da gibts auch keinen Umweg/Ausweg außer du machst dir ne Funktion, welche dann etwa so aussieht:
Delphi-Quellcode:
Ob das aber geht, oder wie es geht, wirst du uns dann mitteilen dürfen.
Procedure Init(Vars: array of var);
var i: Integer; begin for I := Low(Vars) to High(Vars) do Pointer(Vars[i]) := 0; end; Bernhard |
Re: mehrere variablen gleichzeitig initialisieren
wenn diese Variablen in einem gemeinsamen Speicherbereich (z.B. in einem Array oder Record gekapselt),
dann ginge es schon ZeroMemory, FillChar oder was einem sonst noch Beliebt. |
Re: mehrere variablen gleichzeitig initialisieren
das mit dem gemeinsamen Speicherbereich hatte ich auch im Kopf, aber das ist so unwahrscheinlich, dass mehr als 2 Variablen direkt hintereinander im Speicher liegen. Wie sieht das mit meiner Prozedur aus? Hab grad kein Delphi zur Hand
Bernhard |
Re: mehrere variablen gleichzeitig initialisieren
Zitat:
|
Re: mehrere variablen gleichzeitig initialisieren
danke für die superschnelle Antwort der code von rollstuhlfahrer code funktioniert leider nicht.
hab in etwas umgebaut, funzt auch bis auf : pointer(s) := 0; setzt s='' ich würde aber gerne den variablenname der in der variable s (string) steht auf 0 setzen. ps :var geht nicht und :vars auchnicht. :pale: |
Re: mehrere variablen gleichzeitig initialisieren
Zitat:
|
Re: mehrere variablen gleichzeitig initialisieren
Man kann höchstens einige Eiganarten von Delphi ausnutzen, also wenn die Variablen "zufällig" an einer passenden Position liegen.
![]() |
Re: mehrere variablen gleichzeitig initialisieren
Obwohl, die Benutzeung von Implemnetierungsdetails gefährlich sein kann, wie man bei der Unicode-Umstellung bei D2009 gesehen hat.
|
Re: mehrere variablen gleichzeitig initialisieren
Wenn man sowas ordentlich genutzt hat, dann gab es keine Probleme.
Also, wenn man kein String/Char/PChar/PString mit AnsiString/AnsiChar/PAnsiChar/PAnsiString vermischt hatte. |
Re: mehrere variablen gleichzeitig initialisieren
Ich meinte eher dass man davon ausgegangen ist, dass ein Zeichen 1 Byte groß ist und dann auf die Nase gefallen ist, weil es jetzt nicht mehr der Fall ist.
|
Re: mehrere variablen gleichzeitig initialisieren
Ich sagte ja, wenn man dieses richtig behandelt hätte, dann hätte es kaum Probleme gegeben.
(die gab es nur, weil Embarcadero so bescheuert gearbeitet hat und Funktionen wie AnsiUpperCase und den normalen Units nur UnicodeStrings handeln und nicht ANSI, wie es vermuten läßt) AnsiString/AnsiChar war und blieb auch 1 Byte. Daß der String/Char sich eventuell mal ändern konnte, daß war doch eigentlich bekannt. Und wo wir "kurz" vor UCS4 stehn, sollte hoffentlich auch keiner denken, daß Unicode immer nur 2 Byte ist. Genauso wie mit dem Integer, welcher als "veränderlich" definiert ist, im Gegensatz zum LongInt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz