Entwickler-Ecke
Dateizugriff - ZipMaster Methode Find() gibt NIL zurück
Stephan.Woebbeking - Mo 27.02.12 12:37
Titel: ZipMaster Methode Find() gibt NIL zurück
Hallo *,
ich arbeite mit ZipMaster191 und kann die Find() Methode nicht nutzen. In der Funktion unten gibt es zwei markante Codeteile, deren Ergebnis in "Punkt 1" und "Punkt 2" sichtbar (Debugger) sein sollte. An "Punkt 1" ist fileData NIL und a wird mit -1 belegt (Habe auch schon bei 0 angefangen zu suchen, das hilft auch nix; auch einen Cast des String in TZMString hab ich schon probiert). Dagegen ist an "Punkt 2" in fileData korrekt die Information von dem gesuchten MANIFEST_FILE gespeichert. Kann mir jemand sagen, warum das so ist?
Danke,
Stephan
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| procedure TFormServiceSK_M.BtnOpenUpdateFileClick(Sender: TObject); var ct, a, bfLen, pos1, pos2: Integer; fileData: TZMDirEntry; buffer: PChar; mStream: TMemoryStream; manifestContent, line: String; stringList: TStringList; begin DlgOpenFW.DefaultExt := FIRMWARE_EXT; if ( DlgOpenFW.Execute ) then begin logger.Info( 'BtnOpenUpdateFileClick() FWFilename = ''' + FWFilename + '''' ); FWFilename := DlgOpenFW.FileName; ZipMaster191.ZipFileName := FWFilename; ct := ZipMaster191.Count; logger.Info( 'Open file "' + DlgOpenFW.Filename + '" which contains ' + IntToStr( ct ) + ' single files.' ); a := 1; fileData := ZipMaster191.Find( MANIFEST_FILE, a ); a := 0; repeat fileData := ZipMaster191.DirEntry[ a ]; a := a + 1; until ( ( a >= ZipMaster191.Count ) OR ( fileData.FileName = MANIFEST_FILE ) ); if NOT( Assigned( fileData ) ) then begin logger.Error( 'Archive ' + FWFilename + ' does not contain a ' + MANIFEST_FILE + ' file!' ); end else begin .............. end;
end; end; |
SvenAbeln - Mo 27.02.12 14:34
Versuch es mal so:
Delphi-Quelltext
1: 2:
| a := -1; fileData := ZipMaster191.Find( MANIFEST_FILE, a ); |
Laut der Hilfe, beginnt die Suche beim übergebenen Index + 1.
Stephan.Woebbeking - Mo 27.02.12 16:34
Wow, das klappt, ganz herzlichen Dank dafür!!! Ich hatte die Hilfe - auf der Webseite "http://www.delphizip.org" auch studiert, aber da bin ich nicht drauf gestossen. Hab auch mehr Doku gefunden, welche Doku hast du genommen?
Vielen Dank & viele Grüße,
Stephan
SvenAbeln - Di 28.02.12 11:14
Ich kannte die Zipmaster bisher nicht, deswegen hab ich es gegoogelt.
Der erste Treffer war
www.delphizip.org [
http://www.delphizip.org/], dort habe ich in die Hilfe geschaut.
Der zweite Treffer bei google war übrigens eine Frage bei stackoverflow: "Delphi TZipMaster - how to use the Find method?" :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!