AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte FileSplitter v2.0 (15)
Thema durchsuchen
Ansicht
Themen-Optionen

FileSplitter v2.0 (15)

Ein Thema von himitsu · begonnen am 24. Nov 2007 · letzter Beitrag vom 29. Apr 2008
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von himitsu
himitsu
Registriert seit: 11. Okt 2003
[add]
die aktuelle (Test)Vesion + einges an Erklärung ist im Beitrag #22 zu finden
[/add]


Sooo, ich hab inzwischen vieles nochmas (teils Grundlegend) überarbeitet und weitere Features eingefügt.

Der FileSplitter kann (jetzt)
  • es werden vom Programm (abgesehn vom optionalen Setup mit Explorerintegration) nirgendwo Daten gespeichert, also nichts mit Registry, INIs und was es sonst noch gibt
  • Unicode (war doch wohl klar :engel: )
  • von der Bediehnung her ist es immernoch mehr an eine Konsolenanwendung angelehnt und läßt sich auch von dieser aus ansteuern

    die Parameter: Programm starten und H für Hilfe auswählen oder über filesplitter -h ansehn
  • Dateien zerlegen/splitten (wär ja blöd, wenn nicht)
  • die Dateien wieder zusammenfügen (alternativ über eine Batchfile mit Windows-Copy)
  • Neu: Zieldatei/-pfad kann jetzt frei gewählt werden.
    dennoch wird ein Name/Verzeichnis vorgeschlagen, welcher aus der Quelldatei erstellt wird.
  • Neu: Dateien prüfen (Datei oder Dateiteile anhand der MD5-Datei)
  • kann im Explorer-PopupMenü eingetragen werden
    wer in der alten Version einfach die EXE austautsch kann das schon jetzt oder dann für alle nach der Testphase
  • Dateien jeder Größe sind möglich (solange es das Dateisystem unterstützt)
    also Dateien/Dateiteile über 2 GB (ich denk mal bis theoretisch fast 8 PB sollten für alle ausreichen)
  • ja und die EXE ist wirklich so klein oder meint einer hier würden sich UPX und Co. noch lohnen
  • Wenn das Programm von einer Konsole oder einer Batchfile aus aufgerufn wurde, dann gibt es auch dort einige Infos aus.
  • und zur Sicherheit ist das Programm selbstprüfend - bei Defekt/Veränderungen bricht es ab
    (z.B. bei unvollständigem Download)
    http://www.delphipraxis.net/internal_redirect.php?t=123395
  • Screenshots gibt's noch keine, aber es sind eh nur ganz einfache Dialoge, wo man hintereinander nach den nötigen Werten gefragt wird.

    und es sieht fast noch so aus wie in der Vorgängerversion
    http://www.delphipraxis.net/internal...t.php?t=100632


Im Anhang sind derzeit
  • eine Betaversion (wird sich vermutlich nicht mehr viel dran ändern)
    diese ist auch nochmal einzeln angehängt
  • eine Testbeta mit 'ner art Benchmark und wo immer das Consolenfenster erstellt/verwendet wird
  • eine Scriptdatei über welche die "normale" Beta in derKonsole gestartet wird
  • und 4 Screenies vom Abschlußdialog
    wo ich auch mal defekte Dateiteile übergeben hab (was steht im Dateinamen)
    und keine Sorge, die DOS-Box ist nicht immer vorhanden

Es wäre vorallem nett, wenn ihr das Programm ausgiebig testet
und vorallem mal prüft wie/ob das Teilen/Zusammenfügen über Netzlaufwerke läuft.



Es wird beim Splitten wenn möglich eine Batchfile [.bat] (nur wenn die Dateinamen DOS-kompatibel sind)
und zusätzlich eine Prüfdatei [.md5] angelegt.

In der MD5-Datei ist als erstes natürlich der MD5-Hash der Datei (sollte von anderen MD5-Testprogrammen hoffentlich verstanden werden) und anschließend sind noch weitere Informationen.

Die Batchfile [.bat] versucht zuerst den FileSplitter zu finden und ihm den Zusammenfügenauftrag zu übergeben
und falls die Suche erfolglos bleibt, dann werden die Dateiteile über COPY zusammengefügt.

Beim Zusammenfügen vergleicht der FileSplitter die erstellte Datei mit den Werten aus der MD5-Datei (wenn diese gefunden wurde) und gibt das Resultat aus (z.B. fehlende/defekte Dateiteile).


Information: in .md5>PartCheck stehen natürlich nur Informationen über den Urzustand der gesplitteten Datei.
(Dateigröße, Infos über die einzelnen Dateiteile und einige Hash's)



Tja, ansonsten ist nur das vermutlich weitgehenst Optimalste eingebaut:
  • Umgehung der WindowsFileCache (NonBuffered-Read/Write)
  • Overlapped Read/Write (mehr Zeit für interne Berechnungen)
  • und wenn verfügbar AWE (Address Windowing Extension muß im Windows für Programme freigegeben sein)
mit viel Glück könnte das der wohl schnellste FileSplitter auf UserEbene sein.

Man kann da wohl sagen ich hab mich hier voll ausgetobt (im Moment fällt mir auch nichts mehr ein).
Was den UserMode(Windows) betrifft geht es kaum noch schneller (es si denn ich nehm den MD5-Teil raus)
und nur hierfür extra einen Dateisystemtreiber zu entwickeln wäre wohl übertrieben (nur weil man damit dann beliebig große Dateien innerhalb einer Partition in wenigen Millisekunden teilen/zusammenfügen könnte).
Angehängte Dateien
Dateityp: exe filesplitter_835.exe (86,5 KB, 40x aufgerufen)
Dateityp: zip filesplitter_967.zip (172,3 KB, 94x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
 
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#2
  Alt 4. Dez 2007, 10:16
es geht weiter ._.

Hab hier vorwiegend mal versucht dem Datei-Öffnen/Speichern-Dialog etwas aufzurüsten.
- Labels/Buttons übersetzt
- Dateiname-Edit mit Drag&Drop ausgerüstet
wenn alles gut geht, dann kann man jetzt in dieses Editfeld eine Datei z.B. direkt aus'm Explorer reinziehen und muß nicht erst zur Datei hinsurfen

Also bitte mal die Bediehnung Testen und dabei etwas auf die Beschriftungen achen.


Währenddessen arbeite ich weiter an der Explorerintegration.




Nochmal in ganz Kurz die Bediehnung:
(einfach die Parameter nacheinander eingeben)

Zerteilen: "s" [Enter] Datei [Enter] Zieldatei [Enter] Größe [Enter]
Programm starten und dann "s" eingeben [Enter] Datei wählen [Enter] Zieldatei wählen [Enter] Größe eingeben [Enter] fertig
Zusammenfügen: "c" [Enter] Datei.001 [Enter] Zieldatei [Enter]

MD5-Datei erstelen: "sm" [Enter] Datei [Enter] Zieldatei [Enter] Größe [Enter]
einfache MD5-Datei: "sem" [Enter] Datei [Enter] Zieldatei [Enter]
Datei prüfen: "v" [Enter] MD5-Datei [Enter] Datei [Enter]

und/oder wenn der FileSplitter (mit Explorerintegration) installiert wurde:
Zerteilen: [Explorer>"Split File"] Zieldatei [Enter] Größe [Enter]
oder Explorer-Popup > "Split File" und dann Zieldatei wählen [Enter] Größe eingeben [Enter] fertig

* das Graue ist wird vom Programm vorgegeben, kann aber geändert werden
* Weiteres siehe Programmhilfe (Parameter H)


[edit]
EXE upgedatet ... hatte mich schon gewundert warum die plötzlich so groß war
nja ... die SysUtils war ausversehn mit eingebunden -.-''

[edit] Anhang entfernt
  Mit Zitat antworten Zitat
Benutzerbild von bigg
bigg
 
#3
  Alt 4. Dez 2007, 12:23
Hi himitsu,

die GUI-Oberfläche sollte dringend überarbeitet werden. Das ständige Eintippen eines Befehls in einer GUI kann für den Anwender ziemlich nervig sein, besonders wenn man dein Programm eh über die Konsole benutzen kann. (paramtergesteuert)

Das Programm macht imho auch keinen Sinn, wenn du mich fragst.
Fast jeder Packer bietet dir heute diese Funktionalität, das Teilen von Dateien/Archiven etc.


btw: Bei deinem Talent solltest du dich lieber um anspruchsvollere Dinge kümmern.
Wie wäre es da mit Spracherkennung, Sprachausgabe, OCR und so. weiter...


Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

 
Delphi 7 Enterprise
 
#4
  Alt 4. Dez 2007, 12:43
[OT]
bigg ist ja wieder da
[/OT]
André
  Mit Zitat antworten Zitat
Benutzerbild von bigg
bigg
 
#5
  Alt 4. Dez 2007, 12:45
btw.: Ich war doch nie wirklich weg, oder?
Soll ich wieder gehen?
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

 
Delphi 7 Enterprise
 
#6
  Alt 4. Dez 2007, 12:46
doch, dein altes Profil + deine Tools waren mal weg. Nee, kannst ruhig bleiben
So, genug OT, weiter im Text
André
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#7
  Alt 4. Dez 2007, 13:32
Also danke erstmal für die konstruktive Antwort ^^


Nja, hier geht's einfach mehr um Geschwindigkeit.
und Packer können auch keine Wunder z.B. eine große Videodatei läßt sich kaum noch komprimieren
(z.B. fallen bei 'ner GB-Datei ein paar gesparrte MBs nicht wirklich auf)

Hier ist nur 7Zip drauf und dazu ist der Rechner nicht grad gut/schnell... ob ich da jetzt eine 500MB-Datei in knapp 2 Stunden (selbst mit schwacher/keiner Komprimierung) Teile oder das ganze in wenigen Minuten Splitte ist da ein großer Unterschied.
Der Splitter arbeitet mir einem "maximum" an Datenrate was der PC/IDE-Treiber/Festplatte... und eventuell noch sowas wie Virenscanner durchlassen.


Zum ständigen Getippe ... die Eingaben müssen so oder so gemacht werden
egal ob alles zusammen am Anfang in einem rießigem Dialog (da muß man zwischen den Controls rumspringen)
oder ob nacheinander wo immer nur ein (das nötige) Control aktiv ist.

über die Explorerintegation muß dann noch weniger gemacht werden
> Datei und Option wird schon im Explorer gewählt
und ann bleibt eigentlich nur noch ein Wert einzustellen (beim Slitten die Größe)

Zusammenfügen (Batch) : nur Batch ausführen fertig
Zusammenfügen : nur Zieldateiname wird abgefragt, aber da dieser schon eingetragen ist, muß man nur Enter drücken
Splitten : nur Zieldateiname und Größe wird abgefragt ... also Enter+Größe+Enter und auch fertig



Zitat:
btw: Bei deinem Talent solltest du dich lieber um anspruchsvollere Dinge kümmern.
Anspruchsvolleres?
hier stecken genügend Grundlagenforschungen drin (welche ich übrigends in anderen Programmen weiterverwenden werde)

- schnelle ungepufferte Schreib-/Lesezugriffe
- Hashing (MD5 wird z.B. direkt von XP/Vista unterstützt)
- AWE ... physischer RAM ohne Auslagerung
- in Punkto nonVCL hab'sch och vieles gelernt/verbessert
- und den Windows-Dateidialog umzumoscheln is eigentlich ganz witzig

also ein gutes "einfaches" Projekt um schön mit Hardwärezugriffen zu üben

und du möchtest nicht wissen wieviele andere Dinge (auf welche man nebenbei ausversehn gestoßen ist) noch hieraus entstanden sind
  Mit Zitat antworten Zitat
MrKnogge

 
Delphi 2007 Professional
 
#8
  Alt 4. Dez 2007, 13:57
Hi himitsu,

ich verstehe zwar nicht ganz warum du an dieser Parameter-Steuerung festhälst, (ich persönlich finde sie ziemlich Benutzerunfreundlich, da man um die zu teilende Dateien im Dialog auszuwählein meist doch wieder zur Maus greifen muss) aber du wirst das sicher nicht ohne grund machen.

Allerdings habe ich einen kleinen Bug entdeckt, bzw. möchte eine Verbesserung vorschlagen.

Bei der Eingabe von "-sdm" wird ja nur die md5-Datei erstellt.
Wenn ich richtig gelesen habe, ist das so gewollt, aber warum ?
So muss ich 2mal durch das Programm, statt die md5-Datei gleich mit zu erstellen lassen.

Desweiteren werde ich dann aber gefragt in wie ich den meine Datei geteilt haben möchte.
Zumindest letztees ist dann sinnlos.

Gruß
Christian
Christian Bootz
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#9
  Alt 4. Dez 2007, 14:04
Und falls ein Paramter nicht erkannt wird, solltets du ein entsprechendes Feedback geben. Ih habe fünf Minuten probiert die Dateiteile mit -x5 anzugeben. Bei Klick auf OK ist nichts passiert. Irgendwann habe ich das "-" mal weggelassen und da ging es.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#10
  Alt 4. Dez 2007, 14:31
- die MD5-Datei wird immer mit erstellt
- die alternative Battchfile für's zusammenfügen nur wenn möglich

Ja, das ist bei sm/sdm so gewollt.
Den Parameter M hab ich extra letzte Woche simplementiert,
damit kann man jetzt auch einfach nur eine Prüfdatei für eine Datei erstellen.
Und mit -V kann dann später geprüft werden, ob die Datei defekt ist oder nicht

Der MD5-Hash geht über die gesamte Datei und in der md5-Datei sind dann standardmäßig noch weitere Werte, womi dann auch noch die einzelnen Dateiteile einzeln geprüft werden können,
aber diese ganzen Prüfwerte sind auch auf die ganze Datei anwendbar.


Und ich hab alles so gemacht, daß alle Dateien wo gleich am Anfang ein hexadezimal MD5-Hash steht verwendet werden können. (die gibt's ja z.B. zu einigen Downloads mit dazu)

PS: bei -SEM wird nich nach der Größe gefragt, da dort der PartCheck-Abschnitt entfällt.


Nja sinnlos ist diese Abfrage nicht ... muß da wohl nur noch den Text etwas anpassen.

Die zusätzlichen Prüfdaten (Abschnitt PartCheck der md5-Datei) sind für jeden Dateiteil vorhanden.
Im Endefekt ist so erkennbar wo (in etwa) in der Datei ein Fehler vorliegt.


Hab aber bei -VN einen Fehler entdeckt ... eigentlich sollte der 3. Parameter nicht nochmals abgefragt werden, wenn der schon übergeben wurde
nee, nur fehlerhafter Parameter.


@Luckie: OK, werd ich machen
bin ja eh noch mit vielen Texten beschäftigt und da stören ein paar Neue nicht ^^

[edit] Anhang entfernt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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:22 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