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
  Moduler Programlama Hakkinda TheEAK 3 68 1 saat önce
Son Yorum: Bahadir.Alkac
  Urlden Dosya İndirme apachi2006 0 89 26-08-2019, Saat: 01:54
Son Yorum: apachi2006
  IDE çoklu monitör kullanımı hakkında adelphiforumz 2 226 10-07-2019, Saat: 12:45
Son Yorum: adelphiforumz
  GarantiBBVA SFTP işlemleri hakkında adelphiforumz 4 353 09-07-2019, Saat: 10:43
Son Yorum: r3n4m3
  [ÇÖZÜLDÜ] WebDav ile Bulut Sunucuya Dosya Yükleme theSinan 4 524 08-07-2019, Saat: 15:42
Son Yorum: r3n4m3



Konuyu Okuyanlar: 1 Ziyaretçi