unit Main;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Gauges, ScktComp;type TForm1 = class(TForm) grpPlik: TGroupBox; lblRozmiar: TLabel; txtRozmiar: TEdit; lblSciezka: TLabel; txtPath: TEdit; btnOpen: TButton; grpStatus: TGroupBox; lblWyslano: TLabel; lblSent: TLabel; lblPozostalo: TLabel; lblRemain: TLabel; Progress: TGauge; txtConsole: TRichEdit; grpContacts: TGroupBox; Edit1: TEdit; btnSend: TButton; lstKontakty: TListBox; btnAdd: TButton; btnDelete: TButton; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; ClientSocket1: TClientSocket; ServerSocket1: TServerSocket; procedure btnAddClick(Sender: TObject); procedure Zapiszkontakty; procedure ZaladujKontakty; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;type kontakt = record IP : string; Nazwa : String; end;var Form1: TForm1; KontaktIndex : integer; Kontakty : array[0..50] of kontakt; plikKontakty : File; licznik : integer;implementationuses Kontakt;{$R *.dfm}procedure TForm1.btnAddClick(Sender: TObject);beginif(frmNowy.Showmodal=1) then begin Zapiszkontakty; end;end;procedure TForm1.Zapiszkontakty;beginAssignFile(plikKontakty,'kontakty.dat');Rewrite(plikKontakty,1);BlockWrite(plikKontakty,Kontakty,sizeof(Kontakty));closeFile(plikKontakty);end;procedure TForm1.ZaladujKontakty;beginif FileExists('kontakty.dat') thenbeginAssignFile(plikKontakty,'kontakty.dat');Reset(plikKontakty,1);Seek(plikKontakty,0);BlockRead(plikKontakty,Kontakty,filesize(plikKontakty));closeFile(plikKontakty);end;end;procedure TForm1.FormCreate(Sender: TObject);beginZaladujKontakty;end;end.
Mam problem z procedurą ZapiszKontakty. Mianowicie kiedy otworzę zapisany plik notatnikiem, widać tylko jakieś "krzaczki", a nie tekst. Czy dobrze odwołałem się do bufora? Proszę o pomoc!
P.S. Myślę, że to WinXP nie pozwala na poprwany zapis tą metodą, jeśli ktoś zna inną to proszę o odpowiedź.