AGB  ·  Datenschutz  ·  Impressum  







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

DelphiNeroApi - Dateien übergeben

Ein Thema von Gina · begonnen am 13. Mär 2005 · letzter Beitrag vom 7. Okt 2006
Antwort Antwort
Seite 3 von 6     123 45     Letzte »    
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#21

Re: DelphiNeroApi - Dateien übergeben

  Alt 19. Mär 2005, 12:33
Morgen...,

ich hab es geschafft, eine Session zu importieren. Leider nicht 100% erfolgreich.

Zunächst muss man in der NeroApi.pas bei InitNeroAPIFunctions hinzufügen:

NeroImportDataTrack := GetNeroProc('NeroImportDataTrack'); Dann habe ich vor dem ersten AddFileToRootIsoItem diese Zeile eingefügt:

RootIsoItem := NeroImportDataTrack(NeroDeviceHandle,NeroCDInfo.ncdiNumTracks-1,ppCDStamp,pInfo,NIITEF_IMPORT_ISO_ONLY,pResult,nil); Bei NeroCDInfo.ncdiNumTracks mußte ich -1 angeben, damit er die letzte Session einliest. Folgende Variablen mußten noch deklariert werden:

Delphi-Quellcode:
ppCDStamp: PPointer;
pInfo: PNERO_IMPORT_DATA_TRACK_INFO;
pResult: PNERO_IMPORT_DATA_TRACK_RESULT;
Diese werden beim Aufruf von NeroImportDataTrack gefüllt, sind also zunächst nil.

So, nun dazu, warum es nicht 100% waren. Ich habe jetzt zwei Ordner auf der CD, die jeweils ca. 4,1 MB groß sind. Die Dateien sind alle da und die Ordnergrößen an sich werden im Explorer korrekt angezeigt. Allerdings zeigt die Gesamtgröße der CD nur 5,8 MB an, obwohl es ja ca. 8,2 MB sein müßten. Hat jemand dazu eine Idee?

Und da wir gerade bei Größenangaben sind:

ShowMessage(IntToStr(NeroCDInfo.ncdiFreeCapacityInBlocks) + ' Free Blocks (' + FloatToStrF(NeroCDInfo.ncdiFreeCapacityInBlocks * 2352 / 1024 / 1024 ,ffGeneral, 3, 3) + ' MB)'); Das liefert bei mir total abwegige Ergebnisse. Ein 700 MB Rohling hat angeblich eine Kapazität von 802 MB. Woher kommt die Zahl 2352? Es kann doch nur daran liegen, oder?

Thx, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#22

Re: DelphiNeroApi - Dateien übergeben

  Alt 19. Mär 2005, 12:57
Die 2352 stehen für die Bytes/Block. Für Rohdaten hast du tatsächlich 802MB zur Verfügung, z.B. wenn du eine (S)VCD oder eine Audio CD brennst, bei Daten-CDs werden dann ca. 100MB für CRC-Checks benötigt. Hier eine kleine Liste:
Code:
Audio CD             : 2352
(Super) VideoCD      : 2324
ISO Level 1 Mode 1    : 2048
ISO Level 2 Mode 1    : 2336
ISO Level 1 Mode 2/XA : 2048
ISO Level 2 Mode 2/XA : 2324
Irrtümer vorbehalten.
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#23

Re: DelphiNeroApi - Dateien übergeben

  Alt 19. Mär 2005, 13:43
Ahh, vielen Dank, dann ist das ja klar...

Habe auch gerade das Einlesen der Brenner-Infos auf einem anderen PC probiert. Dort geht es auch sehr schnell. Nur bei mir nicht... *grübel*

Außerdem hab ich meine angefangene CD mal mit Nero geprüft. Er zeigt mir im Arbeitsplatz also nur die Größe der letzten Session an. Muss ich ihm die beim Einlesen der Session noch übergeben? Wenn ja wie ? Ich hab mal einen Screenie der Sessions angehängt. Es sieht so aus, als wenn zwischen den Tracks eine ziemlich große Pause ist. Was kann ich da tun?

Tausend Dank, Gina.

PS: Mit den dort angezeigten Sessions sind etwa 137 MB der CD belegt...
Miniaturansicht angehängter Grafiken
session_162.jpg  
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#24

Re: DelphiNeroApi - Dateien übergeben

  Alt 19. Mär 2005, 17:10
Zitat von scp:
Beim verwenden von NeroCreateIsoTrackEx muss offfensichtlich immer ein Trackname als zweiter Parameter angegeben werden, bei AudioCDs und VideoCDs steht dort jedoch nil.
Ausgebessert.

Zitat:
Ebenfalls bei WMDropFiles fehlt bei (S)VCDs die Speicherzuweiseng von paBuffer:
Ausgebessert. paBuffer wurde als string benutzt, war aber als PAnsiChar deklariert. Ich habe das jetzt komplett auf string umgeschrieben.

Zitat:
Zunächst muss man in der NeroApi.pas bei InitNeroAPIFunctions hinzufügen:
Ist auch im CVS.
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#25

Re: DelphiNeroApi - Dateien übergeben

  Alt 19. Mär 2005, 17:53
Super jbg, vielen Dank.

Hast du das schon integriert? Oder eine andere Lösung dafür? Muß man vielleicht wirklich das \. auselesen, um das Datum eines Ordners zu bekommen?

Zitat von scp:
Da das Datum aber eh egal ist bei Ordnern, würde ich es so lösen:
Delphi-Quellcode:
  If DirectoryExists(FileName) then
    FileTime := now
  else
    FileTime := FileDateToDateTime(FileAge(FileName));
Ich hänge immernoch an den drei Speicherplatzproblemen fest:

1) Warum belegt er so viel mehr Speicher, als die Dateien groß sind? Hat das was mit der Reservierung durch #0 zu tun?
2) Wie übergebe ich den bisher belegten Platz?
3) Wenn die CD nicht genug Platz hat, wirft er sie aus, es kommt aber keine Meldung. Wie frage ich nach der AddFileToRootIsoItem ab, wieviel Platz die Zusammenstellung belegt?

Oje, Fragen über Fragen...
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#26

Re: DelphiNeroApi - Dateien übergeben

  Alt 19. Mär 2005, 23:22
Zitat von Gina:
Delphi-Quellcode:
  If DirectoryExists(FileName) then
    FileTime := now
  else
    FileTime := FileDateToDateTime(FileAge(FileName));
Der FileAge Code schließt Verzeichnis explizit aus.
Delphi-Quellcode:
function DirectoryAge(const DirectoryName: string): Integer;
var
  sr: TSearchRec;
begin
  Result := -1;
  if FindFirst(DirectoryName, faAnyFile or faDirectory, sr) = 0 then
  begin
    Result := sr.Time;
    FindClose(sr);
  end;
end;
Ist bereits im CVS Code drinnen.
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#27

Re: DelphiNeroApi - Dateien übergeben

  Alt 19. Mär 2005, 23:46
@jbg
Das ist gut. Fehlt jetzt evtl. nur noch ein "Abbrechen"-Knopf für die Rückgabewerte von IdleCallback und AbortedCallback.
AudioCDs hab ich auch getestet, das klappt zwar, da kommt aber am Ende meistens eine Schutzverletzung, weis noch nicht woran das liegt.

@gina
Habe mich mal mit MultiSession beschäftigt, aber irgendwas fehlt da noch. Muss irgend ein Flag oder so sein. Er importiert zwar die Session, aber wie du sagst die Gesamtgrösse stimmt nicht und das echte Nero erkennt es nicht als Nero-eigenes MultiSession-Format.
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#28

Re: DelphiNeroApi - Dateien übergeben

  Alt 20. Mär 2005, 13:03
Hi,

eine AV ist bei mir auch aufgetaucht, und zwar, wenn die CD voll ist. Wenn noch ein wenig Platz ist, dann wirft er sie nur aus, wenn sie aber total voll ist, kommt eine AV.

Die Meldung von Nero, dass es nicht das Mutlisessionformat ist, hab ich auch bekommen. Das liegt sicher daran, dass er nicht alle Informationen eingelesen hat, die er braucht, um die Session korrekt fortzuschreiben...

Und dann hab ich die Sache mit dem Speicherverbrauch mal genauer analysiert. Nach dem ersten Track macht er eine Pause von 02:32.00 Minuten. Nach jedem weiteren Track jeweils eine Pause von 01:32.00 Minuten. Das ergibt bei 5 Sessions etwa 76 MB verschenkter Platz...

Es gibt doch bei Audio-CDs so eine Option, wo man die Pause weglassen kann. Hat es damit vielleicht etwas zu tun? (Kenne mich mit Audio-CDs nicht so aus)

@jbg

Eine Frage zur DirectoryAge: Sehe ich das richtig, dass bei einem Ordner dann kein Datum zurückgegeben wird? Bei mir zumindest ist es so. Je nachdem, ob ich den Pfad mit Backslash übergebe (Result -1) oder ohne Backslash (Result ist ungültiges Timeformat). *grübel*

Thx, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#29

Re: DelphiNeroApi - Dateien übergeben

  Alt 21. Mär 2005, 19:22
Zitat von Gina:
Eine Frage zur DirectoryAge: Sehe ich das richtig, dass bei einem Ordner dann kein Datum zurückgegeben wird?
Bei einem Ordner wird DirectoryAge() aufgerufen, und das liefert das Datum, wenn das Verzeichnis existiert, sonst -1. Da es FindFirst benutzt, darfst du natürlich keinen Backslash am Ende übergeben, da es dann kein gültiger Dateiname mehr ist.
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#30

Re: DelphiNeroApi - Dateien übergeben

  Alt 21. Mär 2005, 22:51
Hmm, komisch. Und wieso bekomme ich dann eine Fehlermeldung, wenn ich den Pfad ohne Backslash übergebe? Liegt das etwa auch an meinem D6?

Zu dem Speicherverbrauch:

Ich nehme alles zurück und behaupte das Gegenteil... Denn heute haben wir herausgefunden, dass Nero direkt bei Multisession ebenfalls soviel Speicher verbraucht. Wohl für Lead-In-Lead-Out. Ist mir echt noch nie aufgefallen... Das ist ja der poore Wahnsinn...

Trotzdem bleibt die Sache mit der Übergabe des bisher belegten Speicherplatzes...

Bis denne, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 6     123 45     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 18:23 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