Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi strtoint gibt 0 zurück (https://www.delphipraxis.net/140573-strtoint-gibt-0-zurueck.html)

himitsu 21. Sep 2009 12:48

Re: strtoint gibt 0 zurück
 
Delphi-Quellcode:
tag:=strtoint(temptag);
if tag = 0 then ;
oder was ich immer mach .. einfach die variable verwenden, wenn auch nicht ganz so sinnvoll :nerd:
(vor dem IF ist sie nun verwendet und danach gibt's wieder das selbe Problem)

Luckie 21. Sep 2009 12:54

Re: strtoint gibt 0 zurück
 
@hoika: Die ungarische Notation ist mittlerweile überholt und bei typensicheren Sprachen auch überflüssig. Sie macht Variablennamen eigentlich nur unlesbarer. Hinzukommt, wenn ich den Datentyp ändere, muss ich auch die Variablennamen ändern. Und außerdem zeigen einem moderne IDs auch den Datentyp an.

hoika 21. Sep 2009 12:59

Re: strtoint gibt 0 zurück
 
Hallo,

Einsoruch ;)

Bsp
tag

Es gibt ein property Tag.
Vielleicht wird das hier gerade "benutzt".

Und gerade ebend bei den Datenbanken.
Delphi-Quellcode:
var
  Name: String;
begin
  Name:= 'Meier';
  with Query do
  begin
    SQL.Text:= 'Select * From Personal Where Name=:Name';
    ParamByName('Name').AsString:= Name;
    Open;
    try
    finally
      Close;
    end;
  end;
end;
Wer den Fehler findet, bekommt ein Bonbon ;)

Mache ich statt Name ein sName, habe ich kein Problem.
OK, ohne das with gibt es auch keines ;)


Heiko

DeddyH 21. Sep 2009 13:12

Re: strtoint gibt 0 zurück
 
Hatten wir genau dieses Phänomen nicht erst am Wochenende? :mrgreen:

nahpets 21. Sep 2009 13:21

Re: strtoint gibt 0 zurück
 
Zitat:

Zitat von DeddyH
Hatten wir genau dieses Phänomen nicht erst am Wochenende? :mrgreen:

und deshalb benutze ich weiterhin die "veraltete" ungarische Notation. http://de.wikipedia.org/wiki/Ungarische_Notation, dann komme ich mit lokalen Variablen und Attributen von Klassen nie durcheinander.

JPSelter 21. Sep 2009 13:26

Re: strtoint gibt 0 zurück
 
Ich hab "tag" einfach mal in "tagx" umbenannt, bekomme aber wieder nur eine 0. Die sehe ich über den Debugger, habe eine Zeile nach dem strtoint einen Haltepunkt eingefügt. Im String davor steht eindeutig eine '17'.

JPSelter 21. Sep 2009 13:34

Re: strtoint gibt 0 zurück
 
Hmmm jetzt begreife ich gar nichts mehr, denn mit einem eingefügten showmessage klappt es...

a) ohne showmessage, einen Haltepunkt in der Programmzeile NACH dem strtoint, Debugger sagt bei der Variable tag "0"
b) kein Haltepunkt, aber ein showmessage in der Zeile nach dem strtoint, Debugger und das showmessage geben korrekt die "17" aus

Hmmmmm...

DeddyH 21. Sep 2009 13:35

Re: strtoint gibt 0 zurück
 
Vielleicht ist die Zeile wegen anschließender Nichtbenutzung wegoptimiert worden.

himitsu 21. Sep 2009 13:40

Re: strtoint gibt 0 zurück
 
sagte ich doch
und nicht nur vielleicht

alles was in ein Register paßt wird wegoptiomiert, wenn es nicht zufällig irgendwo auf'm Stack liegt
nur Strings, dynamische Arrays und Interfaces werden nicht wegoptiomier, da dort beim END; erst aufgeräumt wird

DeddyH 21. Sep 2009 13:41

Re: strtoint gibt 0 zurück
 
Das hab ich glatt überlesen (sogar 2 mal :shock:)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 Uhr.
Seite 2 von 3     12 3      

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 by Thomas Breitkreuz