Zapis i odczyt z pliku

0

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.

0

spójrz sobie w dół

0

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;

0

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.

0

Najlepsze rozwiązanie to Bazy Danych i SQL :-)

0

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 :)

0

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....

0

[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:)

0

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

0

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]

1 użytkowników online, w tym zalogowanych: 0, gości: 1