![]() |
Datenpaket erstellen
Hallo,
ich würde gerne eine Datensicherungsoption in meinem Programm anbieten. Ich habe 4 XML-Dateien und ein paar weitere kleinere Dateien. Insgesamt rund 100kb. Nun würde ich gerne bei der Sicherung alle Dateien in eine verschmelzen lassen und sie bei der Rücksicherung wieder trennen und einzeln erstellen. Also ähnlich wie bei ZIP|RAR etc... Natürlich gibt's da Komponenten. Aber ich sträube mich immer ein bisschen, mich von so vielen Komponenten abhängig zu machen. Hat jemand von euch eine Idee, wie ich vorgehen könnte? Ich dachte mir, ich öffne jede Datei in einem Stream und hänge diese an den Backupdateistream dran. Danach speicher ich die Datei. Aber wie bekomme ich die Dateien dann wieder korrekt auseinander? Vielen Dank im Voraus |
Re: Datenpaket erstellen
Speichere vor der eigentlichen datei immer einen Infoblock (Name, Länge usw.)
|
Re: Datenpaket erstellen
Und dann mit RegExpr nach den Blocks suchen und diese extrahieren?
Das wäre eine Möglichkeit. Oder geht es noch einfacher? Naja, es wird wohl das flexibelste sein. Damit kenne ich mich auch aus... |
Re: Datenpaket erstellen
Müsste ohne gehen. Dank des Blocks ist die Größe der datei ja bekannt. Nach dem Lesen müsste dann direkt der nächste Infoblock kommen.
|
Re: Datenpaket erstellen
Richtig gute Idee. Da hätte ich aber auch selbst drauf kommen müssen :wink:
Vielen Dank |
Re: Datenpaket erstellen
Hey, ich bin's wieder ;)
Was eignet sich einigermaßen dazu, den Inhalt dieser Datei unkenntlich zu machen (zu verschlüsseln). Es soll vorgebeugt werden, dass User die Datei in einem Editor öffnen und auslesen können. Es soll nicht hyper-sicher sein, nur halt eben unkenntlich. Danke nochmal... |
Re: Datenpaket erstellen
Den gesamten stream verschlüsseln. Z.B. mit Hilfe von DEC
|
Re: Datenpaket erstellen
Hm, das ist ja auch wieder eine Komponente. Ich dachte an ein kleines, simples Verfahren, welches ich selbst schreiben könnte. Btw: Ich habe von diesem Thema noch keine Ahnung ;)
Soll ich einen neuen Thread aufmachen? |
Re: Datenpaket erstellen
Zitat:
Zitat:
|
Re: Datenpaket erstellen
Gut, dann bedanke ich mich an dieser Stelle nochmal.
Eine Bibliothek kann ich ohne weiteres Einbinden. Trotzdem lerne ich dann nicht - aber das an anderer Stelle und zu einem späteren Zeitpunkt! Bye |
Re: Datenpaket erstellen
Ich hab da dochnochmal eine Frage. Diesmal betrifft sie wieder das Datenpaket direkt.
Ich möchte es jetzt auslesen, habe eine While-Schleife erstellt, die mir immer 4 Zeichen zurückgibt. Nun habe ich folgende Steuerzeichen mit bestimmten Inhalt wie z.b:
Code:
So, jetzt kam ich noch auf die Idee, einen Record in dieser Backup-Datei zu speichern. Ich habe jetzt das Problem, dass ich nicht weiß, wie ich einen Stream bis zu einer bestimmten Stelle (zB "*/") auslesen kann.
/* FILE: settings.ini */
Wenn ich immer nur 4 Zeichen lese kann mir ja folgendes passieren:
Code:
Das Trennzeichen wurde somit getrennt und ich kann nicht mehr damit anfagen.
Zeichen 12-16: xe *
Zeichen 16-20: / */ Hier nochmal meine 4-Zeichen-nacheinander-auslesen-Routine
Delphi-Quellcode:
Bitte gebt mir einen kleinen Tipp...
procedure TfrmBackup.RestoreBackup(ms: TMemoryStream);
var s: String; i: Integer; begin ms.Seek(0, soBeginning); i:=0; while not (i > ms.Size) do begin s:=''; ms.Seek(i, soFromBeginning); SetLength(s, 4); ms.ReadBuffer(s[1], length(s)); ShowMessage(s); i:=i+4; end; ms.Free; end; |
Re: Datenpaket erstellen
Guck mal hier im Forum ich hab male ein Klasse dafür geschrieben
|
Re: Datenpaket erstellen
Hm... ein Tipp würde mir schon reichen. Ich möchte nicht für alles eine Klasse oder Komponente haben... Außerdem finde ich sie nicht ;)
|
Re: Datenpaket erstellen
Hier erstmal den Link
![]() Und man sollte den Buffer lieber so Deklarieren s : Array[0..3] of Byte; |
Re: Datenpaket erstellen
Vielen Dank.
Werde mir das mal zu Gemüte führen. Muss aber erst mal ins Training. Bis dann / demnächst |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz