Utiliser un save dialog?

Signaler
Messages postés
114
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
11 février 2009
-
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
-
Quelles sont les instructions à ecrire en utilisant un save dialog pour effectuer une sauvegarde d'un fichier qui existe dans c: dans la partition d:, c'est vraiment urgent svp.

9 réponses

Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
procedure TForm1.Button1OnClick(sender : tobject);
begin
if savedialog1.execute then memo1.lines.savetofile(savedialog1.filename);
end;

mais si c'est pour copier un fichier A sur un autre disque il ne faut pas utiliser cette methode.
cherche dans les code sources, il doit surrement y'avoir de nombreux exemple.
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
salut le savedialog ne servant qu'a récipérer le chemin du fichier la
sauvegarde d'un fichier d'une partition à une autre (ou d'un disque à
un autre) il te faut écrire un petit utlitaire qui ouvrira le fichier
et l'écrira dans l'autre directory.

Si c'est un fichier texte utilises un Tstring et les methode loadfromfile et savetofile.

pour les autres fichiers une méthode générale consiste à ouvrir les
fichier comme un fichier d'octet à le lire bit à bit et le réécrire de
la même façon

@+

jlen
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
4
Bit à bit !!! Tu n'y vas pas un peu fort jlen ???



Ken@vo

Code, Code, Codec !

[%3C/body ]
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
salut kenavo,

en fait on l'ouvre en blockread et en blockwrite ce qui revient à le
lire bit à bit . Apres tout dépent de la longueur de l'enregistrement
que l'on choisit.

@+

jlen
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
en allant dans l'aide delphi dans l'exemple on a le code permettant de
lire le fichier et de le sauvegarder dans le fichier saisi dans le
savedialog

var



FromF, ToF: file;

NumRead, NumWritten: Integer;

Buf: array[1..2048] of Char;

begin

if OpenDialog1.Execute then { Affichage de la boîte de dialogue d'ouverture }

begin

AssignFile(FromF, OpenDialog1.FileName);

Reset(FromF, 1); { Taille d'enregistrement = 1 }

if SaveDialog1.Execute then { Affichage de la boîte de dialogue d'enregistrement}

begin

AssignFile(ToF, SaveDialog1.FileName); { Ouverture du fichier de sortie }



Rewrite(ToF, 1); { Taille d'enregistrement = 1 }

Canvas.TextOut(10, 10, 'Copie de ' + IntToStr(FileSize(FromF))

+ ' octets...');

repeat

BlockRead(FromF, Buf, SizeOf(Buf), NumRead);

BlockWrite(ToF, Buf, NumRead, NumWritten);

until (NumRead = 0) or (NumWritten <> NumRead);

CloseFile(FromF);

CloseFile(ToF);

end;

end;

end;

@+

jlen
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
4
Jlen,



J'aurais quand même dit octet par octet !



Ken@vo

Code, Code, Codec !

[%3C/body ]
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
excuse moi il fallait lire bYte à bYte petit probleme avec la langue de Shackspear ou les 2 termes sont assez semblables

@+

jlen
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
moyen memotechnique :

Bit = a lire "bite" (desolé mais bon)
Byte = a lire "Baill-te" (pas mieux)

et puis lire et ecrire byte a byte ... c'est un peu obscene comme methode ... non ? ^^

Jlen a besoin de vaccances, on vas faire une quete tiens.

on pourrait egalement utiliser le TStreamFile pour copier un fichier et je crois meme (a verifier) qu'il existe une fonction CopyFile dans delphi... a moins que je confonde avec un autre langage.

La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.
<hr>
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
11
f0xi c'est pas un probleme d'argent pour les vaccances mais plutot un probleme de temps.

pour la différence entre bit et byte je ne suis pas nul à ce point pour
ne pas connaitre la diifférence de prononciation c'est plutot qu'en ce
moment je travaille sur une application de communication à haut débit
ou mes bytes perdent bits de temps en temps (simple histoire de µs de
perte de synchronisation entre des interruptions mais ça ce n'est pas
du Delphi).

pour copyfile c'est aussi ce que pensais mais pas moyen de la retrouver
... des bytes pleins de bits l'ont kidnappée; lancer un avis de
recherche!!

@+

jlen