Dosya Uzantısı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
espasem
Üye
Mesajlar: 55
Kayıt: 05 May 2005 01:37
Konum: KOCAELİ

Mesaj gönderen espasem »

tamam
şimdi daha iyi anladım.
Yardınların için sağol hemşerim. şimdi deneyeyim bi.
Kod yazmaya devam...
Kullanıcı avatarı
espasem
Üye
Mesajlar: 55
Kayıt: 05 May 2005 01:37
Konum: KOCAELİ

Mesaj gönderen espasem »

evet denedim ama bu seferde şunu anlamadım.

Kod: Tümünü seç

 var
 min,max:integer;
  FromF, ToF: file of byte;
  Buffer: array[0..1447034] of char;
  NumRead: integer;
  FileLength: longint;
begin
  AssignFile(FromF,ac.FileName);
  reset(FromF);
  AssignFile(ToF, edit2.Text+ChangeFileExt(extractfilename(ac.FileName),'')+'1'+extractfileext(ac.FileName));
  rewrite(ToF);
  FileLength :=1447034;
  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);




burada  "Buffer: array[0..1447034] of char" olduğu gibi 1447034 girdiğimde dosyayı okumuyo ve "Stack overflow" diye bir mesaage çıkıyo

nerden kaynaklandığını anlayamadım.
Kod yazmaya devam...
metinkorkmaz
Üye
Mesajlar: 46
Kayıt: 25 May 2005 09:08
Konum: izmir

Mesaj gönderen metinkorkmaz »

var
Buffer: array[0..1447034] of char;

Bu kısmı dışarıda tanımlamayı dene. Procedure ın altında tanımlanan degişkenler stackta tutulur ve senin 1.44 mb lık bilgine dayanacak stack yok :) Dışarıda tanımlayınca bu dizi exe de tutulur ve sen programı büyültürsün.

En dogru yaklaşım dinamik array kullanmandır.

........
var
Buffer: array of char;
begin
Setlength(buffer,1447034);
.............
Kullanıcı avatarı
espasem
Üye
Mesajlar: 55
Kayıt: 05 May 2005 01:37
Konum: KOCAELİ

Mesaj gönderen espasem »

anladım

demek dayanamıyo stack :lol:

çookkk teşekkürler.
Kod yazmaya devam...
Cevapla