AGB  ·  Datenschutz  ·  Impressum  







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

Dateien in eine zusammenfassen

Ein Thema von xZise · begonnen am 6. Jul 2006 · letzter Beitrag vom 6. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Dateien in eine zusammenfassen

  Alt 6. Jul 2006, 16:04
Gibt es in Delphi eine möglichkeit Dateien zu einer neuen zusammenfassen?

Also so ähnlich wie Zip, rar etc.!

Nur "brauche" ich keine Komprimierung, sondern lediglich eine Zusammenfassung. Damit man z.B. nur eine Datei downloaden muss, und die dann von MEINEM Programm wieder auseinadergefrickelt wird?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Dateien in eine zusammenfassen

  Alt 6. Jul 2006, 16:08
Ich habe es nicht getestet, aber sollte an sich mit TFileStream gehen.

Immer die Position merken an der er mit der neuen Datei beginnt zu lesen.
Mit SaveToFile Speichern.
Und beim "entpacken" wieder immer bis zu den gemerkten Positionen lesen und in eine neue Datei speichern.

Sollte gehen
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Dateien in eine zusammenfassen

  Alt 6. Jul 2006, 16:08
Vielleicht in Resourcen *.res-Dateien packen ?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Dateien in eine zusammenfassen

  Alt 6. Jul 2006, 16:12
Zitat von Tyrael Y.:
Ich habe es nicht getestet, aber sollte an sich mit TFileStream gehen.

Immer die Position merken an der er mit der neuen Datei beginnt zu lesen.
Mit SaveToFile Speichern.
Und beim "entpacken" wieder immer bis zu den gemerkten Positionen lesen und in eine neue Datei speichern.

Sollte gehen
Mit Streams habe ich noch nicht gearbeitet...

Müsste ich das denn ungefähr so speichern:
Zitat:
<Dateipositionen>
<Datei1>
<Datei2>
...
?


Zitat von Martin K:
Vielleicht in Resourcen *.res-Dateien packen ?
Wie geht das?


Und eigentlich dachte ich an einer "eigenen" Dateiendung
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Dateien in eine zusammenfassen

  Alt 6. Jul 2006, 16:16
Zitat von xZise:
Zitat von Martin K:
Vielleicht in Resourcen *.res-Dateien packen ?
Wie geht das?
Och, da wirst Du bestimmt in der Suche viel finden.
Bei *.res ist es auch praktisch, wenn Du ein selbstentpackendes Archiv machen willst.
Also einfach die res in eine EXE einbinden, und wenn die EXE gestartet wird, können die Dateien entpackt werden.

Zitat von xZise:
Und eigentlich dachte ich an einer "eigenen" Dateiendung
Dann musst Du es doch per FS machen...
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
franktron

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

Re: Dateien in eine zusammenfassen

  Alt 6. Jul 2006, 16:19
Ich hab mal sowas Programmiert hier ist die Klasse mit DEMO
Angehängte Dateien
Dateityp: zip file_test_544.zip (5,3 KB, 18x aufgerufen)
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Dateien in eine zusammenfassen

  Alt 6. Jul 2006, 16:22
Zitat von xZise:
Gibt es in Delphi eine möglichkeit Dateien zu einer neuen zusammenfassen?

Also so ähnlich wie Zip, rar etc.!
Nicht so ähnlich sondern mach es genau so. Nimm dir 'ne ZIP-Komponente und das ZIP-Format.
Damit brauchst Du das Rad nicht nochmal neu zu erfinden und hast neben (der nicht nötigen Komprimierung) gleich auch eine CRC-Checksumme für das Archiv eingebaut.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Dateien in eine zusammenfassen

  Alt 6. Jul 2006, 16:23
Nuja

Du brauchst wohl auch den Dateinamen, oder?

dann würd ichs so machen:

Delphi-Quellcode:
type
  TFileHeader = record
    len: Int64;
    name: string;
    path: string;
Mit dem Filestream dann schreiben:

Delphi-Quellcode:
var files: array of TFileHeader;
    fs: TFIleStream;
    ms: TMemoryStream;
    i: Integer;
    slen: Int64;
begin
  ms := TMemoryStream.Create;
  fs := TFileStream.Create('archive.xzs',fmOpenCreate);
  for i := 0 to high(files) do
    begin
      slen := length(files[i].name);
      fs.write(slen); //länge des dateinamens schreibeb
      fs.Write(@files[i].name[1],slen); //dateinamen schreiben
      fs.Write(len); //länge der datei schreiben
      ms.size := 0;
      ms.LoadFromFile(files[i].path); //datei laden
      ms.Position := 0;
      fs.CopyFromStream(ms,ms.size); //datei schreiben
    end;
end;
so weisst du beim laden immer, wie lange deine daten sind.

Im übrigen würde ich auch zu einer vorhandenen Lösung greifen, ich meine,m was hast du gegen Komprimierung?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Dateien in eine zusammenfassen

  Alt 6. Jul 2006, 16:25
Zitat von Martin K:
Och, da wirst Du bestimmt in der Suche viel finden.
Bei *.res ist es auch praktisch, wenn Du ein selbstentpackendes Archiv machen willst.
Also einfach die res in eine EXE einbinden, und wenn die EXE gestartet wird, können die Dateien entpackt werden.
[...]
Dann musst Du es doch per FS machen...
Okay
Zitat von Bernhard Geyer:
Zitat von xZise:
Gibt es in Delphi eine möglichkeit Dateien zu einer neuen zusammenfassen?

Also so ähnlich wie Zip, rar etc.!
Nicht so ähnlich sondern mach es genau so. Nimm dir 'ne ZIP-Komponente und das ZIP-Format.
Damit brauchst Du das Rad nicht nochmal neu zu erfinden und hast neben (der nicht nötigen Komprimierung) gleich auch eine CRC-Checksumme für das Archiv eingebaut.
- Ist diese Komponente kostenlos?
- Eigene Dateiendung?

Zitat von franktron:
Ich hab mal sowas Programmiert hier ist die Klasse mit DEMO
o.O Sieht gut aus, aber MUSS es eine ".dat" sein?

Könntest du auch eine Beispiel-exe beilegen?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Dateien in eine zusammenfassen

  Alt 6. Jul 2006, 16:25
Ups sry meinte TMemoryStream.

Dabei ist zu beachten, daß die Dateien dann solange das Objekt von TMemoryStream da ist im Speicher liegen. Daher nicht ratsam mit sehr großen Dateien, wenn du nicht soviel RAM hast. Für kleinere Dateien sollte es machbar sein.

Speichern:
- alle Dateien, die du "speichern" möchtest in einer Schleife durchgehen
- die Eigenschaft "Position" merken
- LoadFromFile für die erste Datei aufrufen
- nächster Schliefendurchlauf
- die Eigenschaft "Position" merken
- LoadFromFile für die zweite Datei aufrufen
...
am Ende mit SaveToFile in eine neue Datei speichern

Lesen:
- mit LoadFromFile deine Datei laden
- mit Read bis zur gemerkten Position lesen
- das ganzte in eine Datei speichern
usw.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:01 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