AGB  ·  Datenschutz  ·  Impressum  







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

Threads mit Ereignissen

Ein Thema von Nersgatt · begonnen am 13. Okt 2011 · letzter Beitrag vom 17. Okt 2011
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#1

AW: Threads mit Ereignissen

  Alt 13. Okt 2011, 12:42
Hm, scheinbar lässt sich in der Tat das Problem auf das Entpacken reduzieren. Kommentier ich das aus, läuft es immer durch.

Die Abfrage auf das Busy-Flag fehlte in der Tat. Aber trotzdem scheint es da noch ein Problem zu geben. Fällt jemandem etwas auf?

Delphi-Quellcode:
procedure TfrmImportPSM.UnzipFile(AFilename: String);
var
  zip: TZipMaster19;
begin

  DeleteFileWhenExist(ChangeFileExt(AFilename, '.fdb'));

  zip := TZipMaster19.Create(nil);
  try
    zip.ZipFileName := AFilename;
    zip.ExtrBaseDir := ExtractFilePath(AFilename);
    zip.Extract;
    while zip.Busy do
      application.ProcessMessages;

  finally
    zip.Free;
  end;

end;
Jens
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Threads mit Ereignissen

  Alt 13. Okt 2011, 13:20
Hat die Komponente kein Ereignis dafür? Wenn nicht und die Quellcodes zur Verfügung stehen, könnte es sich lohnen dieses selbst zu implementiere oder die Klasse entsprechend zu erweitern.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: Threads mit Ereignissen

  Alt 13. Okt 2011, 14:12
Doch, es gibt ein OnStateChanged. Aber auch wenn ich hier auf die Beendigung warte, funktioniert es nicht. Es lässt sich definitiv auf das Entzippen reduzieren.
Hab nun auch die letzte Version von ZipMaster installiert, trotzdem keine Besserung. Dann hab ich mir dem ProcessMonitor mal verfolgt, was da geöffnet und geschlossen wird. So wie ich das sehe, wie die Datei nach dem entpacken ordentlich geschlossen.
Bin langsam mit meinem Latein am Ende, wo ich noch suchen könnte.
Jens
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Threads mit Ereignissen

  Alt 13. Okt 2011, 14:22
Hast Du mal dummymäßig dieselbe Datei in ein anderes Wegschmeißverzeichnis extrahiert und versucht auf dem ursprünglichen Verzeichnis weiterzuarbeiten?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: Threads mit Ereignissen

  Alt 13. Okt 2011, 14:32
Du meinst sowas in der Art?

Delphi-Quellcode:
procedure TfrmImportPSM.UnzipFile(AFilename: String);
var
  zip: TZipMaster19;
begin

// DeleteFileWhenExist(ChangeFileExt(AFilename, '.fdb'));

  zip := TZipMaster19.Create(nil);
  try
    zip.ZipFileName := AFilename;
// zip.ExtrBaseDir := ExtractFilePath(AFilename);
    zip.ExtrBaseDir := 'C:\temp';
    zip.Extract;
    while zip.Busy do
      application.ProcessMessages;

  finally
    zip.Free;
  end;

end;
So wird die Datei nach c:\temp entpackt, importiert wird jedoch aus dem urprünglichen Pfad (also nicht aus der gerade entpackten Datei).

Interessante Erkenntniss: es stürzt trotzdem ab!
Ich hatte ja vermutet, dass ZipMaster die entpackte Datei noch nicht ordentlich freigegeben hat. Aber das scheints nicht zu sein.
Wenn ich auch noch zip.Extract auskommentiere, dann läuft es wieder problemlos durch. Da scheint irgendwo in den Tiefen von ZipMaster irgendwas gehörig schief zu laufen.
Jens
  Mit Zitat antworten Zitat
WladiD

Registriert seit: 27. Jan 2006
Ort: Celle
146 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Threads mit Ereignissen

  Alt 13. Okt 2011, 16:57
Kommentiere mal die Application.ProcessMessages aus:

Delphi-Quellcode:
//while zip.Busy do
// application.ProcessMessages;
Waldemar Derr
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.010 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Threads mit Ereignissen

  Alt 13. Okt 2011, 17:33
Fällt jemandem etwas auf?

  zip := TZipMaster19.Create(nil);
Die Komponente wird dynamisch erzeugt, ohne Owner. Gibt es auch dann einen Fehler, wenn die Komponente auf dem Formular angelegt wird? (Hintergrund bzw. Unterschiede: dann wird beim Einlesen des Formulars auch die Loaded Prozedur aufgerufen, und der Owner ist zugewiesen).
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#8

AW: Threads mit Ereignissen

  Alt 17. Okt 2011, 06:36
Wieso muss es eigentlich Zipmaster sein? Ich hab mir abgewöhnt, meine Zeit mit dem Analysieren von Fehlern in Komponenten von Drittanbietern zu verplempern.
Das Bild hängt schief.
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

AW: Threads mit Ereignissen

  Alt 17. Okt 2011, 07:22
was würdest Du denn empfehlen? Die Dateien ungepackt auf den Webspace zu laden ist keine Option. Denn das Packen verringert die Größe der Dateien um den Faktor 10 und die Clients haben nicht immer DSL zur Verfügung. Da muss man teilweise mit einem Modem klarkommen (ja, diese alte Crrrrr-Ring-deng-deng-ping-Dinger).
Jens
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#10

AW: Threads mit Ereignissen

  Alt 17. Okt 2011, 08:35
7zip (unten, als "Pascal LZMA SDK" - ist nen direkter Port von 7z auf Delphi/FP)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:02 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-2025 by Thomas Breitkreuz