tamam
şimdi daha iyi anladım.
Yardınların için sağol hemşerim. şimdi deneyeyim bi.
Dosya Uzantısı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
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...
-
- Üye
- Mesajlar: 46
- Kayıt: 25 May 2005 09:08
- Konum: izmir
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);
.............
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

En dogru yaklaşım dinamik array kullanmandır.
........
var
Buffer: array of char;
begin
Setlength(buffer,1447034);
.............