Merhaba.
- Aşağıda verdiğim yapı senin işini görecek, anlamaya çalış ve dilediğin şekilde kullan.
- Kullanım örneğindeki ShowMessage kısmını kaldırıp, buradaki bilgileri veritabanına kayıt altına alacaksın.
- Tersi işlemi de yaparsın artık. Baştaki alt çizgi ile ayrılmış Tip kısmını alıp uzantısı olan DAT ile değiştirecek kullanacaksın.
- Dilersen baştaki dosya tipini de TABLO'na veri alanı olarak kayıt altında tutar, sadece rakamlardan oluşan DAT dosyaları halinde de tutabilirsin.
11806.DAT gibi. Çünkü bu durumda da dosya tipini tabloda biliyor olacaksın.
// Senin için altyapıyı hazırlayan fonksiyon
Kod: Tümünü seç
Type
tBelgeBilgi = Record
boolIslemTamam : Boolean;
strBelgeTipi,
strBelgeYeniAdi : String;
End;
Function BelgeSakla( iKaySiraNo: Integer; strBelgeDosya, strDataKlasor:String ): tBelgeBilgi;
begin
FillChar( Result, SizeOf(Result), 0 );
if DirectoryExists( strDataKlasor ) then
begin
Result.strBelgeTipi := UpperCase( StringReplace( ExtractFileExt( strBelgeDosya ), '.', '', [] ) ); // noktasız uzantı
Result.strBelgeYeniAdi := Format('%s_%d.DAT', [ Result.strBelgeTipi, iKaySiraNo ] );
CopyFile( PChar(strBelgeDosya), PChar( strDataKlasor + Result.strBelgeYeniAdi ), False );
Result.boolIslemTamam := True;
end else
begin
Result.boolIslemTamam := False;
MessageDlg( 'Hedef klasör bulunamadı...', mtError, [mbCancel], 0 );
end;
end;
// Kullanımına örnek
Kod: Tümünü seç
procedure TForm1.BitBtn1Click(Sender: TObject);
var
Bilgi : tBelgeBilgi;
strDataKlasor : String;
begin
strDataKlasor := ExtractFilePath(Application.Exename) + 'DATA\';
With TOpenDialog.Create( nil ) do
begin
Filter := 'Resim Dosyaları *.JPG, *.BMP|*.JPG;*.BMP|PDF Dosyaları *.PDF|*.PDF|Tüm Dosyalar *.*|*.*';
FilterIndex := 1;
if Execute then
begin
Bilgi := BelgeSakla( 11806, FileName, strDataKlasor );
if Bilgi.boolIslemTamam then
begin
ShowMessageFmt( 'Dosya %s klasöründe %s tipinde %s yeni dosya adıyla kayıt altına alındı.. '#13'Tabloya bu son iki bilgi yer alması yeterli', [strDataKlasor, Bilgi.strBelgeTipi, Bilgi.strBelgeYeniAdi])
end;
end;
free;
end;
end;