Autor Beitrag
R4Y
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 41



BeitragVerfasst: Fr 13.10.06 14:13 
Also...

Ich arbeite im mom an einem updtaer für ein spiel!
Klappt alles prima er lädt alle updates. Nur muss ich die dateien, die er downloaden soll in den source eintragen.
dadurch müssen sich unsere mitspieler immer einen neuen updater herunter laden und das möchte ich denen nicht zumuten!

Nun möchte, dass mein programm beim starten mehrere sachen macht!

1. er soll eine notice.txt laden und sie in einem memo anzeigen! das habe ich schon hinbekommen

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.FormCreate(Sender: TObject);  // notice :p
var InternetFile,LocalFile: string;
begin

InternetFile:='http://www.x-gaming.eu/updates/Notice.txt';
LocalFile:='notice.txt';

if GetInetFile(InternetFile,LocalFile)=True then
   Memo1.Lines.LoadFromFile(LocalFile)
else
  ShowMessage('Can not download Notice.txt');


danach soll er eine files.txt laden, wo alle dateien aufgelistet sind...
beispiel:

data/bla/bla.dat 6561 //zahlen = checksumme
data/bla/bla.dat 5889899
data/bla/bla.dat 51565
data/bla/bla.dat 548489

damit könnte man dann auch verknüpfen, wo sich die dateien auf dem server befinden!! *hoffentlich*

3. er soll die dateien, die auf dem rechner sind mit den checksumme vergleichen...wenn die checksummen anders sind,
soll er die neuen dateien vom server laden!!

oha viel text :p

geht das, was ich vor habe?

wenn ja könnt ihr mir ein bissle helfen :p

source vom updater :

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, WinInet, ExtCtrls, jpeg, ShellAPI, ComCtrls, Gauges;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    Image1: TImage;
    Button4: TButton;
    Button3: TButton;
    Label1: TLabel;
    ProgressBar1: TProgressBar;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Image1Click(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function GetInetFile(const fileURL, FileName: String): boolean;  //downloadvorgang
const BufferSize = 1024;
var
  hSession, hURL: HInternet;
  Buffer: array[1..BufferSize] of Byte;
  BufferLen: DWORD;
  f: File;
  sAppName: string;
begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName),
                INTERNET_OPEN_TYPE_PRECONFIG,
               nil, nil, 0);
try
  hURL := InternetOpenURL(hSession,
            PChar(fileURL),
            nil,0,0,0);
  try
   AssignFile(f, FileName); 
   Rewrite(f,1);
   repeat
    InternetReadFile(hURL, @Buffer,
                     SizeOf(Buffer), BufferLen);
    BlockWrite(f, Buffer, BufferLen)
   until BufferLen = 0;
   CloseFile(f); 
   Result:=True;
  finally 
   InternetCloseHandle(hURL)
  end 
finally
  InternetCloseHandle(hSession)
end
end;

procedure TForm1.Button1Click(Sender: TObject);  //download-liste
var
  InternetFile1,LocalFile1,InternetFile2,LocalFile2,InternetFile3,LocalFile3: string;
begin
InternetFile1:='http://morpheus0024.mo.funpic.de/updates/config.pk';
LocalFile1:='./data/config/Config.pk';
InternetFile2:='http://morpheus0024.mo.funpic.de/updates/e.pk';
LocalFile2:='./data/HyperText/e/e.pk';
InternetFile3:='http://morpheus0024.mo.funpic.de/updates/server.ini';
LocalFile3:='server.ini';

if GetInetFile(InternetFile1,LocalFile1)=True then   //if getinetfile
   progressbar1.position:= 45
   else
  ShowMessage('Can not download config.pk');

  if GetInetFile(InternetFile2,LocalFile2)=True then
   progressbar1.Position:= 90
   else
  ShowMessage('Can not download e.pk');

  if GetInetFile(InternetFile3,LocalFile3)=True then
   progressbar1.Position:= 100
    else
  ShowMessage('Can not download server.ini');

end;

procedure TForm1.Button2Click(Sender: TObject);   //exit
begin
close
end;


procedure TForm1.Button3Click(Sender: TObject);  //start game
begin
ShellExecute(Form1.Handle, 'open', 'engine.exe', '/load /config debug', nil, SW_SHOWNORMAL);
close;

end;

procedure TForm1.FormCreate(Sender: TObject);  // notice :p
var InternetFile,LocalFile: string;
begin

InternetFile:='http://www.x-gaming.eu/updates/Notice.txt';
LocalFile:='notice.txt';

if GetInetFile(InternetFile,LocalFile)=True then
   Memo1.Lines.LoadFromFile(LocalFile)
else
  ShowMessage('Can not download Notice.txt');

end;

procedure TForm1.Button4Click(Sender: TObject); // einstellungen
begin
ShellExecute(Form1.Handle, 'open', 'engine.exe', '/setup', nil, SW_SHOWNORMAL);

end;


procedure TForm1.Image1Click(Sender: TObject);  //credits
begin
 ShowMessage('Thx to BakaBug for his great support');
end;

end.


Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Fr 13.10.06 14:29 
Natürlich geht das.

Programmiers einfach, und wenn du nich weiterkommst, kriegste hier Hilfe.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
R4Y Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 41



BeitragVerfasst: Fr 13.10.06 15:50 
hmmm...bekomme den anfang net hinne^^

ömm achja guck mal deine sig^^ www.google.de :p