AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Alternative zu loadfromfile viele kleine Dateien

Alternative zu loadfromfile viele kleine Dateien

Ein Thema von bluescreen25 · begonnen am 19. Jul 2007 · letzter Beitrag vom 19. Jul 2007
Antwort Antwort
Seite 1 von 3  1 23   
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#1

Alternative zu loadfromfile viele kleine Dateien

  Alt 19. Jul 2007, 13:10
Für eine skinroutinelade ich viele kleine Grafikdateien (jpg,png) zum erstellen der Form einzeln ein, da die Koordinaten und Dateinamen in einer Ini hinterlegt sind.

Die Routine braucht sehr lange beim Start des Programms, weil es eben viele kleine Dateien sind (mehr als 300) und der Festplattenzugriff lahm ist.

Eine große Datei würde schneller laden als die vielen kleinen.

Gibt es eine Möglichkeit, alle Dateien in ein zip zu packen und es in der skinroutine beim starten zu entpacken und daraus dann die Bilder wieder zu nutzen ?

sprich aus der ini wiedrum die Koordinaten zu entnehmen und die im Speicher entpackten Dateien dann zu platzieren ?

Wäre das im Längen schneller als jetzt ?
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#2

Re: Alternative zu loadfromfile viele kleine Dateien

  Alt 19. Jul 2007, 13:18
Nein, da die Pack/Entpack-Rechenzeit ja dann noch miteinfließt, wenn du am Code ansonsten nichts änderst. Es dauert also IMHO noch länger...
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.752 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Alternative zu loadfromfile viele kleine Dateien

  Alt 19. Jul 2007, 13:20
Müssen die GrafikDateien denn austauschbar sein, wenn nein dann würde es
sich eventuell anbieten die Dateien als Resource in das Programm direkt einzubinden.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Alternative zu loadfromfile viele kleine Dateien

  Alt 19. Jul 2007, 13:28
Zitat von Klaus01:
Müssen die GrafikDateien denn austauschbar sein, wenn nein dann würde es
sich eventuell anbieten die Dateien als Resource in das Programm direkt einzubinden.

Grüße
Klaus
Es geht im einen Skin....also wird es auch noch andere Designs geben.....die ini bestimmt, wie viele Elemente (Bilder) verwendet werden....
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Alternative zu loadfromfile viele kleine Dateien

  Alt 19. Jul 2007, 13:33
Zitat von calculon:
Nein, da die Pack/Entpack-Rechenzeit ja dann noch miteinfließt, wenn du am Code ansonsten nichts änderst. Es dauert also IMHO noch länger...
Es geht mir nicht um eine Kompression, sondern um ein zusammenhängendes Datenpaket bestehend aus den vielen Einzeldateien, die aber nacher im Programm wieder einzeln ansprechbar sein müssen..... die jpg und png's sind ja schon gepackt....

Ich wollte mir die vielen Festplattenzugriffe sparen...
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
844 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Alternative zu loadfromfile viele kleine Dateien

  Alt 19. Jul 2007, 13:39
Ich würde nach Möglichkeit die einzelnen Grafiken in eine Datei packen und dann mit CopyRect und ähnlichem aus dieser einen Grafik die einzelnen Skin-Grafiken rausziehen. Geht natürlich nur, wenn die Bilder eine fest definierte Größe haben.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Alternative zu loadfromfile viele kleine Dateien

  Alt 19. Jul 2007, 13:43
das einfachste ist du schreibst alle deine Skindateien hintereinander in die Datei und speicherst eben die Positionen in eine die Ini (oder sogar mit in diese Datei)

Folgendes ist ungetestet sollte aber funktionieren.
Delphi-Quellcode:
var
  lFile : TMemoryStream;
  lBigFile : TFileStream;
  lCount : Integer;
begin
  lFile := TMemoryStream.Create();
  lBigFile := TFileStream.Ceate(Filename, fmCreate);
  for lCount := 0 to DateiListe.Count - 1 do
  begin
    lFile.LoadFromFile(DateiListe.Strings[lCount];
    
    Ini.WriteString('Files', 'File' + IntToStr(lCount), DateiListe.Strings[lCount]);
    Ini.WriteInteger('Files', 'FilePos' + IntToStr(lCount), lBigFile.Position);
    Ini.WriteInteger('Files', 'FileSize' + IntToStr(lCount), lFile.Size);
    
    lFile.Position := 0;
    lBigFile.CopyFrom(lFile, lFile.Size);
  end;
  lBigFile.Free;
  lFile.Free;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Alternative zu loadfromfile viele kleine Dateien

  Alt 19. Jul 2007, 13:48
Zitat von Gausi:
Ich würde nach Möglichkeit die einzelnen Grafiken in eine Datei packen und dann mit CopyRect und ähnlichem aus dieser einen Grafik die einzelnen Skin-Grafiken rausziehen. Geht natürlich nur, wenn die Bilder eine fest definierte Größe haben.
Hmm, feste Größen haben diese natürlich nicht, weil auch die Elemente nicht fix an der selben Stelle landen.

dann müsste man in der ini einmal die Source und die Destination-Koordinaten angeben ???

Das Problem wäre dann noch, das es sich um png und jpg handelt....lässt sich schlecht zusammenfassen...und nur png funktioniert aus anderen Gründen nicht....

hmmm oder die jpg's in ein Bild zusammen und die png's in einem anderen ?
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Alternative zu loadfromfile viele kleine Dateien

  Alt 19. Jul 2007, 13:51
Das zusammenfassen würde ich lassen denn dann müsstest du das Bild in einem Stück laden und da kann es zu Problemen kommen. Denn dazu müsstest du ein zusammenhängendes Stück Speicher haben was groß genug für alle Grafiken ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#10

Re: Alternative zu loadfromfile viele kleine Dateien

  Alt 19. Jul 2007, 13:52
In der Codelib ist ein Programm zum zusammenfügen vieler kleiner Daten zu einer und ist auch recht schnell
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz