Dateien Vereinen
Hi leute,
wie kann ich mehrere dateien miteinander vereinen und auch wieder trennen? am besten so das es nicht jeder wieder auseinander nehmen kann z.B als Zip oder so mit passwort! wichtig wäre dabei das es ne leicht zu verstehende komponente OHNE Dll ist. mfG |
Re: Dateien Vereinen
http://dsdt.info/tipps/?id=133
Sollte ja leicht zu verstehen sein: Also was das teil macht: Zuerst oeffnet es Beide Dateien und kopiert bei der einen alles bis zum Ende. Dann wird in der ersten Datei ein 0-Byte angehanegt. Das Kopierte wird in die erste Datei am Ende eingefuegt und das ganze gespeichert. Beim Splitten wird wieder alles vor dem 0-Byte in die eine gestopft und das danach in die andere. Anmerkung: es darf kein 0-byte in einer der Beiden Dateien vorkommen. Oops: funktioniert doch anders: die Dateigroessen werden noch reingespeichert. So kann man es nach Anzahl bytes rauskopieren beim Splitten. |
Re: Dateien Vereinen
Komponente? Wie wäre es du machst dir eine Struktur die du benutzt, z.b.
diese Struktur schreibst am Anfang der Datei..
Delphi-Quellcode:
Danach schreibst du wie oft du das brauchst hintereinander auf, also wieviele Dateien du Archivieren möchtest..
type TDatenInfo = packed record
Signature: DWORD; // deine sig oder sonstiges, damit du weißt das es höhstwahrscheinlich dein Archiv format ist FilesCount: Integer; // anzahl der Dateien end;
Delphi-Quellcode:
und danach schreibst einfach die Dateien nach der Reihe im Archiv auf...
type TDaten = packed record
Filename: string[255]; // Dateiname Offset: DWORD; // Adresse, von wo die Datei beginnt im Archiv Size: DWORD; // Größe der Datei im Archiv end; |
Re: Dateien Vereinen
ja wie? brauche genauere infos.. das mit dem Split und Join habe ich versucht das verursacht jedoch fehler bzw. ist nicht das was ich suche
|
Re: Dateien Vereinen
Was für Fehler? Vlt 'n "Layer 8" Problem?
|
Re: Dateien Vereinen
Also ich habe nen timer wo ich nach und nach dateien immer wieder mit einer ausgangs ini verschmelze.. sodass alle anderen in der ini sind die dateien heissen z.B bla_0.dat bla_1.dat das mache ich halt mit ner schleife
und das split dann andersherum zuerst hole ich die 1 dann die 0.. das geht auch soweit jedoch kriege ich neuerdings nen error... manche entpackt er dann kommt ein fehler und er bricht ab habe ich z.B 5 dateien drin hat er gerade 2,3,4 rausgeholt aber 1 und 5 nicht das ist also zu instabil gibt es keine andere möglichkeit die dateien sicher aneinander zu hängen? |
Re: Dateien Vereinen
Vlt solltest du den Timer deaktivieren, während er seinen Event ausführt?
|
Re: Dateien Vereinen
Na, nicht vielleicht, sondern UNBEDINGT den Timer disablen!!!!
|
Re: Dateien Vereinen
naja der schlägt aber nur alle 20 sekunden zu :)
|
Re: Dateien Vereinen
Kommando zurück.... na, dann.... aber aus Prinzip würd' ich's trotzdem tun ... :dance:
|
Re: Dateien Vereinen
habe ich getan.. also das packen scheint gut zu laufen ohne probleme.. das entpacken macht jedoch probleme er splittet die dateien an falschen stellen wieder auf so hat z.B dat_5 200 statt 50kb und so
|
Re: Dateien Vereinen
Hmm, ich denke, du solltest schrittweise vorgehen. Bevor du nicht absolut sicher bist, dass das Packen KORREKT funktioniert hat, solltest du nicht das "Entpack-Problem" versuchen zu lösen. Schau dir die gepackte Datei z.B. mit 'nem Hex-Editor an und prüfe, ob das wirklich korrekt gelaufen ist.
|
Re: Dateien Vereinen
also ich mache das so.. ich nehme als hauptdatei eine ini wo ich nach jedem schritt die anzahl der files rein schreibe und diese beim splitten auch wieder auslese.. aber seit neuesten kriege ich da fehler
|
Re: Dateien Vereinen
Das versteh ich jetzt irgendwie nicht: Du musst doch die jeweile StartAdresse und die Länge der Datei wissen, schreibst du das nicht in die "INI"? Oder sind die Dateien alle gleich lang???????
|
Re: Dateien Vereinen
nein ich schreibe nur die anzahl der dateien in die ini..
die funktion macht das anhand des datei namens automatisch mit der länge wie ich das mitbekomme habe! |
Re: Dateien Vereinen
Uhhh, wer lesen kann ist echt im Vorteil :stupid:
- steht ja im zweiten Beitrag: #00 ist der Trenner! Dann hast du die eigentlichen Prozeduren also nicht selbst geschrieben. Bleibt für mich die Frage: Ist sichergestellt, dass in deinen Dateien nie #00 enthalten ist??? Ich halte diese Lösung für problematisch! Ich würd's nicht so machen wollen... Nix für ungut, aber ich mach' für heute Schluss :hi: Gute Nacht |
Re: Dateien Vereinen
Wenns ini Dateien sind ists ja kein Problm, oder haben die neuerdings auch regelmaessig ein 0-Byte drin
|
Re: Dateien Vereinen
es sind alles jpeg's die einzelnen dateien!
|
Re: Dateien Vereinen
...und da sind massenhaft #00's drin ...............
|
Re: Dateien Vereinen
Hmm wie könnte ich es sonst gut lösen?
|
Re: Dateien Vereinen
Mit dem Trenner geht's m.E. nicht - du musst (wie schon beschrieben, Offset und Länge der einzelnen Dateien merken) und diese Information beim extrahieren verwenden. Also beide Prozeduren selber schreiben...
|
Re: Dateien Vereinen
Hmm ich wüsste jetzt nicht wie das gehen soll :( gibts da nix fertiges oder so?
|
Re: Dateien Vereinen
ich glaube das Michael Puff sowas mal gemacht hat
|
Re: Dateien Vereinen
und was bringt mir das jetzt? :D
|
Re: Dateien Vereinen
Du willst eine Datei splitten?
Beim zusammenfügen zB einfach alle Dateien in einem Verzeichnis in eine Liste holen, angefangen von Split.000 bis Split.N - sozusagen bis es keine mehr gibt, und die mit den Funktionen von oben wieder zusammenfügen. Was ist denn das Problem? Wenn dir die nötigen Grundlagen im Umgang mit der Delphi-Hilfe, Datentypen und Funktionen fehlen, dann lies doch ein Buch oder Tutorial? Man muss doch aus so'ner trivialen Sache nicht schonwieder 'nen 3-Seiten-Thread machen? :gruebel: |
Re: Dateien Vereinen
ich will keine datei Splitten, bitte nochmal richtig lesen!
Ich möchte ca. 10 dateien mit einander verpacken das es eine wird und diese auch später wieder auseinander nehmen! |
Re: Dateien Vereinen
Also ich möchte es so machen:
als hauptfile wird eine ini genommen in der die anzahl der an der ini angehängten dateien steht (1-50 dateien ca.) nur weiss ich nicht wie ich die dateien am besten an einander hänge und auch komfortabel wieder auseinander setzen kann.. die Split/join funktion von dsdt ist nicht das wahre da sie fehler macht beim splitten von jpeg's |
Re: Dateien Vereinen
:wiejetzt:
Zitat:
Zitat:
Zitat:
Wenn du ein Archiv hast und Dateien daraus extrahieren willst, dann gehst du das Ganze ziemlich umständlich an. Vorallem wie kommen die Dateien darein? Hast du das gemacht? Überdenke doch nochmal dein Konzept, das geht doch hinten und vorn nicht auf? :gruebel: Mach dich mal über Datentypen und den Umgang mit Dateien schlau. Du kannst Dateigrößen und die Anzahl der Dateien in der Datei als Integer-Werte "binär" speichern und lesen (FileRead, FileWrite), in Dateien hin- und herspringen (FileSeek), Puffer mit bestimmten Größen auslesen, etc. Statt Dateien mit Handles zu verarbeiten (wie bei den FileOpen, FileRead, ... Funktionen) kannst du auch TFileStream nehmen. |
Re: Dateien Vereinen
nein ich habe bisher noch nichts archiviert oder so ich suche immernoch eine methode dies zu tun..
ja dann zeig mir mal bitte tutorials dazu wie man die daten binär speichert also die anzahl der dateien deren größe etc. |
Re: Dateien Vereinen
Sorry, aber was hindert dich - ausser Trägheit - daran, Google oder einschlägige Tutorial-Seiten mal zu besuchen? Dass ihr euch immer alles in den A**** schieben lassen wollt ... :roll:
--> http://dsdt.info/tutorials/?cat=11 |
Re: Dateien Vereinen
Siehe dazu meinen SFX-Builder: http://www.delphipraxis.net/internal...307&highlight=
|
Re: Dateien Vereinen
was bringt mir ein SFX builder? ich habs nun ganz anders geschafft mit einer wie ich finde sehr guten methode ohne componenten/klassen.
kann hier also zu :) btw. in google habe ich stundenlang nix gefunden seiten wie dsdt sind einfach schlecht. |
Re: Dateien Vereinen
Dann rat mal, was ein SFX-Packer macht, nämlich genau das, was du willst.
|
Re: Dateien Vereinen
Zitat:
http://dsdt.info/tutorials/streams/ ist einfach schlecht? Für mich sieht das - im Ansatz - genau so aus, wie das was du willst. :gruebel: Asö, btw: Delphi Datei Tutorial Zweiter Haupttreffer, erster Unterpunkt. Da bin ich auf die dsdt-Seite gekommen. |
Re: Dateien Vereinen
Nur mal so am Rande (möchte gern mitschmunzeln): Was ist ein "Layer 8"-Problem??? :shock:
|
Re: Dateien Vereinen
BTW. und wie hast du es jetzt geschaft?
|
Re: Dateien Vereinen
|
Re: Dateien Vereinen
AHAAAAAAAAA, da dort nur von 7 Layern gesprochen wird, ist der Layer 8 also entweder der Anwender oder der Programmierer - und dort liegt hier das Problem - richtig verstanden?
|
Re: Dateien Vereinen
Exakt. :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:28 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