Utiliser un save dialog?

cs_kam81 Messages postés 114 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 11 février 2009 - 6 déc. 2005 à 19:14
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 - 8 déc. 2005 à 08:36
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

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
6 déc. 2005 à 20:20
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.
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
6 déc. 2005 à 21:16
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
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
7 déc. 2005 à 09:05
Bit à bit !!! Tu n'y vas pas un peu fort jlen ???



Ken@vo

Code, Code, Codec !

[%3C/body ]
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
7 déc. 2005 à 09:15
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
7 déc. 2005 à 10:04
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
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
7 déc. 2005 à 17:51
Jlen,



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



Ken@vo

Code, Code, Codec !

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

@+

jlen
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 37
8 déc. 2005 à 00:31
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>
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
8 déc. 2005 à 08:36
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
0
Rejoignez-nous