Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Dosya okuma ve yazma hakkında
#1
Question 
Merhaba, 

Ben delphi de bir dosyayı buffera alıp bazı değerleri değiştirip, bufferi dosya olarak kaydettikten sonra dosya boyutu çok büyük çıkıyor, nerede yanlış yapıyorum ? 
dosya 500 KB ama 185 MB ollarak çıkıyor Smile

if OpenDialog1.Execute then
   fsi:=TFileStream.Create(OpenDialog1.FileName, fmOpenRead + fmShareDenyNone);
  fsi.Position:=0;
  SetLength(TmpBuf, fsi.Size);
  ZeroMemory(TmpBuf,fsi.Size);
  L := Length(tmpbuf);
  while fsi.Position < fsi.Size do begin
   fsi.Read(TmpBuf[0], fsi.Size);
  end;
 fsi.Free;

// bufferda değişiklik 

 fsi:=TFileStream.Create('C:\new.dat', fmCreate + fmShareDenyNone);
   fsi.Position :=0;
      try
    if tmpbuf <> nil then
    fsi.Write(tmpbuf[0], Length(tmpbuf));
  finally
    fsi.Free
 end;
 end;



Sorun Çözüldü, Teşekkürler.

Smile

- Namyelus
WWW
Cevapla
#2
Sorun Nasıl Çözüldü?
Girdim İlim Meclisine, 
Eyledim Kıldım Talep, 

Dediler İlim Geride, 
İlla Edep İlla Edep.

Yunus Emre
Cevapla
#3
(06-02-2019, Saat: 15:11)idealist Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Sorun Nasıl Çözüldü?

Merhaba,

Kesinlikle bu sorunuza katılıyorum(!)

Destek için kullanılan forumda sonraki katılımcılar ve bizler içinde örnek
teşkil etmesi adına "çözümlerinde mutlaka paylaşılması" gerekiyor.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#4
Sorudan yola çıkarak problemi öngörebiliriz aslında; hadi beyin fırtınası...

- Ben ilk aklıma gelen ihtimali yazayım; Temp buffer position (0)'lanmıyordu, dolayısıyla yedeğe her eklenen mevcudun sonuna ulanacağından sürekli balon gibi şişen bir temp buffer ürün FileStream'e ekleniyordu .  Wink
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#5
(06-02-2019, Saat: 16:27)mrmarman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Sorudan yola çıkarak problemi öngörebiliriz aslında; hadi beyin fırtınası...

- Ben ilk aklıma gelen ihtimali yazayım; Temp buffer position (0)'lanmıyordu, dolayısıyla yedeğe her eklenen mevcudun sonuna ulanacağından sürekli balon gibi şişen bir temp buffer ürün FileStream'e ekleniyordu .  Wink

@mrmarman, boşuna uğraşmayın. @dicle_gsm soruda değişiklik yapmış Smile
İlk halinde; 
SetLength(TmpBuf, fsi.Size * 512);
gibi bir şey vardı yanlış hatırlamıyorsam. Yani zaten mevcut boyutu 512 ile çarparak yeni bir buffer oluşturuluyordu. İş yoğunluğumdan cevap yazamamıştım. Şimdi cevaplamak istediğimde değiştiğini gördüm Smile
There's no place like 127.0.0.1
WWW
Cevapla
#6
@SimaWB eyvallah, sorunun silinmediğine dua edelim  Smile

Teşekkürler.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#7
(06-02-2019, Saat: 16:51)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(06-02-2019, Saat: 16:27)mrmarman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Sorudan yola çıkarak problemi öngörebiliriz aslında; hadi beyin fırtınası...

- Ben ilk aklıma gelen ihtimali yazayım; Temp buffer position (0)'lanmıyordu, dolayısıyla yedeğe her eklenen mevcudun sonuna ulanacağından sürekli balon gibi şişen bir temp buffer ürün FileStream'e ekleniyordu .  Wink

@mrmarman, boşuna uğraşmayın. @dicle_gsm soruda değişiklik yapmış Smile
İlk halinde; 
SetLength(TmpBuf, fsi.Size * 512);
gibi bir şey vardı yanlış hatırlamıyorsam. Yani zaten mevcut boyutu 512 ile çarparak yeni bir buffer oluşturuluyordu. İş yoğunluğumdan cevap yazamamıştım. Şimdi cevaplamak istediğimde değiştiğini gördüm Smile


Ewet, Gözümden kaçmıştı hocam orası Big Grin
- Namyelus
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Dosya Adı ve İçeriğinde Arama Yapma dkadir 3 132 23-06-2019, Saat: 06:53
Son Yorum: dkadir
  Comport veri okuma klavye 16 264 18-06-2019, Saat: 17:19
Son Yorum: boreas
  Bilgisayar ile android arasında dosya aktarımı erkutolga 3 177 28-05-2019, Saat: 18:44
Son Yorum: erkutolga
  read ve write kullanımı hakkında alisahin 3 190 21-05-2019, Saat: 14:57
Son Yorum: alisahin
  TpApro ApdComPort Terazi Okuma smyrna231802 8 362 10-05-2019, Saat: 10:04
Son Yorum: smyrna231802



Konuyu Okuyanlar: 1 Ziyaretçi