Autor Beitrag
mimi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Do 13.11.03 20:41 
Hallo,
ich muss die größe(in bytes) von der eigen anwendung zur laufzeit ermitteln wie geht das am besten ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Do 13.11.03 21:11 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
// Source nicht getestet !

var SR:TSearchRec;
begin
 if FindFirst(Application.ExeName,faAnyFile,SR)<>0 then exit;
 // Dateigröße befindet sich jetzt in SR.Size
 FindClose(SR);
end;

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Do 13.11.03 23:05 
genau diese möglichkeit habe ich schon getestet, ergbnis:
size ist zu klein.
ich muss das ende der exe rausbekommen.
gibts noch andere möglichkeiten ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 13.11.03 23:39 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Button1Click(Sender: TObject);
var SR:TSearchRec;
begin
 if FindFirst(Application.ExeName,faAnyFile,SR)<>0 then
   exit
 else
   ShowMessage(IntToStr(SR.Size));
 FindClose(SR);
end;

Exakt die Dateigröße, bis auf das letzte Byte.
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Fr 14.11.03 08:15 
@Luckie: Ist das vom Prinzip nicht dasselbe, wie "mein" Code?
@Mimi: Könntest du das genauer erklären? Sollgröße/Istgröße, etc.

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 14.11.03 15:21 
Es ist dein Code. Ich wollte nur zeigen, dass es bei mir funktioniert. Mimi sollte mal kucken, was er da noch macht.
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 14.11.03 15:23 
diese idee hatte ich auch:
ich arbeite z.z. an einem sfx tool, wenn ich der variable exeSize die größe die mir das Windows eingenschaften dialog angiebt dort eintrage geht es, wenn ich aber die größe mit findFirst ermittele geht es nicht, weil die größe zu klein ist, warum ???
der code ist der selbe wie bei dir maxk

der trehd kann geschloßen werde, das was ich vorhatte funktionirt nicht....
nicht wegen der exe größe sondern wegen was andres kann es garnicht funktioniern.

_________________
MFG
Michael Springwald, "kann kein englisch...."
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 14.11.03 15:55 
Zu welchem Zeitpunkt ermittelst du denn die Größe?
mimi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Fr 14.11.03 16:05 
wenn die datei aufgerufen wird, also beim starten des SFX archvies wird die größe ermitteln und heute ist mir eingefallen, das das ja garnicht geht, so werde ich einfach die datei größe am ende der datei reinschreiben, das wird wohl das einfachste sein, würde ich mal sagen.

_________________
MFG
Michael Springwald, "kann kein englisch...."
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 14.11.03 16:13 
Dann hängen doch schon die Dateien dran oder täusche ich mich da jetzt? Da sich die Grölße der SFX-Archiv Exe nichgt ändert kannst du sie als Konstante im Quellcode eintragen.