@hakkus Yazı; String tipinde değil de Char Array tipinde olmalı.
Kod: Tümünü seç
var
Buffer : Array [0..2048] of Char;
Text : String;
Dosya,
Uzunluk : Integer;
begin
FillChar(Buffer, SizeOf(Buffer), #0);
Text := 'Bu ilk Satır Boş Kalmasın';
StrPCopy(Buffer, 'Bu ilk Satır Boş Kalmasın');
Uzunluk := Length(Text);
Dosya := FileCreate('C:\Deneme.TXT');
FileWrite(Dosya, Buffer, Uzunluk);
FileClose(Dosya);
@gkirmiti'nin söyledikleri aynen geçerlidir. Buna katılarak örnek yazıyorum.
Kod: Tümünü seç
Var
TextDosya : TextFile;
begin
AssignFile(TextDosya, 'C:\Deneme.TXT');
FileMode := 2; // Read & Write
ReWrite(TextDosya);
WriteLn(TextDosya, 'Deneme');
WriteLn(TextDosya, '123');
CloseFile(TextDosya);
end;
- Özel fikrimi müsade ederseniz bildireyim, Varsayılan (Default) bilgileri tutmak, kaydetmek işlemleri için TINIFile'i öneriyorum.
- Değişkenleri kontrol etmesi, güncellemesi çok kolay.
- Dosya yoksa yine daha önce belirttiğiniz gerekçe için söylüyorum, ilk Write komutunu gördüğünde otomatik INI dosyası create ediliyor.
Değer Yazarken:
Kod: Tümünü seç
// Uses INIFiles;
Var
INIDosya : TINIFile;
begin
INIDosya := TINIFile.Create( 'C:\Deneme.INI');
INIDosya.WriteString( 'ANA KISIM', 'Deneme', '123');
INIDosya.Free;
{Dosya Çıktısı}
//[ANA KISIM]
//Deneme=123
end;
Değer Okurken:
Kod: Tümünü seç
// Uses INIFiles;
Var
INIDosya : TINIFile;
OkunanDeger : String;
begin
INIDosya := TINIFile.Create( 'C:\Deneme.INI');
// Yandaki 567 değeri isteğimize göre,
// eğer Deneme başlığı INI dosyada yoksa varsayılan (Default) değeri döndürür.
OkunanDeger := INIDosya.ReadString( 'ANA KISIM', 'Deneme', '567');
INIDosya.Free;
ShowMessage(OkunanDeger);
end;