Dosya Uzantısı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Dosya Uzantısı
arkadaşlar
seçilen dosyanın uzantısını bulmak için kullanılan bir fonksiyon/komut varmı?
seçilen dosyanın uzantısını bulmak için kullanılan bir fonksiyon/komut varmı?
Kod yazmaya devam...
Maksat verilen örnekteki gibi .DOC (Word veya benzeri) dosyalardan biri kısım alıp kopyalamaksa bu tür bir işlem ne işinize yarıyabilir ki? Çünkü word dosyasında bir kısmını almak ekrandan gördüğünüzü yazının bir kısmı anlamına gelmez. Dosyanın başında, sonunda yada herhangi bir yerinde döküman yapısı ile ilgili bilgiler mevcuttur. Aynı olay .jpg, .gif, .bmp (image) dosyaları için de geçerlidir. Yine de BlockRead(..) / BlockWrite(..) in kullanımına bakabilirsin..
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
öncelikle özür diliyorum
amacım şu :
örn; diskete sığmayan bir dosyanız mevcut veonu başka bilgisayara taşımak istiyosunuz. cdrw yok internet yok işte dosyayı bir kaç diskete bölüp
sonra da birleştirmek. umarım açıktır yeterince..
blockread()
ve blockwrite() komutlarından önce
anlattığım gibi dosya oluşturma aşaması var orda takıldım
çookk teşekkür ediyorum.
amacım şu :
örn; diskete sığmayan bir dosyanız mevcut veonu başka bilgisayara taşımak istiyosunuz. cdrw yok internet yok işte dosyayı bir kaç diskete bölüp
sonra da birleştirmek. umarım açıktır yeterince..
blockread()
ve blockwrite() komutlarından önce
anlattığım gibi dosya oluşturma aşaması var orda takıldım
çookk teşekkür ediyorum.
Kod yazmaya devam...
Kod: Tümünü seç
var
FromF, ToF: file of byte;
Buffer: array[0..4096] of char;
NumRead: integer;
FileLength: longint;
begin
if OpenDialog1.Execute then
AssignFile(FromF, OpenDialog1.FileName);
reset(FromF);
AssignFile(ToF, 'c:\Avseq01.dat');
rewrite(ToF);
FileLength := FileSize(FromF);
Min := 0;
Max := FileLength;
while FileLength > 0 do
begin
BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead);
FileLength := FileLength - NumRead;
BlockWrite(ToF, Buffer[0], NumRead);
end;
CloseFile(FromF);
CloseFile(ToF);
end;
Kaç byte yazarsam yazayım dosyanın hepsini kopyalıyo. acaba
buffer[1..4096] daki 4096 yerine istediğim byte kadarını yazdım. bu seferde kopyaladığım dosyayı açtığımda;
"belge adı veya yolu geçerli değil"
mesajını veriyo.
acaba kopyaladığım dosyanın örn;120 byte nı okudu. tamamını görmediği için mi?[/img]
buffer[1..4096] daki 4096 yerine istediğim byte kadarını yazdım. bu seferde kopyaladığım dosyayı açtığımda;
"belge adı veya yolu geçerli değil"
mesajını veriyo.
acaba kopyaladığım dosyanın örn;120 byte nı okudu. tamamını görmediği için mi?[/img]
Kod yazmaya devam...
buffer[1..4096] daki 4096; dosyayı her okuduğunda kaç byte okuyacağını belirtir.
mesela burayı buffer[1..1024] (1024 byte) yaparsak, 3 kb. lik bir text dosyasını 3 blokta okur. yani, 1024 * 3 olarak. çok küçük dosyalarla işlem yapılacaksa burayı küçük tutmak gerekir.
şimdi, 3 kb.lik bir dosyanın sadece 2 kb sini okuyacaksan,
buffer=1024, FileLength := 2048; yap,
dosyadan 2 * 1024 okur.
mesela burayı buffer[1..1024] (1024 byte) yaparsak, 3 kb. lik bir text dosyasını 3 blokta okur. yani, 1024 * 3 olarak. çok küçük dosyalarla işlem yapılacaksa burayı küçük tutmak gerekir.
şimdi, 3 kb.lik bir dosyanın sadece 2 kb sini okuyacaksan,
buffer=1024, FileLength := 2048; yap,
dosyadan 2 * 1024 okur.