Sie ma!
Chciałbym stworzyć plik tekstowy do którego mógłbym zapisywać dane
i odczytywać ale tylko te, które są mi w tym momencie potrzebne.
Coś na kształt sekcji z pliku ini.
spójrz sobie w dół
Na zywca skopiowalem to z FAQ - tam zajrzyj w pierwszej kolejnosci
var
TF : TextFile;
begin
AssignFile(TF, 'Nazwa pliku.txt');
Append(TF);
Writeln(TF, 'Moja strona w Internecie:');
Writeln(TF, 'www.programowanie.of.pl');
CloseFile(TF);
end;
Nie o to mi chodziło, bo co jeżeli chcę odczytać coś ze środka pliku np jeżeli mam plik z informacjami o jakiejś osobie podzielony na sekcje :
dane podstawowe, adres , zainteresowania itd, itp a chcę odczytać tylko adres i wyświetlić go w memo.
Najlepsze rozwiązanie to Bazy Danych i SQL :-)
procedure TForm2.CzytajPlik;
var
plik : TextFile;
txt : String;
text2: string;
text3:string;
text4:string;
text5:string;
begin
if FileExists('plik.tap') then
begin
AssignFile(plik,'plik.tap');
Reset(plik);
Readln(plik,txt);
Readln(plik,text2);
Readln(plik,text3);
Readln(plik,text4);
Readln(plik,text5);
CloseFile(plik);
address:=txt;
koles:=text2;
ona:=text3;
ty:=text4;
ja:=text5;
end;
end;
Funkcja ReadIn odczytuje jedną linijke z pliku :)
Plik.tap to nazwa pliku :)
Nie o to mi chodziło, bo co jeżeli chcę odczytać coś ze środka pliku np jeżeli mam plik z informacjami o jakiejś osobie podzielony na sekcje :
dane podstawowe, adres , zainteresowania itd, itp a chcę odczytać tylko adres i wyświetlić go w memo.
skorzystaj z plikow INI
tam mozesz sobie porobic sekcje i latwo miec dostep do tych danych....
[SEKCJA]
wpis=zawartosc
uses inifiles;
...
procedure zapis;
var ini:tinifile;
begin
ini:=tinifile.create(extractfilepath(paramstr(0))+'settings.ini');
ini.writestring('SEKCJA','wpis','zawartosc');
ini.free;
end;
procedure odczyt;
var ini:tinifile;
begin
ini:=tinifile.create(extractfilepath(paramstr(0))+'settings.ini');
//np. :
form1.caption:=ini.readstring('SEKCJA,'wpis','to co bedzie jak pliku niebedzie....');
ini.free;
end;
w oncreate odczyt w onclose zapis:)
Myślę że to może Ci się przydać, nie jakieś bezsensowne pliki *.ini. Tylko twój własny plik binarny!
TDane = record
dana1 : byte;
pelnyEkran, muzyka, monitor : boolean;
dowolnaInnaDana : String;
cokolwiek : Word;
end;
var MojeDane : TDane;
procedure czytajDaneZPliku(sciezkaDoPliku : String);
var plik : file of TDane;
begin
if fileExists(sciezkaDoPliku) then begin
assignFile(plik, sciezkaDoPliku);
reset(plik);
blockRead(plik, MojeDane, 1);
closeFile(plik);
end
end;
procedure zapiszDaneDoPliku(sciezkaDoPliku : String);
var plik : file of TDane;
begin
assignFile(plik, sciezkaDoPliku);
rewrite(plik);
blockRead(plik, MojeDane, 1);
closeFile(plik);
end;
mam nadzieję że wiesz jak korzystać z typów rekordowych, a jak nie to pytaj, nic trudnego, a bardzo to użyteczne
Witam!
Dzięki AndRew o to właśnie mi chodziło. Wcześniej korzystałem z plików ini, ale jeśli chciałem za jednym zamachem wczytać więcej danych to korzystając z odczytu całej sekcji wypisywał mi wszystko łącznie ze znakami "=" itp. [browar] [cya]