Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   leere Variable (https://www.delphipraxis.net/142901-leere-variable.html)

Dellphi 5. Nov 2009 19:15


leere Variable
 
Hallo!

kann ich bei Delphi5, Programmiersprache Pascal eine Variable leer deklarieren?
Dies wäre sehr gut für mein Programm!

Ich will die Variable eben nichtals 0 definieren, sondern leer!

Vielen Dank im Voraus

Teekeks 5. Nov 2009 19:18

Re: leere Variable
 
Wie wäre es mit
Delphi-Quellcode:
var i:integer;
{...}
@i:=nil;
(keine ahnung ob das auch so funzt...

mkinzler 5. Nov 2009 19:19

Re: leere Variable
 
Bei Zeigern wäre es NIL, für andere Variablen gibt es keinen solchen Wert

Dellphi 5. Nov 2009 19:22

Re: leere Variable
 
Ich habe vergessen zu erwähnen, dass es eine STRING Variable ist.
Nil klappt leider nicht!
Vielen Dank

Teekeks 5. Nov 2009 19:23

Re: leere Variable
 
bei string:
Delphi-Quellcode:
var str:string='';

mkinzler 5. Nov 2009 19:24

Re: leere Variable
 
Eim String ist auch kein Zeiger. Bei einem String würde ich '' nehmen

Dellphi 5. Nov 2009 19:34

Re: leere Variable
 
Es werden bei mir wenn ich schreibe
Delphi-Quellcode:
variable1:=''
Real und String als incompatible Typen angezeigt
Vielen DAnk

mkinzler 5. Nov 2009 19:36

Re: leere Variable
 
Wie gesagt gibt es keinen Wert für leer für alle Variabentypen, sondern ist eine Interpretationssache.
Bei Integer könnte es 0 oder -1 sein

Namenloser 5. Nov 2009 19:38

Re: leere Variable
 
Zitat:

Zitat von Dellphi
Es werden bei mir wenn ich schreibe
Delphi-Quellcode:
variable1:=''
Real und String als incompatible Typen angezeigt
Vielen DAnk

Bei einer Gleitkomma-Variable könntest du den Wert auf NAN (not-a-number) setzen. Zum Überprüfen des Wertes solltest du die Funktion IsNAN aus der Unit math benutzen.
Delphi-Quellcode:
var
  myvar: double;
begin
  myvar := NAN;
  if IsNAN(myvar) then
    showmessage('leer');
end;

Dellphi 5. Nov 2009 19:53

Re: leere Variable
 
Dies mit NAN klappt leider nicht, es wird bei mir angegeben: NAN=undefinierter Bezeichner
Vielen Dank!

mkinzler 5. Nov 2009 19:55

Re: leere Variable
 
Hast du die Unit Math eingebunden?

Dellphi 5. Nov 2009 20:01

Re: leere Variable
 
jetzt kommt, nach einbinden von Math in die Unit wieder das Signal: Inkompatible Typen String und Extended

Matze 5. Nov 2009 20:01

Re: leere Variable
 
Nun bin ich neugierig geworden. NAN ist folgendermaßen definiert:

Delphi-Quellcode:
const
  NaN = 0.0 / 0.0;
Wieso lässt sich das denn compilieren/ausführen? :gruebel:

PS: Sorry, dass es eher OT ist.
PPS: Vielleicht gibt's das noch nicht in Delphu 5

Hawkeye219 5. Nov 2009 20:02

Re: leere Variable
 
Herzlich willkommen in der Delphi-PRAXiS, Dellphi!

Falls du dich nicht für einen Datentypen entscheiden möchtest oder kannst, dann ist vielleicht ein Variant ganz nützlich:

Delphi-Quellcode:
var
  V: Variant;

  procedure _Dump;
  begin
    if VarIsEmpty(V) then
      ShowMessage ('empty')
    else
      ShowMessage ('not empty: ' + VarToStr(V));
  end;

begin
  V := 42;
  _Dump;

  V := 3.1415;
  _Dump;

  V := 'x';
  _Dump;

  V := '';
  _Dump;

  VarClear (V);
  _Dump;
end;
NAN wurde übrigens erst mit Delphi 6 eingeführt...

Gruß Hawkeye

mkinzler 5. Nov 2009 20:02

Re: leere Variable
 
Und bei welchem Code.

Namenloser 5. Nov 2009 20:05

Re: leere Variable
 
Zitat:

Zitat von Dellphi
jetzt kommt, nach einbinden von Math in die Unit wieder das Signal: Inkompatible Typen String und Extended

Wie ich schon gesagt habe, gibt es NAN nur für Gleitkommazahlen. Eine allgemeine Lösung für alle Variablen typen, falls du das suchst, gibt es nicht. Allerhöchstens könntest du noch Variants verwenden, diese besitzen glaube ich eine Möglichkeit den Wert "leer" anzunehmen. Oder du musst halt eine zusätzliche Boolean-Variable verwenden (ggf. in einem Record).

[edit]
Oh, was zum... so viele neue Antworten, aber kein Kasten :shock:
[/edit]

sirius 5. Nov 2009 20:42

Re: leere Variable
 
Zitat:

Zitat von Matze
Wieso lässt sich das denn compilieren/ausführen? :gruebel:

Wieso nicht?

Matze 5. Nov 2009 20:59

Re: leere Variable
 
Ich hätte eine Meldung bzgl. Division durch Null erwartet. Aber vielleicht denke ich zu beschränkt.

Luckie 5. Nov 2009 21:00

Re: leere Variable
 
Also was für ein Datentyp ist es denn jetzt? Ein String oder eine Real?

isilive 5. Nov 2009 21:40

Re: leere Variable
 
Zitat:

Zitat von Dellphi
Es werden bei mir wenn ich schreibe
Delphi-Quellcode:
variable1:=''
Real und String als incompatible Typen angezeigt
Vielen DAnk

Kann es sein dass du 'Variable1' nicht als String definiert hast?
Zeig mal deinen kompletten Quellcode.
Was möchtest du denn eigentlich damit erreichen, mir ist noch nie ein Fall untergekommen in dem ein String='' oder i:=0 nicht gereicht hätte. Vielleicht ist ein Flag (boolsche Variable) das was du noch zusätzlich brauchst...

Dellphi 7. Nov 2009 16:05

Re: leere Variable
 
Hey, ch habe as problem anderwitig gelöst, vielen Dank trotzdem!

Namenloser 7. Nov 2009 16:11

Re: leere Variable
 
Zitat:

Zitat von Matze
Ich hätte eine Meldung bzgl. Division durch Null erwartet.

Das hängt doch von den FPU-Flags ab, oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:13 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