AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Der neue FileSplitter ist da

Der neue FileSplitter ist da

Ein Thema von Luckie · begonnen am 2. Jun 2003 · letzter Beitrag vom 5. Aug 2003
Antwort Antwort
Seite 3 von 6     123 45     Letzte » 
Benutzerbild von Luckie
Luckie
Registriert seit: 29. Mai 2002
So, die neue Version (4.0) des FileSplitters ist da. Die Dateioperationsroutinen sind noch die alten, aber der Code und das Design wurden etwas überarbeitet.

Wenn die Testphase erfolgreich verlaufen ist, gibt es auch den Source.

Download: FileSplitter (68 KB)
Ein Teil meines Codes würde euch verunsichern.
 
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#21
  Alt 2. Jun 2003, 21:16
So, wa sich jetzt auch noch mal probiert habe:
Ich habe mir die CommDlg.pas von jemanden schicken lassen, der D5 Enterprise hat und habe damit kompiliert - geht auch nicht.
Un dich habe Mathias Version aus meinem Forum probiert - geht auch nicht.

Gleich rufe ich bei Borland.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#22
  Alt 2. Jun 2003, 22:32
So jetzt habe ich die Nase aber so langsam voll. Unter ME etwas gebastelt bis es lief und dann unter 2000 getestet lief nicht. Unter 2000 wieder gebastelt bis es lief, unter ME getestet, jetzt läuft es da auch. So und welche Version läuft jetzt unter beiden OS? Genau die aller erste wieder, die mit TOpenFilename. Ich weiß echt nicht, was jetzt anders ist, als vorher.

Aaaaaaaaaaaaaaaaaaaaaaaaaah gerade wird mir berichtet das die Exe, die unter ME läuft unter 98SE es nicht tut.

Wenn das so weitergeht, bin ich bald ein nervliches Wrack.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#23
  Alt 2. Jun 2003, 23:40
tommie-lie hat es gefunden:
Code:
ofn.lStructSize := SizeOf(TOpenFilename) - (SizeOf(DWORD) shl 1) - SizeOf(Pointer);

Jetzt sollte es auch unter 98, ME und 2000 gehen. Bleibt abzuwarten, was XP dazu sagt.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#24
  Alt 3. Jun 2003, 05:52
So Version 4.1 ist draußen. Ich habe doch noch was schnelleres gefunden, als Read- und WriteFile: BlockRead und BlockWrite. Bei großen Dateien (700 MB) ist es nicht so gravierend aber bei kleineren (6 MB) ist es ungefähr doppelt so schnell.
Desweiteren sind noch ein paar Visualisierungen dazugekommen.

Link im ersten Post!
Michael
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

 
Delphi 2010 Professional
 
#25
  Alt 3. Jun 2003, 06:40
Also bei mir (Windows XP) geht der Opendialog einwandfrei
David F.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#26
  Alt 3. Jun 2003, 06:43
Zitat von mirage228:
Also bei mir (Windows XP) geht der Opendialog einwandfrei
Sei geküßt, Bruder.

Und wie gefällt es sonst so?
Michael
  Mit Zitat antworten Zitat
MathiasSimmack
 
#27
  Alt 3. Jun 2003, 09:33
Zitat von Luckie:
tommie-lie hat es gefunden:
Code:
ofn.lStructSize := SizeOf(TOpenFilename) - (SizeOf(DWORD) shl 1) - SizeOf(Pointer);

Jetzt sollte es auch unter 98, ME und 2000 gehen. Bleibt abzuwarten, was XP dazu sagt.
Ja, das geht. Aber das kannst du auch einfacher haben:
ofn.lStructSize := OPENFILENAME_SIZE_VERSION_400; Delphi 5 ist zu alt und kennt nur das Standardrecord "TOpenFileName". Ausgehend von den Problemen würde ich dann also vermuten, dass Delphi 6 bereits auf das erweiterte, neue Record zugreifen kann. (s. PSDK)

Das PSDK enthält zusätzlich das alte Record mit der Bezeichnung "OPENFILENAME_NT4". Inwieweit Borland das übernommen hat, weiß ich (mangels D6) nicht.

Wie dem auch sei, in den Delphi-Tutorials (auch online bei dir im Forum) findest du die alte Recordgröße auch schon. Du kannst das erweiterte Record auch unter 2000/XP problemlos mit der alten Größe initialisieren. Mit anderen Worten: du kanntest die Lösung eigentlich schon, hast sie eben nur überlesen.
  Mit Zitat antworten Zitat
MathiasSimmack
 
#28
  Alt 3. Jun 2003, 09:58
btw: Natürlich funktioniert das Programm (= der Quellcode) jetzt nicht mehr, wenn man nicht Delphi 6 oder 7 hat. Ist ja auch logisch. Wie ich schon schrieb, sind die Versionen vor D6 zu alt und kennen nur das Standardrecord, und durch
ofn.lStructSize := SizeOf(TOpenFilename) - (SizeOf(DWORD) shl 1) - SizeOf(Pointer); bzw.
ofn.lStructSize := OPENFILENAME_SIZE_VERSION_400; werden nun davon noch zwei DWORDs und ein Pointer abgezogen. Damit stimmt die Originalgröße nicht mehr, und die Dialoge erscheinen bei älteren Delphi-Versionen nicht. Du musst dich also tatsächlich an die Idee aus dem Forum halten:
Delphi-Quellcode:
if(Win2k) or (WinXP) then ofn.lStructSize := sizeof(TOpenFilename)
  else ofn.lStructSize := OPENFILENAME_SIZE_VERSION_400;
oder du probierst dein Glück mal mit dem schon erwähnten "OPENFILENAME_NT4"-Record, sofern es von Borland deklariert wurde.

Ja, ich weiß: du hattest das bereits gestern (~17 Uhr) geschrieben. Ich wollte also nur noch mal sagen, dass diese Idee also schon die richtige war. Gerade in Bezug auf ältere Delphi-Versionen. Ich habe sie nur nicht berücksichtigt, weil du mir deinen Quellcode ja zwecks Fehlersuche zur Verfügung gestellt hast.

Die von tommie-lie vorgeschlagene "Lösung", pauschal (ohne Versionsprüfung) die Größe zu verringern, halte ich deswegen auch für falsch.
  Mit Zitat antworten Zitat
Christian Seehase

 
Delphi 11 Alexandria
 
#29
  Alt 3. Jun 2003, 10:05
Moin Mathias,

so man denn die letzen Felder der Struktur nicht braucht, schadet es auch nicht sie wegzulassen. Neuere Versionen von Funktionen "wissen" ja von den verschiedenen Möglichkeiten, die sie dann anhand der übergebenen Strukturgrösse zu unterscheiden vermögen.

Die Standardkonstante für die kurze Grösse lautet gemäss PSDK OPENFILENAME_SIZE_VERSION_400, und Borland hat sich bei solchen Konstanten eigentlich immer schön an's PSDK gehalten.

@Luckie:
Ich hab' ja gesagt: Deklarier Dir die Datenstruktur selber
  Mit Zitat antworten Zitat
MathiasSimmack
 
#30
  Alt 3. Jun 2003, 12:46
In dem Fall sollte bzw. muss er das sogar tun, weil er den Quellcode ja auch freigibt. Also muss er auch damit rechnen, dass sich jemand den Quellcode unter einer anderen Entwicklungsumgebung als Delphi 6/7 ansieht.

In dem Fall sehe ich mein Delphi 5 als Vorteil an. Alles, was neu ist, habe ich meist nicht. Nehmen wir nur die erweiterten Möglichkeiten der List-View unter Windows XP. Also muss ich den ganzen Kram selbst deklarieren. Veröffentliche ich dann so ein Programm samt Quellcode, dann lege ich auch die entsprechenden Deklarationen bei. So kann ich halbwegs sicher sein, dass das Programm auch bei anderen D5-Usern funktioniert.

btw: Konstante ist nicht gleich Record. OPENFILENAME_SIZE_VERSION_400 ist mir bekannt, und das habe ich ja auch erwähnt. Aber es gibt im PSDK noch ein Record namens OPENFILENAME_NT4, das bei lpTemplateName endet und damit der alten Struktur entspricht - oder sagen wir: dem Record, das ich in D5 habe. Wenn Borland das nun ebenfalls übernommen hat (vielleicht als "TOpenFileName_NT4"), kann man es ja auch mal versuchsweise verwenden.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:47 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