merhaba arkadaşlar.
belirttiğim dosyaya rasgele erişim(yazma /okuma) yapmak istiyorum.
dosyada belirttiğim konuma mümkünse string yada integer yazıp istediğim anda konum belirterek bu değerleri okumam lazım.
bunun için Tfilestream türünden bi değişken tanımlayıp işlemleri bununla yapmaya çalşıştım. yazma da çok da bi sorun yok aslında f.write(buffer,count); için buffer a yazılacak değeri ve count içinde yazılacak değerin uzunluğunu aldım.
ama okumada okunacak değerin boyutunu bilmiyorum yani farklı uzunluktaki değerleri yazıp okuyacağım. nasıl bi yol izlemem gerek??
rasgele erişimli dosya??
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: rasgele erişimli dosya??
a: recordunicorn64 yazdı:merhaba arkadaşlar.
belirttiğim dosyaya rasgele erişim(yazma /okuma) yapmak istiyorum.
dosyada belirttiğim konuma mümkünse string yada integer yazıp istediğim anda konum belirterek bu değerleri okumam lazım.
bunun için Tfilestream türünden bi değişken tanımlayıp işlemleri bununla yapmaya çalşıştım. yazma da çok da bi sorun yok aslında f.write(buffer,count); için buffer a yazılacak değeri ve count içinde yazılacak değerin uzunluğunu aldım.
ama okumada okunacak değerin boyutunu bilmiyorum yani farklı uzunluktaki değerleri yazıp okuyacağım. nasıl bi yol izlemem gerek??
kno : integer;
kadi : string;
var
fileee : file of a;
sonrada seek ile istediğin yere git;
belki bunları zaten biliyorsundur ama eski pascalcı olduğumdan nostaljisi var bunlaın bende.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Malum, bu işler biraz karışıktır. FreeMem prosedürünün help üzerinden örnek koduna baklılırsa kodları görülecektir. BlockRead olayından sonra Buffer ile her bir byte teker teker kontrol edilebilir.
Kod: Tümünü seç
var
F: file;
Size: Integer;
Buffer: PChar;
begin
AssignFile(F, 'test.txt');
Reset(F, 1);
try
Size := FileSize(F);
GetMem(Buffer, Size);
try
BlockRead(F, Buffer^, Size);
ProcessFile(Buffer, Size);
finally
FreeMem(Buffer);
end;
finally
CloseFile(F);
end;
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .