Thema: Delphi SMART-Werte lesen

Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#52

Re: SMART-Werte lesen

  Alt 20. Jul 2006, 21:33
Zitat von himitsu:
erstmal ein Fehler in der Demo von Beitrag #4:
Code:
Procedure RetrieveString(Const ACharArray: Array Of Char; Out AString: String);
...
For i := Low(ACharArray) To [color=red]Pred([/color]High(ACharArray)[color=red])[/color] Do
Das letzte Zeichen wird nicht kopiert und ist daher undefiniert.
Jo, aber bei einer ungeraden Länge des Arrays wirste einen Fehler bekommen, weil i+1 zu gross ist beim letzten Zeichen. Daher bin ich auf Sicherheit gegangen, da mir bisher noch keine IDE Geräte untergekommen sind, die die Felder voll ausnutzen.

Zitat von himitsu:
Und dann sind dynamische Arrays in Delphi immer 0-basierend, also kann man das ganze LOW-Zeugs auch weglassen ^^
Und wenn man die Funktion kopiert und direkt auf die Struktur anwendet klappt es nicht mehr. Wenn man High() verwendet, dann sollte man auch Low() verwenden. Dann klappt es immer - egal ob statische oder dynamische Arrays.

So, im Anhang eine umgeschriebene Version wo die hier angesprochenen Fehler behoben wurden. Auch das mit der DriveMap bei Win9x/ME und PhysicalDrive bei NT/2000/XP/+ ist auch beachtet. Und nun könnt ihr es wieder zerreissen.

Mit der SPTI/SCSI Version habe ich noch nicht angefangen...
Angehängte Dateien
Dateityp: zip smart_20072006_166.zip (9,9 KB, 90x aufgerufen)
  Mit Zitat antworten Zitat