ďťż

Ładny brzuch

Witam :)
Wie ktos moze, jak zapisac plik INI do pliku exe tak zeby ten exe odczytywal konfigurację "sam z siebie :D"
Z gory thx




Witam :)
Wie ktos moze, jak zapisac plik INI do pliku exe tak zeby ten exe odczytywal konfigurację "sam z siebie :D"
Z gory thx

no raczej nie :D
i jeszcze dwa bo zapomnialem co zrobic, zeby przy zamykaniu programu program nie zamknal sie do puki nie wykona wszystkiego w onclose ?
I jak zrobic, zeby status zostawal po rozlaczeniu sie z serwerem w THGG ??

http://community.bor...0,27979,00.html ? :>



yyy... postaram sie zrozumiec :D
a zna ktos odpowiedzi na inne pytania, przydalby sie tez odczyt z exe.

Tylko pamiętaj, że bez programu pomocniczego do samego siebie niczego nie zapiszesz ;)


yyy... postaram sie zrozumiec :D
a zna ktos odpowiedzi na inne pytania, przydalby sie tez odczyt z exe.

A ja widze ;) A na inne pytanka (szczegolnie ten opis) ktos zna odpowiedzi :D??
Użytkownik d35tr0y3r edytował ten post 08 styczeń 2006, 18:55
Po co ci zapisywac INI ? :P

Patrz, tutaj masz procedurke zapisu do Exe:

[...]type PTableString = ^TTableString; TTableString = array of string; TForm1 = class(TForm)[...] [...]var // Globalne Form1: TForm1; res : TTableString;[...] [...]procedure SaveToExe(FName, Str: string); var  F : file of Byte;  i : Integer; begin  AssignFile(F, 'Nazwa.exe');  Reset(F); try   Seek(F, FileSize(F) - SizeOf(i));   BlockRead(F, i, SizeOf(i)); if (i < SizeOf(i)) or (i > FileSize(f)) then i := 0;   Seek(F, FileSize(F) - i);   Truncate(F);   BlockWrite(F, Str[1], Length(Str));   i := Length(Str) + SizeOf(i);   BlockWrite(F, i, SizeOf(i)); finally   CloseFile(F); end; end;

Jak bys chcial np. teksty z dwoch editow to zapisujesz tak:

SaveToExe('Nazwa.exe', Edit1.Text + ']' + Edit2.Text);

No, dobra juz zapisano :)

Teraz odczyt, musisz zastosowac taka funkcje (rozdzielacz dwoch editow za posrednictwem tego znaku: "]" :

[...]type PTableString = ^TTableString; TTableString = array of string;[...] [...]function explode(str: string; rozdzielacz: Char): TTableString; var i, j: Integer; begin j:=1; i:=1; while i <= Length(str) do begin if (str[i] = rozdzielacz) or (i = Length(str)) then begin if (i = Length(str)) and (str[i] <> rozdzielacz) then inc(i); SetLength(Result, High(Result)+2); Result[High(Result)] := Trim(Copy(str, j, i-j)); j := i+1; end; inc(i); end; end;

Teraz funkcja czytania:

[...]function LoadFromExe(FName: string): string; var  F : file of Byte;  i : Integer; begin  Result := '';  AssignFile(F, 'Nazwa.exe');  FileMode := fmOpenRead;  Reset(F);  try   Seek(F, FileSize(F) - SizeOf(i));   BlockRead(F, i, SizeOf(i));    if (i < SizeOf(i)) or (i > FileSize(f)) then Exit;   Seek(F, FileSize(F) - i);   SetLength(Result, i - SizeOf(i));   BlockRead(F, Result[1], Length(Result));  finally   CloseFile(F);  end; end;[...]

Ok!. Teraz tylko procedurka czytania:

[...]res:=explode(LoadFromExe('Nazwa.exe'),']');[ ...]

A wywolujesz pierwszy edit, tak:

TForm1.Button1Click(Sender: TObject); begin Edit1.Text := res[0]; end;

I, tak wlasnie wczytales, zapisany Edit, do Edita w drugim programie :)

Pozdro.

No teraz już wszystko wiem , dzięki :D
Tylko właśnie mam problem z tym opisem w THGG :)

Nie wiem za bardzo o co ci chodzi...

Ale, tam wspomniales, zeby program nie zamykal sie przed wykonaniem procedury. Musisz poprostu dac procke pod OnCloseQuery. Program wykona procedury przed zamknieciem programu. Dajmy na to:

CanClose:=False;

Wtedy, przed zamknieciem programu, program nie pozwoli na jego zamkniecie :P

Pozdr.
Użytkownik Shooter edytował ten post 08 luty 2006, 20:31
Shooter w twoim przykładzie jest błąd: po pierwsze nie wspomniałeś że do pliku w którym chcemy zapisać do var trzeba dodać:
res : TTableString; (dziwne że znalazło się to w pierwszym pliku)

Poza tym coś żle jest w przykładzie który podałeś bo po naciśnięciu buttona w pliku w którym miało zapisać wyskakuje:
http://img420.images...86/error8kr.jpg

Kurcze fajnie by było żebyś poprawił bo to przejrzyście napisana instrukcja :) (tylko szkoda że ten error wyskakuje :( )
Użytkownik dddman edytował ten post 09 luty 2006, 21:40
Nie mozesz tego uzyc w trakcie dzialania programu :P


Nie mozesz tego uzyc w trakcie dzialania programu, do ktorego zapisujesz :P

nie pisz posta pod postem :]

Pewnie możesz sobie dopisać do dowolnego pliku, tylko nie do aktualnie odpalonego (logiczne)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •