AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Bandlaufwerk / Streamer ansprechen unter Delphi.
Thema durchsuchen
Ansicht
Themen-Optionen

Bandlaufwerk / Streamer ansprechen unter Delphi.

Offene Frage von "shifter"
Ein Thema von shifter · begonnen am 7. Nov 2005 · letzter Beitrag vom 19. Aug 2009
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#1

Bandlaufwerk / Streamer ansprechen unter Delphi.

  Alt 7. Nov 2005, 14:14
Hi,

ich bin auf der suche nach eine möglichkein ein bandlaufwerk anzusprechen( Read / Save / Format ),
es steht leider nicht sehr viel darüber geschrieben. Ein oder andere artikel habe ich gefunden aber
nichts konkretes.
Es handelt sich hier um SCSI Bandlaufwerke DDS2-4 und SLR wie auch DLT.

Könnt Ihr mir behilflich sein ???

Gruss
seba
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Bandlaufwerk / Streamer ansprechen unter Delphi.

  Alt 7. Nov 2005, 15:27
Du kannst das erste Bandlaufwerk wie eine Datei mit dem Dateinamen \\.\tape0 öffnen. Ein-/Ausgabe sollte mit den normalen Funktionen gehen. Es gibt die API-Funktionen MSDN-Library durchsuchenGetTapeParameters, MSDN-Library durchsuchenGetTapePosition, MSDN-Library durchsuchenGetTapeStatus, MSDN-Library durchsuchenSetTapeParameters und MSDN-Library durchsuchenSetTapePosition.

Ein kleines Programm in C das das Tape anspricht habe ich hier gefunden (Basisseite).
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Bandlaufwerk / Streamer ansprechen unter Delphi.

  Alt 7. Nov 2005, 15:35
DANKE ERSTMAL FÜR DIE SCHNELLE ANTWORT, WERDE SOFORT CHECKEN !!

DANKE

und gruss
aus W-tal
  Mit Zitat antworten Zitat
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Bandlaufwerk / Streamer ansprechen unter Delphi.

  Alt 7. Nov 2005, 20:29
Da hab ich noch eine Frage / Problemm,
und zwar es geht um die Function GetTapeParameters

So Sieht die in C aus
Code:

DWORD GetTapeParameters(
  HANDLE hDevice,
  DWORD dwOperation,
  LPDWORD lpdwSize,
  LPVOID lpTapeInformation
);
Und so habe ich es umgeschrieben

Delphi-Quellcode:

Var Si : dword;
    ew : dword;
    ti : GMP;
Begin
  
  ...

  ew := GetTapeParameters( TapeHandle, GET_TAPE_MEDIA_INFORMATION, Size, @TI );

  If TI.WriteProtected Then ShowMessage('WriteProtect');

End;
GMP ist
Delphi-Quellcode:
Type
  GMP = Record
    Capacity : LongInt;
    Remaining : LongInt;
    BlockSize : dWORD;
    PartitionCount : dWORD;
    WriteProtected : Boolean;
  End;
Aber irgend wie Functioniert Das Nicht !!!

Auch wenn ich GMP.Capacity Abfrage oder andere parameter bekomme ich nur sch... aber nicht das
was ich haben will.

Wo hab ich misst gebaut ?

gruss
seba
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Bandlaufwerk / Streamer ansprechen unter Delphi.

  Alt 7. Nov 2005, 20:31
wie hast du die Funktion übersetzt? hast du eventuell StdCall vergessen?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Bandlaufwerk / Streamer ansprechen unter Delphi.

  Alt 7. Nov 2005, 21:14
Also die Funktionen für den Tape-Zugriff sind ja in Windows.pas deklariert, allerdings die Strukturen nicht. LARGE_INTEGER ist IMHO ein int64. Hier meine Übersetzung (ungetestet):

Delphi-Quellcode:
type
  PTapeGetMediaParameters = ^TapeGetMediaParameters;
  _TAPE_GET_MEDIA_PARAMETERS = record
    Capacity: int64;
    Remaining: int64;
    BlockSize: DWORD;
    PartitionCount: DWORD;
    WriteProtected: Boolean;
  end;
  {$EXTERNALSYM _TAPE_GET_MEDIA_PARAMETERS}
  TTapeGetMediaParameters = _TAPE_GET_MEDIA_PARAMETERS;
  TAPE_GET_MEDIA_PARAMETERS = _TAPE_GET_MEDIA_PARAMETERS;
  {$EXTERNALSYM TAPE_GET_MEDIA_PARAMETERS}

  PTapeGetDriveParameters = ^TTapeGetDriveParameters;
  _TAPE_GET_DRIVE_PARAMETERS = record
    ECC: Boolean;
    Compression: Boolean;
    DataPadding: Boolean;
    ReportSetmarks: Boolean;
    DefaultBlockSize: DWORD;
    MaximumBlockSize: DWORD;
    MinimumBlockSize: DWORD;
    MaximumPartitionCount: DWORD;
    FeaturesHigh: DWORD;
    EOTWarningZoneSize: DWORD;
  end;
  {$EXTERNALSYM _TAPE_GET_DRIVE_PARAMETERS}
  TTapeGetDriveParameters = _TAPE_GET_DRIVE_PARAMETERS;
  TAPE_GET_DRIVE_PARAMETERS = _TAPE_GET_DRIVE_PARAMETERS;
  {$EXTERNALSYM TAPE_GET_DRIVE_PARAMETERS}
Übrigens ist sicher der ganze Abschnitt "Delphi-Referenz durchsuchenBackup Reference" (ms-help://borland.bds3/fileio/base/backup_reference.htm) bzw. MSDN Startseite für dich interessant.

//EDIT: Typen korrigiert
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Bandlaufwerk / Streamer ansprechen unter Delphi.

  Alt 7. Nov 2005, 22:25
Ja das ist das,
jetzt sieht es auf jeden fall besser aus !

Danke Flocke !!!!!!!!
  Mit Zitat antworten Zitat
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Bandlaufwerk / Streamer ansprechen unter Delphi.

  Alt 7. Nov 2005, 23:17
Hier ist aber noch ein Hacken !

Wenn ich zb. Anzeigen möchte DefaultBlockSize sollte eingentlich
wert rauskommen mit 512 kommt aber 2, sowie MinimumBlockSize
kommt ein exotisches Wert der grösser ist als MaximumBlockSize der eben so exotisch
erscheint.

gruss
seba
  Mit Zitat antworten Zitat
shifter

Registriert seit: 2. Jan 2005
175 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Bandlaufwerk / Streamer ansprechen unter Delphi.

  Alt 7. Nov 2005, 23:52
Ich hab's !

Entgültig ist es geschaft.



Problemme hat es gemacht :

LongBool habe ich ersetzt mit Boolean
Packed record mit normalen record

und func. 100%

Danke euch allen

gruss
seba
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

Re: Bandlaufwerk / Streamer ansprechen unter Delphi.

  Alt 8. Nov 2005, 07:49
Zitat von shifter:
LongBool habe ich ersetzt mit Boolean
Packed record mit normalen record
War - wie geschrieben - ungetestet. Ich habe die Typen oben mal angepasst, falls mal jemand danach sucht.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 23:11 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