vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Projekte und Betatester (VB und VB.NET)
Mein erstes echtes VB.NET Programm ... 
Autor: Legend_X
Datum: 21.06.15 10:53

Man glaubt es kaum, aber vor einiger Zeit hab ich
tatsächlich mein erstes echtes VB.NET Programm
fertiggestellt, nicht zuletzt auch dank der
Tipps, die ich hier im Forum erhalten habe. ;)

Zugegeben, das passt jetzt zwar nicht so ganz
hier ins Forum, aber natürlich will ich daran
auch andere teilhaben lassen... wer es also mal
ausprobieren möchte, findet es hier:

http://www.public.bplaced.net

Und was macht das Programm so Herausragendes? Nun...
es... sortiert Einträge in FAT-Dateisystemen. Na ja.
Damit man z.B. die Songs auf seinem MP3-Player in
der richtigen Reihenfolge hat, oder die Bilder auf
nem digitalen Bilderrahmen. Aber anders als alle
anderen Programme da draußen, die vorgeben das zu
können, verwendet meins dafür keine Tricks wie das
Verschieben von Einträgen in temporäre Ordner, ist
nicht beschränkt auf bestimmte Filetypen oder
Geräte, und hat eine (hoffentlich) übersichtliche
und einfach zu bedienende GUI.

Ok, nicht wirklich was Besonderes, aber für
jemand wie mich, der beruflich absolut NICHTS
mit Computern oder gar Programmieren zu tun hat,
schon relativ viel.

Schreibt doch mal, was ihr davon haltet...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: JangoF
Datum: 21.06.15 11:18

Was bedeutet beim Schreiben "(Simulated)"?

Und bei einem Klick auf ein Unterverzeichnis kommt oft diese Meldung.
Was zum Absturz führt.
Eventuell mal Try/Catch öfter verwenden.


System.OverflowException: Die arithmetische Operation hat einen Überlauf verursacht.
bei FAT_Reader.form_main.SetPointer(Int64 sector)
bei FAT_Reader.form_main.SetPointerToCurrentSector()
bei FAT_Reader.form_main.CreateDirLists(UInt32 starting_cluster)
bei FAT_Reader.form_main.ProcessDirectoryRead(UInt32 starting_cluster)
bei FAT_Reader.form_main.GridView_1_CellMouseDoubleClick(Object sender, DataGridViewCellMouseEventArgs e)
bei System.Windows.Forms.DataGridView.OnCellMouseDoubleClick(DataGridViewCellMouseEventArgs e)
bei System.Windows.Forms.DataGridView.OnMouseDoubleClick(MouseEventArgs e)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.DataGridView.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Geladene Assemblys **************
mscorlib
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
----------------------------------------
FAT_Reader
Assembly-Version: 0.7.458.1.
Win32-Version: 0.7.458.1.
CodeBase: file:///C:/Users/JangoF/Desktop/FAT_Reader.exe.
----------------------------------------
Microsoft.VisualBasic
Assembly-Version: 10.0.0.0.
Win32-Version: 12.0.51209.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
----------------------------------------
System
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34238 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Core
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
----------------------------------------
System.Windows.Forms
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34251 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System.Drawing
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Runtime.Remoting
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34245 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
----------------------------------------
System.Windows.Forms.resources
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
System.Configuration
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
----------------------------------------
System.Xml
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34234 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
mscorlib.resources
Assembly-Version: 4.0.0.0.
Win32-Version: 4.0.30319.34209 built by: FX452RTMGDR.
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
----------------------------------------
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Legend_X
Datum: 21.06.15 18:00

Zitat:

Was bedeutet beim Schreiben "(Simulated)"?

Mein Programm arbeitet mit dem Dateisystem auf
dem Hardware-Level (es liest, bearbeitet und
schreibt Sektoren direkt). Aus Sicherheitsgründen
habe ich Schreibzugriffe daher per Default
abgeschaltet, damit man sozusagen 'testen'
kann, was passiert, wenn man schreiben 'würde'.

Um Daten tatsächlich zu schreiben, setze den
Haken bei 'Settings' - 'Activate Disk Write'.
Das steht übrigens auch mehrfach in meinem
Readme-File zum Programm... bitte lesen, BEVOR
Du Dir evtl. Dein Dateisystem zerschießt (oder
aktivier echten Schreibzugriff nicht).
Zitat:

Und bei einem Klick auf ein Unterverzeichnis
kommt oft diese Meldung.
Was zum Absturz führt.

Aaaah!! Mein Programm hat wohl immer noch Fehler!
Und ich hab mich so bemüht...

Das sieht aus, als hätte ich was falsch gemacht
beim Berechnen der File Pointer Position.

Bei exklusivem Disk-Zugriff öffne ich das Laufwerk
wie eine Datei und übergebe dem File Pointer einen
Wert, der als neue Lese-Position die Entfernung in
Bytes gerechnet vom Beginn des Laufwerks enthält
(wie man das bei einem normalen File auch machen
würde). Also Anzahl der Sektoren * Byte pro Sektor.
Wenn ich z.B. Sektor 30 lesen möchte, wär das 30 * 512,
und das Ergebnis brauch ich als DWORD...

Das DWORD berechne ich so:
' Hi-DWORD
Dim byte_dist_high As Int32 = CInt((sector * bytes_per_sector) >> 32)
' Lo-DWORD
Dim byte_dist_low As Int32 = CInt((sector * bytes_per_sector) And &HFFFFFFFF)
Sieht einer nen Fehler? :/

Hast Du das evtl. mit einem sehr großen Laufwerk
getestet? Starte doch bitte mal unter 'Debug' das
Logging und aktiviere unter 'Extra Logging Options'
die Option 'Log Drive Info'. Dann geh auf
'Get Drives' um die Laufwerks-Infos zu holen,
öffne dann das Laufwerk und geh in das Verzeichnis,
das den Crash verursacht... Logfile findest Du im
Programm-Verzeichnis (LogFile.txt). Schick es mir
mal als e-mail oder so.
Zitat:

Eventuell mal Try/Catch öfter verwenden.

Ich benutze schon Try/Catch im Programm, aber
das kann man ja nicht überall und für alles
(oder doch?) Ich hätte nie gedacht, dass
irgendwas einen Rechen-Überlauf produzieren
könnte... allererstes echtes VB.NET Programm
und so, wie gesagt (abgesehen von den klassischen
Übungsaufgaben wie 'einfacher Taschenrechner'
o.Ä.).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Manfred X
Datum: 21.06.15 18:11

Hallo!

Der Zweck des Net-Framework besteht darin, dem Programmierer eine umfangreiche
Sammlung von Klassen anzubieten, die es ermöglichen, stabile und zuverlässig
arbeitende (plattform-unabhängige) Windows-Anwendungen zu erstellen.
Erreicht wird das unter anderem durch die sichere Kapselung von "Low-Level-Operationen".
Insofern ist Dein Programm keine "echte" VB.Net Anwendung.




Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Legend_X
Datum: 21.06.15 18:19

Zitat:

Der Zweck des Net-Framework besteht darin, dem Programmierer eine umfangreiche Sammlung von Klassen anzubieten, die es ermöglichen, stabile und zuverlässig arbeitende (plattform-unabhängige) Windows-Anwendungen zu erstellen. Erreicht wird das unter anderem durch die sichere Kapselung von "Low-Level-Operationen". Insofern ist Dein Programm keine "echte" VB.Net Anwendung.

Ok, vermerkt. Wenn ich für meine Absichten IRGENDEINE
verwendbare VB-Klasse gefunden hätte, hätt ich die
sicher genommen, statt mich mit APIs rumzuärgern.

Da abgesehen von den Lese/Schreibzugriffen auf die
Sektoren alles in VB ist, würd ich das allerdings
schon noch unter dieser Kategorie einordnen...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Manfred X
Datum: 21.06.15 18:26

Ich verstehe auch den Sinn des Programms nicht.
Die Anwendungen, auf die Du dich beziehst, (MPG-Player, Fotoalben)
sollten in der Lage sein, Dateilisten intern nach verschiedenen Kriterien
zu sortieren und die dort enthaltenen Daten entsprechend aufzubereiten.
Eingriffe in das Dateisystem wären unnötig.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: JangoF
Datum: 21.06.15 18:46

Logfile ist unterwegs!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: JangoF
Datum: 21.06.15 18:55

Mein Fernseher zeigt z.B. die Bilder eines USB-Sticks so an wie sie tatsächlich im Verzeichnis abgelegt sind.
Was nicht unbedingt die Reihenfolge ist in der sie Aufgenommen oder auf den Stick kopiert worden sind.
Von daher hatte ich immer schon gedacht man bräuchte jetzt ein Programm was auf Sektorebene die Einträge direkt dort sortiert.
So was ähnliches habe ich das letzte mal auf dem Amiga gemacht und wollte mich da nicht extra für den PC wieder einarbeiten.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Manfred X
Datum: 21.06.15 19:08

Hallo!

Ich kenne dieses Verhalten von alten DVD-Playern,
die einen USB-Anschluß besaßen, der ein FAT-Dateisystem
einlesen konnte (oft nur eine begrenzte Zahl von Dateien pro Verzeichnis).

Ich schaue kein TV - insofern ...
Beim Digitalfernsehen verwendet man heute doch sog. "Mediencenter",
die z.B. den Internet-Anschluß integrieren und volle PC-Funktionalität
bieten.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Legend_X
Datum: 21.06.15 19:45

Zitat:

Ich verstehe auch den Sinn des Programms nicht.
Die Anwendungen, auf die Du dich beziehst, (MPG-Player, Fotoalben)
sollten in der Lage sein, Dateilisten intern nach verschiedenen Kriterien
zu sortieren und die dort enthaltenen Daten entsprechend aufzubereiten.
Eingriffe in das Dateisystem wären unnötig.

Viele MP3-Player, digitale Bilderrahmen usw. zeigen / spielen
die Dateien in der Reihenfolge, wie deren Einträge physisch
im Dateisystem stehen. Für solche Fälle ist es gedacht. Und
auch weil ich z.B. Einträge auf meinen FAT32-Festplatten
sortieren möchte, damit ich alles in der von mir gewünschten
Reihenfolge gezeigt kriege wenn ich im Kommando-Fenster DIR
schreibe.

Wer Player oder wasweissich verwendet, die mit Dateilisten
arbeiten (können), oder sich am PC sowieso immer alles
alphabetisch zeigen lassen (oder inzwischen nur noch
Dateisysteme wie NTFS verwenden, die das eh automatisch
machen), die brauchen sowas natürlich nicht. Sinn oder
Unsinn, ich verwende es jedenfalls oft.

Ursprünglich war es eh nur ein Test, ob direkter
Festplatten-Zugriff unter VB geht, der Rest kam
dann nach und nach dazu...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Legend_X
Datum: 21.06.15 20:49

Zitat:

-- [ Directory Change - 2007 ] -- Change to Cluster 867053 / Sector 0 UnLock Volume successful CloseDevice successful

Hm... also ich kann den Fehler bei mir leider nicht
reproduzieren, obwohl ich mir eine 4GB Partition mit
8 Sektoren pro Cluster erstellt hab und genau auf
diese Cluster-Nr. zugreife.

Wenn das Programm abstürzt, wieso sind im Logfile
dann eigentlich danach noch die Meldungen für Unlock
und Close Device drin?

Könntest Du bitte nochmal ein Log erstellen, diesmal
mit der Option 'Log Sectors Read' aktiviert?

Man dankt...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Manfred X
Datum: 21.06.15 21:32

Baue zusätzlich zu den Try/Catch-Blöcken, die schon existieren,
eine zentrale Fehlerbehandlung ein, die den gesamten StackTrace protokolliert.
http://www.vbarchiv.net/tipps/details.php?id=1571
Zusätzlich kannst Du Informationen zu dem jeweils aktuell bearbeiteten
Filesystem-Eintrag in eine globale Variable schreiben und deren Inhalt
bei der zentralen Fehlerbehandlung mit-protokollieren.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: JangoF
Datum: 22.06.15 13:36

Logfile ist unterwegs...
Das letzte mal als das Ausnahmefenster erschien habe ich
auf "Weiter" anstatt auf "Beenden" geklickt und dann das
Programm normal beendet, deswegen am Schluss des Logfiles das Quit.
Dieses mal endet das Logfile wo der Fehler auftrat.
Zur Info vielleicht ...
In dem Verzeichnis befinden sich nur 11 Dateien und zwei Unterverzeichnisse und es ist nicht das einzige Verzeichnis wo der Fehler auftritt.
Auch habe ich den Stick mit chkdsk überprüfen lassen.
Es wurden aber keine Fehler gefunden.

Beitrag wurde zuletzt am 22.06.15 um 13:37:39 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Legend_X
Datum: 22.06.15 19:31

Zitat:

Dieses mal endet das Logfile wo der Fehler auftrat.
Zur Info vielleicht ...
In dem Verzeichnis befinden sich nur 11 Dateien und zwei Unterverzeichnisse und es ist nicht das einzige Verzeichnis wo der Fehler auftritt.

Nein, das kann alles nicht der Grund sein, das Programm
schmiert ja schon bei der Berechnung der Dateizeiger-Position
ab, noch bevor da was gelesen wird... und auch sonst passt alles.
Der Eintrag für Dein Verzeichnis laut Logfile:

32 30 30 37 20 20 20 20 20 20 20 10 00 00 A2 5A
69 46 69 46 0D 00 A2 5A 69 46 ED 3A 00 00 00 00

Das wäre Cluster 000d 3aed, dezimal 867053, und genau das
steht auch im Log.

Ich hab jetzt über eine Stunde rumgesucht und bin mir ziemlich
sicher, dass mein Programm richtig rechnet. Das EINZIGE, was
mir noch einfallen würde ist evtl., dass sich unter Deinem
Win7 64bit irgendwas anders verhält als unter meinem
Win7 32bit...

Könntest Du mal folgenden Code bei Dir laufen lassen?
      Dim sector As Int64
      sector = 867053 * 8
 
      Dim dist_high As Int32 = CInt((sector * 512) >> 32)
      Dim dist_low As Int32 = CInt((sector * 512) And &HFFFFFFFF)
Wenn das bei Dir einen Überlauf verursacht, liegt es irgendwie
an den 64bit. :/

Beitrag wurde zuletzt am 22.06.15 um 19:32:46 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: JangoF
Datum: 22.06.15 20:07

Also bei mir löst die Zeile
Dim dist_low As Int32 = CInt((sector * 512) And &HFFFFFFFF)
die Ausnahme aus.
Egal ob sie als x64 oder x86 oder in einer Virtuellem Win7/32 läuft.
Wieso bei dir da keine Ausnahme kommt ist mir schleierhaft.

Wenn ich aber das ganze so ändere kommt kein Fehler.
Dim dist_low As Int64 = ((sector * 512) And &HFFFFFFFF)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Legend_X
Datum: 22.06.15 20:40

Zitat:

Wenn ich aber das ganze so ändere kommt kein Fehler.

Dim dist_low As Int64 = ((sector * 512) And &HFFFFFFFF)

Ok, also hier verließen sie mich... und ich weiss nicht
so recht weiter.

Ich habe einen Int64-Wert und muss ihn in zwei
DWORD-Werte aufsplitten (höherwertige 4 Byte und
niederwertige 4 Byte, also 2 x Int32). Anscheinend
hab ich's irgendwie falsch gemacht.

Kennt einer eine Methode, die ZUVERLÄSSIG funktioniert?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Manfred X
Datum: 22.06.15 21:00

Verwende Net-Klassen, wenn möglich ....

Schau Dir mal den Bitconverter an!
Dim lng As Long = 1234567890
Dim byt() As Byte = BitConverter.GetBytes(lng)
 
Dim s1 As Short = BitConverter.ToInt16(byt, 0) '1.+2.
Dim s2 As Short = BitConverter.ToInt16(byt, 3) '4.+5.
Eventuell benötigst Du eine andere Byte-Reihenfolge oder den Typ ULong.

Beitrag wurde zuletzt am 22.06.15 um 21:01:33 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Franki
Datum: 23.06.15 07:32

Hallo ManfredX

hier ist eher davon die Rede, dass ein Fernseher dazu dient z.B. Urlaubsbilder von einem USB Stick z.B. Freunden oder Familie zu zeigen. Das hat nichts mit Mediatheken HBB-TV usw. zu tun, dafür braucht der Fernseher (oder Sat-Receiver) auch keinen Internetzugang.

Bei mir ist es oft so, dass ich die Reihenfolge der Fotos redaktionell in der Reihenfolge aufarbeiten möchte, also die normalen Sortierungen die der jeweilige Player bietet nicht greifen (Aufnahmedatum/Dateiname usw.)

Es wäre schon sinnvoll eine Reihenfolge vorgeben zu können, aber ich wage zu bewzeifeln, dass es da einen Standard gibt der sich auf das Dateisystem bezieht. Die meisten Mediaplayer haber eine Sortierung voreingestellt die man evtl. verändern kann.

Bei meinem ersten Autoradio vor Jahren welches *.mp3 CDs abspielen konnte hatte ich auch das Problem und musste mir mit Verzeichnis- und Dateinamen behelfen.

Gruß
Frank




Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Legend_X
Datum: 23.06.15 12:37

[Quote]Schau Dir mal den Bitconverter an![/Quote]
Ja zum Kuckuck, ist das echt so leicht, beliebige Zahlen
aufgesplittet in Bytes in ein Array zu kriegen? Da mein
Programm nur Sektor-Daten einliest, musste ich ständig
Bytes / Words / Dwords usw. aus einem Array in entspr.
Zahlen konvertieren, aber dass das so leicht auch
andersrum geht... na ja, bin halt kein Profi.

Dein Code ist zwar nicht ganz richtig, aber das Prinzip
funktioniert 1A.
[Quote]Baue zusätzlich zu den Try/Catch-Blöcken, die schon
existieren, eine zentrale Fehlerbehandlung ein, die den
gesamten StackTrace protokolliert.
http://www.vbarchiv.net/tipps/details.php?id=1541
Ist das die allgemein bevorzugte / beste Methode, das
zu lösen?

Ich hab's mal getestet... damit bekomm ich zwar statt
nem Absturz ein Anzeige-Fenster, aber die Infos sind IMHO
weit nicht so gut wie bei einem Absturz (wo ich exakt
sehen konnte, welche Routine welche Subroutine(n) nacheinander
aufgerufen haben, bis hin zum Fehler). Außerdem bringt
es doch nicht wirklich was, so einen kritischen Fehler
abzufangen, denn das Programm muss bei so was ja ohnehin
beendet werden?

Oder kann ich mir so was Wichtiges zusätzlich anzeigen
lassen, was man sonst nicht sehen würde?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: JangoF
Datum: 23.06.15 14:33

Diese Variante bringt auch das Ergebnis ohne eine Ausnahme auszulösen.

Dim dist_low As Int32 = CInt(((sector * 512) << 32) >> 32)
Aber egal wie man zu dem Ergebnis kommt.
Sobald Bit 32 bei einem Integer32 gesetzt ist bekommt man ein negatives Ergebnis.
Und das 32. Bit kann ja ganz normal vorkommen da es ja ursprünglich ein 64Bit Wert war.

Die nächste Variante löst das aber.
Dim dist_low As UInt32 = CUInt((CULng(sector * 512) << 32) >> 32)


Beitrag wurde zuletzt am 23.06.15 um 14:38:23 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Manfred X
Datum: 23.06.15 18:29

Hallo!

(Das war nur ein Anwendungs-Beispiel, kein Lösungsvorschlag ....)

Wenn Du mit dem Framework produktiv arbeiten möchtest,
mußt Du Dich zunächst in diese umfangreiche Umgebung einarbeiten.
Du solltest einige Zeit für "Recherche" einplanen, um einen Überblick
zu bekommen, welche Klassen für welche Aufgaben vorhanden und wie
sie im Detail aufgebaut sind.

Eine zentrale Fehlerbehandlung ersetzt nicht die "lokale" Reaktion
auf Ausnahmen, sondern greift nur, wenn im Ablauf unerwartete Zustände
eintreten - um eine geordnete Beendigung (z.B. Aufräumarbeiten,
Verhinderung inkonsistenter Datenbestände) sicher zu stellen.

Für die Realisierung von Low-Level-Operationen bevorzuge ich
plattform-spezifische native C++-Bibliotheken (mehr Kontrolle und
höhere Effizienz).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Mein erstes echtes VB.NET Programm ... 
Autor: Legend_X
Datum: 28.06.15 03:39

Ok... hat evtl. sonst noch einer was zu meinem Programm
zu sagen (abgesehen davon, dass heutzutage keiner ein
FAT-Sortierprogramm zu brauchen scheint oder dass ich
keine Ahnung davon hab, wie man richtig Sub-Forms
aufruft)? ;)

Bugs, Verbesserungsvorschläge, Kritik? Oder wollt
ihr nur mal die Antwort-Funktion des Forums testen?
Dann lasst bitte hören...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel