AGB  ·  Datenschutz  ·  Impressum  







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

datein verschmelzen

Ein Thema von any_key · begonnen am 7. Apr 2007 · letzter Beitrag vom 7. Apr 2007
Antwort Antwort
any_key

Registriert seit: 7. Okt 2005
96 Beiträge
 
Delphi 7 Personal
 
#1

datein verschmelzen

  Alt 7. Apr 2007, 14:16
moin
ich suche ne möglichkeit mit der ich mehrere datein (auf jeden fall mehr als zwei) in eine datei zusammen binden und später wieder auseinander nehmen kann
dazu hab ich jetzt das hier gefunden: http://www.dsdt.info/tipps/?id=133
aber wenn ich darüber mehrere datein zusammenbinden will geht das nicht mehr
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: datein verschmelzen

  Alt 7. Apr 2007, 14:21
http://www.freebyte.com/hjsplit/
Markus Kinzler
  Mit Zitat antworten Zitat
any_key

Registriert seit: 7. Okt 2005
96 Beiträge
 
Delphi 7 Personal
 
#3

Re: datein verschmelzen

  Alt 7. Apr 2007, 14:26
so wie ich die seite jetzt verstanden hab ist das ein programm mit dem man große datein aufsplitten kann und später wieder zusammenfügen...
aber ich suche eine möglichkeit in meinem eigenen programm verschiedene datein zu binden
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: datein verschmelzen

  Alt 7. Apr 2007, 14:30
Moin Any_key,

Du müsstest nur alle Dateien durchgehen, jeweils die Länge wegschreiben, dann den Inhalt.
Zum Auslesen dann die Länge auslesen, und den danach folgenden Inhalt.

Delphi-Quellcode:
var
  fsOUT : TFileStream;
  fsIN : TFileStream;
  i : integer;
  sBuf : string;
  dwSize : DWORD;

begin
  // Schreiben
  fsOUT := TFileStream.Create(Gesamtdatei,...);
  try
    for i := 0 to slFileList.Count-1 do begin
      fsIN := TFileStream.Create(slFileList[i],....);
      try
        fsOUT.Write(fsIN.Size,4);
        fsOUT.CopyFrom(fsIN,0);
      finally
        FreeAndNil(fsIN);
      end;
    end;
  finally
    FreeAndNil(fsOUT);
  end;
  // Lesen
  fsIN := TFileStream(GesamtDatei,....);
  try
    for i := 0 to slFileList.Count-1 do begin
      fsIN.Read(dwSize,4);
      sBuf := StringOfChar(#00,dwSize);
      fsIN.Read(sBuf[1],dwSize);
      fsOUT := TFileStream.Create(slFileList[i],...);
      try
        fsOUT.Write(sBuf[1],dwSize);
      finally
        FreeAndNil(fsOUT);
      end;
    end;
  finally
    FreeAndNil(fsIN);
  end;
end;
Das nur als Beispiel.
Ich hoffe es stimmt alles so, denn ich habe es direkt hier reingeschreiben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
any_key

Registriert seit: 7. Okt 2005
96 Beiträge
 
Delphi 7 Personal
 
#5

Re: datein verschmelzen

  Alt 7. Apr 2007, 14:40
so ganz verstehe ich das noch nicht
könntest du das evtl noch ne bissschen genauer erläutern?
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: datein verschmelzen

  Alt 7. Apr 2007, 14:55
Zitat von any_key:
ich suche ne möglichkeit mit der ich mehrere datein (auf jeden fall mehr als zwei) in eine datei zusammen binden und später wieder auseinander nehmen kann
Warum nimmst du nicht eine ZIP-Komponenten und speicherst deine Dateien in eine ZIP-Datei. Hat noch den Vorteil, daß die Datei kleiner wird als die Summe der Programme.

Gerd
  Mit Zitat antworten Zitat
any_key

Registriert seit: 7. Okt 2005
96 Beiträge
 
Delphi 7 Personal
 
#7

Re: datein verschmelzen

  Alt 7. Apr 2007, 14:59
ich will darüber eine art installation laufen lassen
d.h. ich will die datein die verwendet werden direkt in die .exe reinbringen und wenn diese ausgeführt wird hat man direkt die konfig usw dabei
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: datein verschmelzen

  Alt 7. Apr 2007, 15:15
Dann scau dir mal http://www.jrsoftware.org/isinfo.php an
Markus Kinzler
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: datein verschmelzen

  Alt 7. Apr 2007, 18:33
Moin Any_key,

fsOUT ist immer der FileStream, in den geschrieben wird, fsIN der aus dem gelesen wird.
slFileList ist eine StringListe, in der die Pfade der Dateien enthalten sind, die zusammengefasst, bzw. wieder ausgelesen werden.

Um die Dateien zu "verschmelzen" öffnest Du jetzt die Zieldatei, und gehst dann, der Reihe nach alle Dateien durch, die Du in einer speichern willst.
Als erstes wird die Grösse der Datei gespeichert (fsIN.Size), dann der Inhalt (CopyFrom(fsIN,0)). Durch die 0 bei CopyFrom wird die gesamte Datei kopiert.

Beim Lesen wird der Ablauf dann umgekehrt:
fsIN ist jetzt die Datei, die alle anderen zusammengefasst enthält, und fsOUT ist für das Speichern der ausgelesenen Dateien auf der Platte zuständig.
Hier liest man zuerst die Grösse des folgenden Abschnittes (dwSize), reserviert sich einen Buffer (sBuf), und liest die Datei dann dort ein, und speichert sie anschliessen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: datein verschmelzen

  Alt 7. Apr 2007, 18:41
http://www.dsdt.info/tutorials/myarchiv/
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:16 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