AGB  ·  Datenschutz  ·  Impressum  







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

SMART-Werte lesen

Ein Thema von ManuMF · begonnen am 23. Jun 2006 · letzter Beitrag vom 31. Jul 2007
Antwort Antwort
Seite 6 von 6   « Erste     456   
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#51

Re: SMART-Werte lesen

  Alt 20. Jul 2006, 17:18
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.


Und dann sind dynamische Arrays in Delphi immer 0-basierend, also kann man das ganze LOW-Zeugs auch weglassen ^^
Delphi-Quellcode:
Procedure RetrieveString(Const ACharArray: Array Of Char; Out AString: String);
Var
  i : Integer;
Begin
  SetLength(AString, Length(ACharArray));
  For i := 0 To High(ACharArray) Do
  Begin
    If i mod 2 = 0 Then
      AString[1 + i] := ACharArray[i + 1]
    Else
      AString[1 + i] := ACharArray[i - 1];
  End;
  AString := TrimRight(AString); // selbst MS kürtzt den Rest weg ;)
End;

Ich weiß grad nicht, ob's schon behoben wurde, aber da fehlen ein paar -1.
For i := 0 To MAX_IDE_DRIVES Do
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#52

Re: SMART-Werte lesen

  Alt 20. Jul 2006, 20: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
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#53

Re: SMART-Werte lesen

  Alt 21. Jul 2006, 11:24
OK, hatte das Array nur in dieser Funktion gesehn, und da war's ja nicht nötig.

Du wendest RetrieveString aber auf den gesamten "Speicher" an und nicht nur auf den genutzten Teil.
Die definierten Felder (in dem Record) haben netter Weise eine gerade und feststehende Anzahl.
Und selbst wenn ein Gerät mal nicht alles verwendet ... die ungeraden Zeichen sind immer verschoben, demnach würde dort so, oder so ein Füllzeichen reinmüssen.

PS: och menno, dabei hatte ich gerade mal 'ne etwas überarbeitete Version mitgebacht -.-''


[vorschau]
's kommt gleich noch ein Link hier rein, wo ich auf eine extreme Kurzversion davon verweise.
muß nur noch den Beitrag schreiben ^^


So, dort kleiner ProgrammCheck (Festplatten auslesen) - Beitrag #15 hab ich mal versucht nur en Teil mit der Seriennummer auszulagern
Angehängte Dateien
Dateityp: exe smartappd7_277.exe (377,5 KB, 105x aufgerufen)
Dateityp: 7z delphi_-_smart_317.7z (7,1 KB, 111x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Razor
(Gast)

n/a Beiträge
 
#54

Re: SMART-Werte lesen

  Alt 31. Jul 2007, 16:56
Can someone tell me how to get s.m.a.r.t. for scsi disk...And how to get temperature from it?
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#55

Re: SMART-Werte lesen

  Alt 31. Jul 2007, 18:05
To gain access to a SCSI-Disk, you might want to take a short look at the SPTI (SCSI PASSTHROUGH INTERFACE), introduced by Microsoft in Windows XP (or Windows 2000, I guess).

Finding the temperature in the SMART-values isn't as easy as it could be. The temperature ist found at different positions, depending on the vendor. There is no "standard" or something.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 6   « Erste     456   


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 18:44 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