AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Whats that ?!?!??!? DELPHI spinnt !!

Ein Thema von stoxx · begonnen am 4. Mär 2004 · letzter Beitrag vom 4. Mär 2004
Antwort Antwort
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#1

Whats that ?!?!??!? DELPHI spinnt !!

  Alt 4. Mär 2004, 01:50
Man möge sich mal diesen Text eins zu eins kopieren !
(Darf ich dann bei der Umstellung auf 64 Bit Technik immer mit solchen Problemen rechnen ??)
Was ist die Begründung für solch unerklärliches Verhalten ?
(Man möge auch mal word, byte oder sonstwas einsetzen)

Delphi-Quellcode:
procedure TFormTS.Button1Click(Sender: TObject);
var sl : TSTringlist;
    i : cardinal;
begin
 sl := Tstringlist.Create;
 for i := 0 to sl.Count -1 do
 begin
   showmessage('Hähhh ?!?! Warum bin ich hier ? ' + inttostr(i));
 end;
 sl.Free;
end;
[edit=r_kerber] Mfg, r_kerber[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Whats that ?!?!??!? DELPHI spinnt !!

  Alt 4. Mär 2004, 02:33
Kompilier das mal und lass es laufen:
Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils, Classes;

var
  sl : TSTringlist;
  i : Byte;

begin
 sl := Tstringlist.Create;
 for i := 0 to sl.Count - 1 do
 begin
   writeln(i);
 end;
 sl.Free;
 readln;
end.
Die Schleife läuft von 0 bis -1. Wo ist da dein Problem? Da i erst -1 wird, wenn es zu einen Überlauf kommt, läuft die Schleife eben bis dahin. In diesem Fall bis 255.

Und wähl bitte einen aussagekräftigeren Titel.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Whats that ?!?!??!? DELPHI spinnt !!

  Alt 4. Mär 2004, 07:27
Hallo,
interessanter Fall. Jetzt arbeite ich schon so lange mit Pascal/Delphi, aber
das ist mir noch nicht passiert.
Das liegt daran, dass ich schon immer Schleifenzähler als Integer deklariert habe.
Eigentlich ohne wirklich darüber nachzudenken.
Integer ist ein Type, der auch negative Werte annehmen darf. Cardinal eben nicht.
Dann läuft das Beispiel auch so wie erwartet. Ist ja auch irgendwie logisch (siehe Luckie's Posting)
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Whats that ?!?!??!? DELPHI spinnt !!

  Alt 4. Mär 2004, 08:09
Ich dachte in Delphi gibst keinen Überlauf

ist echt interresant...
...bei welchen Datentypen ist denn Überlauf möglich?

bei Integer gehts ja nich...

Edit: ..ähh schon gut, Jens ha es ja hingeschrieben, ist ncoh bissel früh glaub ich, gähn
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#5

Re: Whats that ?!?!??!? DELPHI spinnt !!

  Alt 4. Mär 2004, 12:09
Hey, Danke Luckie, auf den Überlauf hätte ich auch alleine kommen können
aber war schon spät ! und ich dachte anfangs, es hätte was mit den unterschiedlichen Datentypen zu tun
(nich genug rumprobiert)
na jut, peinliche Frage
aber wenigstens aufgeklärt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Whats that ?!?!??!? DELPHI spinnt !!

  Alt 4. Mär 2004, 13:38
Auch bei Integers gibt es einen Überlauf, nämlich dann, wenn der Wertebereich des datentyps erschöpft ist. Was du meinst ist, dass es keinen BufferOverflow gibt, weil, wenn man AnsiStrings benutzt der Längenzähler mitgeführt wird, den es unter C/C++ nicht gibt. Da sind Zeichenfolgen Charackter Arrays.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:03 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