AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Nero NRG Datei in ISO Konvertieren
Thema durchsuchen
Ansicht
Themen-Optionen

Nero NRG Datei in ISO Konvertieren

Ein Thema von daniel-h · begonnen am 20. Mai 2009 · letzter Beitrag vom 22. Mai 2009
Antwort Antwort
Benutzerbild von daniel-h
daniel-h

Registriert seit: 9. Sep 2008
Ort: b.
170 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: Nero NRG Datei in ISO Konvertieren

  Alt 20. Mai 2009, 20:03
ich habe auch nochmal gegoogelt.
dabei bin ich auf diese procedure gestoßen:

Delphi-Quellcode:
var
  src, dst: Integer;
  buf: Pointer;
  n, bytes, bytestocopy: Integer;
  lastpart: array [0..4] of Integer;
begin
  if Tag = 0 then
    begin
      Tag := 1;
      cancel := False;
      Button1.Enabled := False; Button2.Enabled := False; Button4.Enabled := False;
      Button3.Caption := '&Abbrechen';
      src := INVALID_HANDLE_VALUE;
      dst := INVALID_HANDLE_VALUE;
      try
        GetMem(buf, 1 shl 20); // 1 Megabyte
        src := CreateFile(PChar(Edit1.Text), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
        if (src = INVALID_HANDLE_VALUE) then
          raise EInOutError.Create('Datei nicht gefunden');
        dst := CreateFile(PChar(Edit2.Text), GENERIC_WRITE, FILE_SHARE_READ, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
        if (dst = INVALID_HANDLE_VALUE) then
          raise EInOutError.Create('Fehler beim Erzeugen der Datei');
        bytestocopy := SetFilePointer(src, 0, nil, FILE_END);
        SetFilePointer(src, -sizeof(lastpart), nil, FILE_END);
        if (not ReadFile(src, lastpart, sizeof(lastpart), n, nil)) then
          raise EInOutError.Create('Datei zu kurz');
        if (((lastpart[0] = $21444E45) and
             (lastpart[2] = $3552454E)) or
            ((lastpart[1] = $21444E45) and
             (lastpart[3] = $4F52454E))) then
          begin
            bytestocopy := lastpart[4];
            asm
              mov eax, bytestocopy
              xchg ah, al
              rol eax, 16
              xchg ah, al
              mov bytestocopy, eax
            end;
          end;
        Dec(bytestocopy, 512*600);
 // fehler1 if (SetFilePointer(src, 512*600, nil, FILE_BEGIN) = -1) then
          raise EInOutError.Create('Datei zu kurz');
        while (bytestocopy > 0) do
          begin
            bytes := bytestocopy;
            if (bytes > 1 shl 20) then
              bytes := 1 shl 20;
 //fehler2 if (not ReadFile(src, buf^, bytes, n, nil)) then
              raise EInOutError.Create('Fehler beim Lesen');
            if n = 0 then
              break;
            Dec(bytestocopy, n);
            if cancel then
              break;
 //fehler3 if (not WriteFile(dst, buf^, n, n, nil)) then
              raise EInOutError.Create('Fehler beim Schreiben');
            Label1.Caption := Format('%d Bytes kopiert', [SetFilePointer(src, 0, nil, FILE_CURRENT)]);
            Label1.Update;
            Application.ProcessMessages;
          end;
        Label1.Caption := 'fertig.';
      except
        on e: EInOutError do
          Label1.Caption := 'Fehler: ' + e.Message;
      end;
      CloseHandle(src);
      CloseHandle(dst);
      Button3.Caption := '&Konvertieren';
      Button1.Enabled := True; Button2.Enabled := True; Button4.Enabled := True;
      Tag := 0;
    end
  else
    cancel := True;
aber ich kann das nicht kompilieren da kommen 3 fehler:

[Pascal Fehler] Unit1.pas(81): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
[Pascal Fehler] Unit1.pas(105): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
[Pascal Fehler] Unit1.pas(112): E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz