Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > XProfan > Anregungen & Bugreports

Anregungen & Bugreports Für Vorschläge an den Autor Roland und neue XProfan-Versionen

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag TabCtrl
Aufrufe: 108, Antworten: 10
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 43, Antworten: 3
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50823, Antworten: 1388
Gehe zum ersten neuen Beitrag Dateien lassen sich nicht...
Aufrufe: 8, Antworten: 2
Gehe zum ersten neuen Beitrag Suche Programm um Werbung zu...
Aufrufe: 39, Antworten: 2
Gehe zum ersten neuen Beitrag McAfee AVERT Stinger...
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag Sticky Password 6.0.2...
Aufrufe: 3, Antworten: 0
Gehe zum ersten neuen Beitrag Sicher Löschen 3.19 (Windows)
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag Cleaning Suite 2.1 (Windows)
Aufrufe: 2, Antworten: 0
Gehe zum ersten neuen Beitrag GoodSync 9.2.0.0 (Windows,...
Aufrufe: 2, Antworten: 0
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 07.03.2011, 16:48   #1 (Direktlink)
Erfolgreich angemeldet
 
Registriert seit: 28.02.2011
Beiträge: 9
Standard Merkwürdigkeit beim Speichern negativer Integer in Objekten

Hallo,

wäre es nicht sinnvoll, im Forum mal eine "Eventuellen Bug gefunden"-Rubrik einzurichten?
Ich finde das folgende Posting ebenso wie mein vorheriges zu GetFDate$ bei "Anregungen" eigentlich etwas deplatziert.
Gut wäre auch irgendwo eine Liste bereits von Benutzern gemeldeter Bugs für eine bestimmte Release, damit nicht immer wieder die selben Macken gemeldet werden.

So, zumindestens das waren Anregungen

Im folgenden Quelltext wird etwas demonstriert, worüber ich schon vor einiger Zeit gestolpert bin, was aber in Version 11.2a immer noch so abläuft.

--------------------
'Wohl so nicht beabsichtigter Effekt bei der Speicherung von Integervariablen mit negativem Vorzeichen in Objekten

----------------------------------
class Test = int%,longint&,Test@

proc Test.Test
parameters i%,l&
print "Test.Test: übergebene Parameter i% l&",i%,l&
.int% = i%
.longint& = l&
print "Test.Test: Werte von .int% .longint& nach Zuweisung der Parameter",.int%,.longint&
var li& = .int%
print "Test.Test: an Longint übergebener int-Wert",li&
endproc

declare int%

proc Test
parameters i%
int% = i%
print "\nTest: übergebener Parameter i%",i%
print "Test: Wert der Variablen int% nach Zuweisung des Parameters",int%
waitkey
endproc

declare t#
t# = new (Test,-10,-10)
Test(-10)
dispose t#
waitkey
end

-------------------------------

Bildschirmausgabe bei mir:

Test.Test: übergebene Parameter i% l& -10 -10
Test.Test: Werte von .int% .longint& nach Zuweisung der Parameter 65526 -10
Test.Test: an Longint übergebener int-Wert 65526

Test: übergebener Parameter i% -10
Test: Wert der Variablen int% nach Zuweisung des Parameters -10

Ja, mir ist bewußt, daß 65526 = 2**16 - 10 ist!

Gruß
Karl
KKraft ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 07.03.2011, 17:49   #2 (Direktlink)
RGH
Forenmaskottchen
 
Benutzerbild von RGH
 
Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
Standard

Hallo Karl,

darf ich aus der Hilfe zu den Struktur/Klassen-Attributen mit % zitieren (in der Einführung zum Thema Strukturen):
Zitat:
Strukturvariablen %: Alle ShortInt und andere zwei Byte (16 Bit) große Elemente werden als Integer (%) dargestellt.
Hinweis: Zahlbereich von 0 bis 65535.
Gruß
Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c
AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c


http://www.xprofan.de
RGH ist offline   Mit Zitat antworten
Alt 07.03.2011, 18:22   #3 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 721
Standard

Ist aber sehr irreführend
Ein Variablentyp Word wäre hier logischer. Integer werden ja vor allem auch
in einer zukünftigen 64-Bit Version wichtig, mal 32-bit mal 64-bit (gerade in
Strukturen!).

Ist also kein Bug, aber ein zu ändernder Zustand

Vor allem sind Integer ja auch der Typ für Controls usw., wer seinen Code
also schon jetzt auf 64-Bit vorbereiten möchte, nimmt doch besser Integer
für Handle, Objekte und Pointer.
__________________
Gruß Thomas

Wenn mir früher jemand gesagt hätte, ich würde
freiwillig eine Wanze mit mir herum tragen und sie
auch noch selbst aufladen, hätte ich laut gelacht.

Heute habe ich ein Smartphone.


http://realsource.de
ts-soft ist gerade online   Mit Zitat antworten
Alt 07.03.2011, 18:31   #4 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.090
Standard

Ja, die Größe einer Integer-Zahl richtet sich nach der Bitzahl des ausführenden Systems.
Word = 16 Bit, Long = 32 Bit, Quad = 64 Bit. Aber Integer (INT16/INT32/INT64) = 16 oder 32 oder 64 Bit, je nachdem, auf welchem System das Programm läuft.

Die verschiedenen Windows-Datentypen sind hier aufgelistet: http://msdn.microsoft.com/de-de/libr...=vs.85%29.aspx

Zitat:
wäre es nicht sinnvoll, im Forum mal eine "Eventuellen Bug gefunden"-Rubrik einzurichten?
Ja, so ein Thread kann ich gerne eingerichten. Ein ganzes Forum dafür wird eher nicht lohnen.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.

Geändert von Frabbing (07.03.2011 um 18:41 Uhr)
Frabbing ist gerade online   Mit Zitat antworten
Alt 07.03.2011, 18:58   #5 (Direktlink)
RGH
Forenmaskottchen
 
Benutzerbild von RGH
 
Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
Standard

Ja, der Begriff "Integer" ist hier in der Tat verwirrend, um einen vorzeichenlosen 16-Bit-Wert zu bezeichnen. Hier sollte ich die Hilfe anpassen, und von Word sprechen. Das Attribut einer Struktur/Klasse mit dem % am Ende ist nun mal ein vorzeichenloser 16-Bit-Wert.

Das Ganze ist nicht zu verwechseln mit dem Variablentyp Integer, der beim 32Bit-XProfan natürlich ein vorzeichenbehafteter 32-Bit-Wert ist.

Gruß
Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c
AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c


http://www.xprofan.de
RGH ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 07.03.2011, 19:16   #6 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 721
Standard

Ein Integer-Typ für Strukturen sollte aber trotz allem eingeführt werden,
bevor es eine 64-Bit Version gibt. Man kann zwar zur Zeit Long nehmen,
aber dann muss man später alles umschreiben.

Also mehr als Vorbereitung , um einen späteren Umstieg zu erleichtern.
__________________
Gruß Thomas

Wenn mir früher jemand gesagt hätte, ich würde
freiwillig eine Wanze mit mir herum tragen und sie
auch noch selbst aufladen, hätte ich laut gelacht.

Heute habe ich ein Smartphone.


http://realsource.de
ts-soft ist gerade online   Mit Zitat antworten
Alt 07.03.2011, 20:07   #7 (Direktlink)
Erfolgreich angemeldet
 
Registriert seit: 28.02.2011
Beiträge: 9
Standard

Hallo Roland,

Zitat:
Zitat von RGH Beitrag anzeigen
Ja, der Begriff "Integer" ist hier in der Tat verwirrend, um einen vorzeichenlosen 16-Bit-Wert zu bezeichnen. Hier sollte ich die Hilfe anpassen, und von Word sprechen. Das Attribut einer Struktur/Klasse mit dem % am Ende ist nun mal ein vorzeichenloser 16-Bit-Wert.

Das Ganze ist nicht zu verwechseln mit dem Variablentyp Integer, der beim 32Bit-XProfan natürlich ein vorzeichenbehafteter 32-Bit-Wert ist.

Gruß
Roland
ich finde weniger den Begriff Integer in diesem Zusammenhang verwirrend, als vielmehr die gleichzeitige Verwendung des "%"-Postfix für zwei Datentypen unterschiedlicher Länge und unterschiedlicher Vorzeichenbehandlung.
Vorher ging ich einfach davon aus, daß "%" verläßlich ein Kennzeichen für

"Integervariablen werden, wie in BASIC üblich, durch ein % als Postfix gekennzeichnet.
Integervariablen können in einem 32-Bit-System die gleichen Werte wie Longint-Variablen haben: von etwa -2 Mrd. bis etwas über +2 Mrd.
"
also einen vorzeichenbehafteten Ganzzahltyp mit systemabhängiger Länge ist.

Ich habe kein Problem damit, Integers mit eventuell auch negativen Werten in Objekten in longints abzulegen, wäre aber sehr dafür, genau ein Postfix für einen Typen zu verwenden.

Spricht etwas dagegen, den "unsigned shortint" in Objekten z.B. ein "^" als Kennzeichen anzuhängen und den Compiler meckern zu lassen, wenn eine Variable mit %-Endung in der Klassendefinition auftaucht?

Gruß
Karl
KKraft ist offline   Mit Zitat antworten
Alt 07.03.2011, 21:24   #8 (Direktlink)
RGH
Forenmaskottchen
 
Benutzerbild von RGH
 
Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
Standard

Zitat:
Zitat von KKraft Beitrag anzeigen
Spricht etwas dagegen, den "unsigned shortint" in Objekten z.B. ein "^" als Kennzeichen anzuhängen und den Compiler meckern zu lassen, wenn eine Variable mit %-Endung in der Klassendefinition auftaucht?
In erster Linie, dass es dann nicht mehr kompatibel zu den bisherigen Versionen wäre, denn Strukturen gibt es schon seit vielen Jahren, näherhin XProfan 8.

Auch die anderen Postfixe, bis auf das &, haben bei Struktur-Attributen andere Bedeutungen als bei Variablen. In Srukturen gibt es keine Attribute mit variabler Länge.

Gruß
Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c
AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c


http://www.xprofan.de
RGH ist offline   Mit Zitat antworten
Alt 07.03.2011, 21:33   #9 (Direktlink)
RGH
Forenmaskottchen
 
Benutzerbild von RGH
 
Registriert seit: 08.02.2009
Ort: Nußloch (bei Heidelberg)
Beiträge: 550
Standard

Zitat:
Zitat von ts-soft Beitrag anzeigen
Ein Integer-Typ für Strukturen sollte aber trotz allem eingeführt werden,
bevor es eine 64-Bit Version gibt. Man kann zwar zur Zeit Long nehmen,
aber dann muss man später alles umschreiben.
Es wird gewiss einen 64-Bit-Integer geben müssen. Aber ich denke, dass ich dann für Attribute in Klassen und Strukturen mir dann sowieso ein neues, schlüssiges Konzept ausdenken muss. In X2 waren halt erst einmal die Variablen dran.

Gruß
Roland
__________________
Pentium D 2,8 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon HD5450 1024 MB / Windows 7(32) - XProfan X2.0c
AMD Athlon II X2 2,9 GHz / 3 GB RAM / 500 GB HDD / ATI Radeon 3000 / Windows 7(64) - XProfan X2.0c


http://www.xprofan.de
RGH ist offline   Mit Zitat antworten
Alt 07.03.2011, 21:51   #10 (Direktlink)
Forenmaskottchen
 
Benutzerbild von ts-soft
 
Registriert seit: 16.05.2010
Ort: Berlin
Beiträge: 721
Standard

Zitat:
Zitat von RGH Beitrag anzeigen
Aber ich denke, dass ich dann für Attribute in Klassen und Strukturen mir dann sowieso ein neues, schlüssiges Konzept ausdenken muss.
Ich würde folgende Syntax vorschlagen (für X3?)
Code:
Struct Kunde = Name$(40),Strasse$(40),Ort$(40),Umsatz&,Status%

Struct Kunde = Name(40) As String, \
               Strasse(40) As String, \
               Umsatz As Long, \
               Status As Word
Das As finde ich in diesem Falle besser, als den Type voranzustellen und
ist auch eine häufig anzustreffende Syntax.
__________________
Gruß Thomas

Wenn mir früher jemand gesagt hätte, ich würde
freiwillig eine Wanze mit mir herum tragen und sie
auch noch selbst aufladen, hätte ich laut gelacht.

Heute habe ich ein Smartphone.


http://realsource.de
ts-soft ist gerade online   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 08.03.2011, 12:22   #11 (Direktlink)
Super-Moderator
 
Benutzerbild von Frabbing
 
Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.090
Standard

Zitat:
Ja, so ein Thread kann ich gerne eingerichten. Ein ganzes Forum dafür wird eher nicht lohnen.
Das Forum wurde entsprechend erweitert. Bugreports sind im Grunde ja auch Anregungen.
__________________
Gruß, Frank


Webpage http://frabbing.bplaced.net
mit Freeware - Tools, Spiele und Grafiken.
Frabbing ist gerade online   Mit Zitat antworten
Antwort

  Paules-PC-Forum.de > Programmierung > XProfan > Anregungen & Bugreports

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
64-Bit little-endian Integer-Wert ELeX PHP/MySQL 0 28.05.2007 03:24
Verkette Liste mit Objekten. Der Gast C/C++, Visual C++, Visual C++.NET 2 30.11.2005 18:33
Problem beim Speichern maccus2002 Software - Allgemein 4 17.10.2005 02:03
run time error R6003 - integer divide by 0 Lausbua Windows 95/98/ME/2000/NT 3 19.05.2005 00:00
Bilder als .jpg speichern beim IE 6.0 jk124 Office-Anwendungen 2 09.02.2004 20:22



Alle Zeitangaben in WEZ +2. Es ist jetzt 22:31 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2