Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi ungleich nil (https://www.delphipraxis.net/113266-ungleich-nil.html)

Cosamia 5. Mai 2008 14:05


ungleich nil
 
ich mal wieder.

Mein Programm schmiert ab, wenn ein Attribut kein Value hat, und ich mit einer Schleife alle Attribute durchlaufe und in eine Listbox schreibe.

Um dies zu verhindern wollte ich das vorher abfangen, aber es klappt irgendwie nicht.

Delphi-Quellcode:
if (xnAttr.NodeValue <> Nil) then begin
Fehler : ungleiche Typen

3_of_8 5. Mai 2008 14:09

Re: ungleich nil
 
Welchen Typ hat den NodeValue?

Klaus01 5. Mai 2008 14:09

Re: ungleich nil
 
Hallo,

geht es vielleicht mit:
Delphi-Quellcode:
 if assigned(xnAttr.NodeValue) then
?
[edit] das wird auch nicht funktionieren, das assigned auch auf nil prüft, sorry [/edit]

Grüße
Klaus

SirThornberry 5. Mai 2008 14:11

Re: ungleich nil
 
@Klaus: Wohl kaum weil Assigned nichts anderes macht als auf <>nil zu überprüfen.

Cosamia 5. Mai 2008 14:16

Re: ungleich nil
 
Zitat:

Zitat von Klaus01
Hallo,

geht es vielleicht mit:
Delphi-Quellcode:
 if assigned(xnAttr.NodeValue) then
?
[edit] das wird auch nicht funktionieren, das assigned auch auf nil prüft, sorry [/edit]

Grüße
Klaus

Nein, dass funzt auch nicht.

xnAttr ist ein IXMLNode

spaxxn 5. Mai 2008 14:18

Re: ungleich nil
 
Delphi-Quellcode:
if assigned(xnAttr.NodeValue) then
wenn die Value ein String ist, was ich annehme, kann das nicht klappen :)

Delphi-Quellcode:
if assigned(xnAttr) then
probier das mal

Cosamia 5. Mai 2008 14:21

Re: ungleich nil
 
Zitat:

Zitat von spaxxn
Delphi-Quellcode:
if assigned(xnAttr.NodeValue) then
wenn die Value ein String ist, was ich annehme, kann das nicht klappen :)

Delphi-Quellcode:
if assigned(xnAttr) then
probier das mal

Das funzt zwar, erfüllt aber leider nicht den Zweck. Ich will ja eben abfangen wenn der Value gleich NIL ist.

Oder mache ich mit NIL was falsch?

Fehlermeldung lautet beim parsen :

Variante des Typs Null kann nicht in Typ String konvertiert werden.

FAlter 5. Mai 2008 14:23

Re: ungleich nil
 
Hi,

bei Varianten:

Delphi-Quellcode:
if IsNotAssigned = Unassigned then
  ShowMessage('Unassigned');
if VarIsNull(IsNotAssigned) then
  ShowMessage('Null');
[edit] In deinem Teil wohl Delphi-Referenz durchsuchenVarIsNull, denn die Variante scheint den Wert Null zu haben. [/edit]

Mfg
FAlter

Luckie 5. Mai 2008 14:25

Re: ungleich nil
 
Zitat:

Zitat von Cosamia
aber es klappt irgendwie nicht.

Ich bin mir ganz sicher, das aller erste, was mein Kind lernen wird, ist verwertbare Fehlerbeschreibungen zu liefern.

"Klappt nicht."
"Funzt nicht."
"Geht nicht."
Was soll man damit anfangen? :wall:

Es wäre extrem hilfreich zu erfahren, wie sich der Fehler äußert und / oder was für eine Fehlermeldung der Compiler ausgibt.

Cosamia 5. Mai 2008 14:27

Re: ungleich nil
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Cosamia
aber es klappt irgendwie nicht.

Ich bin mir ganz sicher, das aller erste, was mein Kind lernen wird, ist verwertbare Fehlerbeschreibungen zu liefern.

"Klappt nicht."
"Funzt nicht."
"Geht nicht."
Was soll man damit anfangen? :wall:

Es wäre extrem hilfreich zu erfahren, wie sich der Fehler äußert und / oder was für eine Fehlermeldung der Compiler ausgibt.

Hast ja recht.

FEHLERMELDUNG BEIM PARSEN:

Variante des Typs (Null) kann nicht in Typ (String) konvertiert werden.

Fehler taucht bei der Codezeile auf:

Delphi-Quellcode:
nodesubmit := xnAttr.NodeName +' = ' +xnAttr.NodeValue;

spaxxn 5. Mai 2008 14:28

Re: ungleich nil
 
NodeValue ist also ein String... oder nicht?
Delphi-Quellcode:
if xnAttr.NodeValue <> '' then
Wenn der Knoten nicht nil ist, kann der String höchstens leer sein!

Sag doch mal kurz welchen Typ NodeValue hat...

Edit: Das hat dann ja schon wieder gar nix mit dem zu tun, was du erfragt hast :P

FAlter 5. Mai 2008 14:29

Re: ungleich nil
 
Hi,

Herr Doktor, Herr Doktor, alle ignorieren mich.
Der nächste Bitte.

Hast du es denn schon mit VarIsNull probiert?

[edit] @spaxxn: Nein, es ist Variant (siehe Fehlermeldung), und bei der Stringverknüpfung wird diese in String umgewandelt, was fehlschlägt.[/edit]

Mfg
FAlter

Luckie 5. Mai 2008 14:30

Re: ungleich nil
 
Zitat:

Zitat von Cosamia
Variante des Typs (Null) kann nicht in Typ (String) konvertiert werden.

Fehler taucht bei der Codezeile auf:

Delphi-Quellcode:
nodesubmit := xnAttr.NodeName +' = ' +xnAttr.NodeValue;

Ist NodeValue eventuell ein Zeiger auf ein Objekt oder Record, welches mit dem Knoten abgespeichert wurde? Wenn ja wie sehen die hinterlegten Daten aus?

Cosamia 5. Mai 2008 14:31

Re: ungleich nil
 
Nodevalue sollte ein String sein (meine Vermutung)

Delphi-Quellcode:
<> ''
nimmt er nicht an.

spaxxn 5. Mai 2008 14:33

Re: ungleich nil
 
Ist es ein String, ein Objekt oder ein Record? Oder gar ein Variant? Jaja Falter, ich ignoriere dich nit :P

Das müssten wir schon wissen :)

Cosamia 5. Mai 2008 14:33

Re: ungleich nil
 
Zitat:

Zitat von spaxxn
Ist es ein String, ein Objekt oder ein Record?

Das müssten wir schon wissen :)

Gibt mit jemand ein Tip wie ich das erkennen kann? :oops:

FAlter 5. Mai 2008 14:34

Re: ungleich nil
 
Hi,

ich fühl mich so ignoriert. :cry: Schon #8 probiert? Und es kann nur eine Variante sein, sonst käme eine andere Meldung.

Mfg
FAlter

spaxxn 5. Mai 2008 14:35

Re: ungleich nil
 
Klick mal im Quelltext mit der rechten Maustaste auf IXMLNode und dann klicke auf Deklaration suchen.

Cosamia 5. Mai 2008 14:35

Re: ungleich nil
 
Zitat:

Zitat von FAlter
Hi,

ich fühl mich so ignoriert. :cry: Schon #8 probiert? Und es kann nur eine Variante sein, sonst käme eine andere Meldung.

Mfg
FAlter

ich probiere es gleich mal aus.

spaxxn 5. Mai 2008 14:36

Re: ungleich nil
 
Musst die Unit Variants dafür einbinden...

Cosamia 5. Mai 2008 14:43

Re: ungleich nil
 
Dank euch. Es funtzt. :bouncing4:

Mit Varisnull ist alles in Butter.

spaxxn 5. Mai 2008 14:44

Re: ungleich nil
 
Da ist der FAlter ja nun zur Kenntnis genommen worden :P

FAlter 5. Mai 2008 14:47

Re: ungleich nil
 
Hi,

:bounce1: Jetzt gehts mir wieder gut. :bounce1:

Mfg
FAlter

DeddyH 5. Mai 2008 17:10

Re: ungleich nil
 
Hat doch nur 22 Posts gedauert :lol:

Alex2.2 26. Aug 2008 11:22

Re: ungleich nil
 
Danke nebenbei,
war auch eines meiner Probleme.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz