resim dosyalarını başka dizine kopyalama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
gercek_16
Üye
Mesajlar: 108
Kayıt: 19 Haz 2005 02:42
Konum: mersin

resim dosyalarını başka dizine kopyalama

Mesaj gönderen gercek_16 »

openpictredialogla açtığım resmi başka bir klasöre kopyalamak istiyorum.
kodları aşağıdaki gibi yazdım, ama başarılı olamadım.

Kod: Tümünü seç

procedure TForm6.BitBtn1Click(Sender: TObject);
begin
if openpicturedialog1.execute then
begin
  DataModule1.IBDataSet1.edit;
  image1.picture.loadfromfile(openpicturedialog1.filename);
  CopyFile(PChar(OpenPictureDialog1.FileName),'c:\emlak\image',true);
  DataModule1.IBDataSet1RES1.AsString:=openpicturedialog1.FileName;

  DataModule1.IBDataSet1. Post;
  DataModule1.IBDataSet1.transaction.commitretaining;
  resac;
end;
end;
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

procedure TForm6.BitBtn1Click(Sender: TObject);
var
yol:string;
begin
if openpicturedialog1.execute then
begin
yol:=openpicturedialog1.filename;
DataModule1.IBDataSet1.edit;
image1.picture.loadfromfile(yol);
CopyFile(PChar(yol,'c:\emlak\image',true);
DataModule1.IBDataSet1RES1.AsString:=openpicturedialog1.FileName;
DataModule1.IBDataSet1. Post;
DataModule1.IBDataSet1.transaction.commitretaining;
resac;
end;
end;
gercek_16
Üye
Mesajlar: 108
Kayıt: 19 Haz 2005 02:42
Konum: mersin

Mesaj gönderen gercek_16 »

Kod: Tümünü seç

     CopyFile(PChar(yol,'c:\emlak\image',true); 
bu satırda şu hatayı veriyor.

Kod: Tümünü seç

[Error] kir_ev_res_kay.pas(138): ')' expected but ',' found 
Kullanıcı avatarı
mepc
Üye
Mesajlar: 191
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

Mesaj gönderen mepc »

CopyFile(PChar(yol,'c:\emlak\image',true);
satırında hata oluştuğunu belirtmişsiniz. Öncelikle C:\emlak pathinin varlığını kontrol edin. Kopyalarken kaydettiğiniz dosyanın uzantısını yazmanız gerekir.

Kod: Tümünü seç

CopyFile(PChar(yol,'c:\emlak\image.bmp',true); 
Bilgi paylaşıldıkça güzeldir.
gercek_16
Üye
Mesajlar: 108
Kayıt: 19 Haz 2005 02:42
Konum: mersin

Mesaj gönderen gercek_16 »

belirttiğim klasör var. kod hiç yüklenmeden hata veriyor. ben
" YOL" da belirttiğim dosyanın kopyalanmasını istiyorum. Dosyanın tam ismini nasıl yazdırtabilirim.
gercek_16
Üye
Mesajlar: 108
Kayıt: 19 Haz 2005 02:42
Konum: mersin

Mesaj gönderen gercek_16 »

arkadaşlar yapmaya çalıştığım şey
veritabanına resimleri değilde yollarını kaydetmek.
fakat resimlerin silinme riski nedeniyle
bu resimleri bir klasöre kopyalayıp,
yeni yollarını veritabanına yazdırtmak istiyorum.
resimleri openpicturedialogla açıyorum.
şöyle bir kod yazdım ama sonuç başarısız oldu.


Kod: Tümünü seç

procedure TForm6.BitBtn1Click(Sender: TObject); 
begin 
if openpicturedialog1.execute then 
begin 
  DataModule1.IBDataSet1.edit; 
  image1.picture.loadfromfile(openpicturedialog1.filename); 
  CopyFile(PChar(OpenPictureDialog1.FileName),'c:\emlak\image',true); 
  DataModule1.IBDataSet1RES1.AsString:=openpicturedialog1.FileName; 

  DataModule1.IBDataSet1. Post; 
  DataModule1.IBDataSet1.transaction.commitretaining; 
  resac; 
end; 
end;
birde şunu sorayım aklıma gelmişken
veri tabanını ve programı nereye kurdurtmak gerekli
C:\ yemi ? D:\ yemi?
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

Procedure FileCopy( Const sourcefilename, targetfilename: String );
Var
S, T: TFileStream;
Begin
S := TFileStream.Create( sourcefilename, fmOpenRead );
try
T := TFileStream.Create( targetfilename,
fmOpenWrite or fmCreate );
try
T.CopyFrom(S, S.Size ) ;
finally
T.Free;
end;
finally
S.Free;
end;
End;
procedure TForm1.Button1Click(Sender: TObject);
var
kaynak,hedef:string;
begin
if ac.Execute then
begin
kaynak:=ac.Filename;
hedef:='c:\'+'y'+ExtractFileName(ac.FileName);
FileCopy(kaynak,hedef);
end;
end;

end.
Siz hayal edin...Biz yapalım TuannaSoft...
gercek_16
Üye
Mesajlar: 108
Kayıt: 19 Haz 2005 02:42
Konum: mersin

Mesaj gönderen gercek_16 »

bu satırda hata veriyor,
private satırına ekledim procedurü, yapmam gereken
başka bir şey varmıydı?

Kod: Tümünü seç

procedure TForm6.filecopy(const sourcefilename,targetfilename: String );
verdiği hata şu

Kod: Tümünü seç

[Error] kir_ev_res_kay.pas(59): Declaration of 'filecopy' differs from previous declaration
[Error] kir_ev_res_kay.pas(77): '.' expected but ';' found
[Error] kir_ev_res_kay.pas(77): '.' expected but ';' found
delphikursu
Üye
Mesajlar: 99
Kayıt: 24 Tem 2004 05:13
Konum: kayseri
İletişim:

Mesaj gönderen delphikursu »

arkadaşım bu dosyaları kopyalam için calışıyor umarım işine yarar

Kod: Tümünü seç

uses kısmına ShellApi unitini ekleyin.
procedure TForm1.Button1Click(Sender: TObject);
var
  OpStruc: TSHFileOpStruct;
  frombuf, tobuf: Array [0..128] of Char;
Begin
  {The fillchars make sure the parameters are terminated by at least
   two #0 characters, this is required since each parameter can hold
   a list of zero-terminated strings, the extra #0 terminates the
   list. }
  fillChar( OpStruc, Sizeof(OpStruc), 0 );
  FillChar( frombuf, Sizeof(frombuf), 0 );
  FillChar( tobuf, Sizeof(tobuf), 0 );
  StrPCopy( frombuf, 'c:\deneme\*.*' );
  StrPCopy( tobuf, 'd:\deneme' );
  With OpStruc DO Begin
    Wnd:= Handle;
    wFunc:= FO_COPY;
    pFrom:= @frombuf;
    pTo:=@tobuf;
    fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
  end;
  ShFileOperation( OpStruc );
end;
KOLAY GELSİN
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

procedure TForm6.filecopy(const sourcefilename,targetfilename: String );


böle bir sey yapmana gerek yok...istersen sana yaptığım örneği gönderebilirim...
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@gercek_16

- ExtractFileName fonksiyonunu kullanacaksın. Yolu verilmiş dosya adından sadece dosya adını ve uzantısını çeker.

Örneğin...

Kod: Tümünü seç

  Yol := 'D:\Kaynak\Dizin\Resim.BMP';
olsun...

Kod: Tümünü seç

  CopyFile(PCHar(Yol), PCHar('C:\Emlak\Image\'+ExtractFileName(Yol)), True);
kodunun senin için oluşturduğu sonuç şu şekildedir.

Kod: Tümünü seç

  CopyFile('D:\Kaynak\Dizin\Resim.BMP', 'C:\Emlak\Image\Resim.BMP', True);
Resim
Resim ....Resim
gercek_16
Üye
Mesajlar: 108
Kayıt: 19 Haz 2005 02:42
Konum: mersin

Mesaj gönderen gercek_16 »

merhabalar
yardımlarınız için teşekkür ederim
Tuanna arkadaşım kodunuz çalışıyor çok sağolun.
procedure yanlış eklediğim için hata veriyotrmuş.
Cevapla