Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Das Wort zum Sonntag

Das Wort zum Sonntag
24.02.2008 17:26:01
Nepumuk
Hallo an Alle,
nachdem ich das immer wieder sehe, muss ich das mal ansprechen.
Dim ByI As Byte, ByX As Byte

Rows(ByI) .....
Columns(ByI) .....
Cells(ByI, ByX) .....

Das bringt nix.
Ok, an Stelle von 4 Byte für einen Long-Datentyp benötigt man anscheinend nur 1 Byte.
Toll 3 Byte gespart. Aber bei 512 Megabyte = 536.870.912 Byte Stackframe pro geöffneter Excelmappe spielen die 3 Byte nun wirklich keine große Rolle.
Was viel entscheidender ist, die Rows -, Columns- und Cells - Eigenschaft des Range - Objektes verlangt als numerischen Wert eine Zahl vom Typ Long. Was passiert nun, wenn ich dem eine Zahl im Byte-Format gebe?
Der Datentyp wird automatisch in einen Typ Long konvertiert.
Dazu wird der Byte-Wert in einen neuen Speicherbereich geschrieben, welcher das gewünschte 4 Byte Format hat. Also nix gespart, sondern sogar 1 Byte zusätzlich verbraten.
Außerdem kostet es natürlich etwas Zeit den Speicher zu reservieren, und den Wert im richtigen Format reinzuschreiben.
Das mag ja alles kleinlich erscheinen, da man als User von der ganzen Sache überhaupt nichts mitbekommt und auch der zusätzliche Zeitaufwand ist eigentlich minimal (ich schätz mal weniger als eine Sekunde wenn ich das 1.000.000mal mache). Aber ich hab halt mit Assembler angefangen und da gab’s keine automatische Konvertierung, sondern einen Programmabsturz wenn man auch nur ein Byte daneben lag.
Gruß
Nepumuk

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Das Wort zum Sonntag
24.02.2008 19:02:00
Herbert
Die Flöhe und die Wanzen
gehören auch zum Ganzen.
Goethe

AW: Das Wort zum Sonntag
24.02.2008 19:53:00
Volti
Hallo Nepumuk,
in mir findest Du auf jeden Fall einem Befürworter.
In der heutigen Zeit spielen Zeit und Byte bei vielen anscheinend keine Rolle. Man kauft sich halt 'nen schnellleren Rechner. Ich sehe das nicht so und versuche immer Zeit und Byte beim Programmieren zu reduzieren, sofern ich die Zusammenhänge erkennen kann, denn ich bin nur Hobbyprogger.
Ich habe meine ersten Gehversuche nicht mit Assembler sondern direkt in Maschienensprache zur Programmierung von Einchippern gemacht, da war kAUM Platz und nur 'ne Taktfrequenz von 4,7 MHz und das hängt mir noch heute nach......
Gruß
KH

Anzeige
AW: Das Wort zum Sonntag
24.02.2008 21:28:00
Uduuh
Hallo,
auch wenn es zeitechnisch fast egal ist: Ich finde es gut, wenn man auch mal ein bisschen über Hintergründe aufgeklärt wird.
In XL<2007 reicht ja eigentlich Byte als Datentyp für Spalten, während Long für Zeilen spätestens seit '97 Pflicht ist.
Gruß aus’m Pott und Danke Max
Udo

AW: Das Wort zum Sonntag
24.02.2008 22:01:00
Renee
Hi Nepumuk,
Absolut einverstanden. Vielleicht sollte erwähnt werden, das ein Druck auf die Hilfetaste im VBA Editor oder das Benutzen des Objekt-Explorers von vielen VBA-Beginnern viel mehr genutzt werden müsste. Dort wird praktisch immer auf die erwarteten Datentypen verwiesen.
GreetZ Renée
P.S. ...Programmabsturz wenn man auch nur ein Byte daneben lag.
Meine Progis stürzen meist schon ab, wenn ich nur ein Bit verkehrt rum hab... ;-)

Anzeige
AW: Wobei Integer mehr VBA-Aufwand...
25.02.2008 01:11:12
Luc:-?
...verursachen soll als Long, Udo... ;-)
Ansonsten kann ich das Problem durchaus nachvollziehen (hatte noch mit Zahlencodes als Befehle pgmt, auch in Maschinensprache, aber dann kam gleich PL/1 - lange her!), ist aber bei höheren PgmSprachen wirklich nicht mehr relevant. Da kommt's eher auf die Einhaltung der Syntaxregeln an - und das gehört dazu!
Gruß Luc :-?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige