Salut à tous.
J'ai un petit souci. J'ai besoin de lire un fichier binaire sur un CDRom.(2 Go) J'ai essayé la méthode Octet par Octet et la méthode avec BlockRead.
J'ai à chaque fois un message me disant Accès refusé.
Je peu lire les fichiers Texte sans problème.
Alors je me suis rabattu sur Visual Basic 6 qui lui me fait ça sans problème hormis
le temps d'éxécution.
Si vous avez une solution surtout avec BlockRead je suis preneur.
Merci d'avance
Votre PapyJo.
en fait c'est la méthode d'accès au fichier qui n'était pas la bonne :
procedure TForm1.Button1Click(Sender: TObject);
Var S,T:Fileof char;
pt: integer;
Source:string;
Cible:string;
ch:char;
Longueur:integer;
begin Source:= 'h:\Video_ts\video_ts.ifo'; // DVDROM
// Acces refusé sur le DvdRom (File acces denied)
//Source:='D:\Video_ts.ifo'; //Copié sur disque dur
// Fonctionne sur disque dur...
// Il faut que je le lise Octet par Octet sur le DVD.
Cible:= Path.APPDIR + '\video_ts.ifo';
AssignFile(S,Source);
{Les valeurs FileMode valides sont les suivantes :
0 Lecture seule
1 Écriture seule
2 Lecture/Écriture }
FileMode := 0;
Reset(S);
AssignFile(T,Cible);
FileMode := 2;
Rewrite(T);
Longueur:=Filesize(S);
for pt: =1 to Longueur do begin Read(S,ch);
Write(T,ch);
end;
closeFile(S);
CloseFile(T);
end;
au cas ou ça n'est pas clair pour toi, ce que Cirec et Francky veulent dire c'est que Delphi peut parfaitement lire un fichier sur un cdrom (encore heureux), donc t'as surement une erreur de prog.
d'ou le besoin d'avoir le code pour t'aider...
ps:
un DVD (enfin je supoose, hein parceque un cd de 2go...) n'est pas different d'un disque du dur si tu fait seulement de la lecture. tu peux faire de test avec une copie du fichier.
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Chers amis.
Je pensais qu'il était inutile de vous donner mon code car ma question était
Pourquoi ne puis je lire un fichier binaire Octet par octet sur le DVDRom.
Essayez avant de conclure, et vous vous rendrez compte par vous mème.
Bien sur si je copie le fichier sur le disque dur celà fonctionne très bien.
Je vous joins le code à toutes fins utiles.
'----------------------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
Var
S,T:File of char;
pt: integer;
Source:string;
Cible:string;
ch:char;
Longueur:integer;
begin
Source:='h:\Video_ts\video_ts.ifo'; // DVDROM
// Acces refusé sur le DvdRom (File acces denied)
//Source:='D:\Video_ts.ifo'; //Copié sur disque dur
// Fonctionne sur disque dur...
// Il faut que je le lise Octet par Octet sur le DVD.
Cible:='c:\Essais\video_ts.ifo';
AssignFile(S,Source);
Reset(S);
AssignFile(T,Cible);
Rewrite(T);
Longueur:=Filesize(S);
for pt:=1 to Longueur do
begin
Read(S,ch);
Write(T,ch);
end;
closeFile(S);
CloseFile(T);
end;
{Bien sur si c'est un fichier texte que je lis en TextFile ça marche.
Une copie avec les API fonctionne aussi.
Mais avec Blockread et BlockWrite cette erreur également est présente.
Donc j'ai codeé mon programme avec Visual Basic et là c'est bon.???????
Si vous vous ètes heurté à ce problême avez vous la solution ?
Les donneurs de leçons s'abstenir.
Ok Merci du tuyau pour le FileMode car je ne connaissait pas.
Je vais refaire mon code comme ça et c'est évident que ça vamarcher.
Pardonnez moi mais je ne suis qu'un amateur.
PapyJo...........