AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programmupdate über Extraprogramm

Ein Thema von Nicolai1234 · begonnen am 23. Feb 2005 · letzter Beitrag vom 24. Feb 2005
 
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#1

Programmupdate über Extraprogramm

  Alt 23. Feb 2005, 17:33
Ich wollte in mein Programm eine Updatefunktion einbauen. Hierzu wollte ich über mein Hauptprogramm die neuen Dateien runterladen.
Dann soll das Hauptprogramm beendet werden, ein Konsolenprogramm aufgerufen werden, das die Dateien ersetzt, und dann wieder das Hauptprgramm geöffnet werden.

Die Daten, was es kopieren und löschen soll, bekommt die Konsolenanwendung aus einer ini. So wie diese hier:
Zitat:
[QUELLE]
P1=c:\test.txt
P2=c:\test3.txt

[ZIEL]
P1=c:\test2.txt
P2=c:\test4.txt

[URSPRUNG]
P=Mein Programm
Es soll immer von Quelle nach Ziel kopiert werden. Davor soll die alte Zieldatei gelöscht werden, danach die Quelldatei.
Am Ende soll das Hauptprogramm wieder geöffnet werden. (der komplette Pfad steht unter URSPRUNG)

Das ganze geht in der Praxis auch mit diesem Code: (Das Sleep kann man sich jetzt mal wegdenken, denn das ist nur da, damit das nicht alles so schnell geht... )
Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils, idGlobal, inifiles, QDialogs, ShellAPI, forms, windows;

var
i: integer;
ini: tinifile;

begin
writeln('Update wird abgeschlossen...');
sleep(50);
writeln('INI wird geladen...');
ini := tinifile.create(ExtractFilePath(Paramstr(0))+'update.ini');
sleep(50);
writeln('INI wird geladen... abgeschlossen');
sleep(50);
writeln('Dateien werden kopiert...');
sleep(50);
i := 1;
while ini.ReadString('QUELLE','P'+inttostr(i),'0') <> '0do
begin
writeln('Loeschen der Zieldatei... (' + inttostr(i) + ')');
deletefile(pchar(ini.ReadString('Ziel','P'+inttostr(i),'0')));
sleep(50);
writeln('Kopieren der Datei...');
copyfileto(pchar(ini.ReadString('QUELLE','P'+inttostr(i),'0')), pchar(ini.ReadString('ZIEL','P'+inttostr(i),'0')));
sleep(50);
writeln('.......................abgeschlossen');
writeln('Löschen der Datei...');
deletefile(pchar(ini.ReadString('QUELLE','P'+inttostr(i),'0')));
sleep(50);
writeln('Löschung war erfolgreich');
inc(i);
sleep(50);
end;
writeln('Update erfolgreich abgeschlossen...');
sleep(500);
ShellExecute(Application.Handle, 'open' ,PChar(ini.readstring('URSPRUNG','P','0')), nil, nil, sw_ShowNormal);
end.
Das funktioniert soweit auch alles sehr gut, aber das Programm ist in dieser form leider 572KB groß. Ich wollte das eigentlich mit einem Konsolenprogramm machen, um es möglichst klein zu haben.

Was könnte man ändern bzw. wie würdet ihr es machen? Das Grundprinzip sollte aber dabei gleich bleiben.
Danke
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz