maciko Opublikowano 6 Maja 2005 Zgłoś Opublikowano 6 Maja 2005 (edytowane) 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ź. Edytowane 6 Maja 2005 przez maciko Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
K3310pH Opublikowano 6 Maja 2005 Zgłoś Opublikowano 6 Maja 2005 No z windowsem xp to raczej duzo wspolnego nie ma. Daaaaawno nic nie pisalem w pascalu ale moze cos sie sprawdzi, mianowicie: type kontakt = record IP : string[dlugosc]; Nazwa : String[dlugosc]; end; Sprobuj cos takiego, sam typ String niebardzo pasuje do zapisu w pliku w ten sposob, nalezy wymusic mu jakas stala dlugosc/wielkosc. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
maciko Opublikowano 6 Maja 2005 Zgłoś Opublikowano 6 Maja 2005 Działa. Wielkie dzięki za pomoc. POZDRO! Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...