![]() |
.txt Datei aus .zip öffnen zum auslesen
Hallo nochmal ;)
Ich will den Inhalt einer .txt Datei, die mit den Buchstaben LOG_ beginnt aus einem .zip-Archiv auslesen. Meine Kenntnisse sind noch Recht beschränkt deshalb suche ich hier Hilfe. Ich habe mir Delphizip besorgt.. die Methode ExtractFileToStream(Filename) hilft mir nicht weiter, weil ich ja nicht den ganzen Namen weiss.. wäre dankebar für hilfe |
Re: .txt Datei aus .zip öffnen zum auslesen
Hallo,
die Liste der Dateien in der Zip sollte sich mit deiner Komponente auch auslesen können. Schau dir mal ![]() an.
Delphi-Quellcode:
for I:=1 to ZipMaster1.Count do
begin with ZipDirEntry(ZipMaster1.ZipContents[I-1]^) do begin SortGrid1.Cells[0,I] := FileName; //Dateiname end; end; Heiko |
Re: .txt Datei aus .zip öffnen zum auslesen
Und zum Dateinamen: Du könntest die Liste durchgehen und mit
![]() |
Re: .txt Datei aus .zip öffnen zum auslesen
Delphi-Quellcode:
... try begin ZipMaster1 := TZipMaster.Create(nil); Zipmaster1.ZipFilename:=FileStr; for I:=1 to ZipMaster1.Count do begin with ZipDirEntry(ZipMaster1.ZipContents[I-1]^) do begin TempStr := copy(Filename,1,4); if TempStr = 'LOG_' then begin ZipFileStr := Filename; end; end; end; ZipData := ZipMaster1.ExtractFileToStream(ZipFileStr); ZipData.Position := 0; ZipData.SaveToFile(ExtractFilePath(ParamStr(0))+'temp.txt'); memo1.Lines.LoadFromFile(ExtractFilePath(ParamStr(0))+'temp.txt'); DeleteFile(ExtractFilePath(ParamStr(0))+'temp.txt'); TempStr := memo1.Text; AnfangInt := pos('Link: ',TempStr); AnfangInt := AnfangInt + 6; TempStr := copy(TempStr,AnfangInt,length(TempStr)); EndeInt := pos ('#$D#$A',TempStr); // #$D#$A Zeilenumbruch ..... EndeInt ergibt immer 0 .. #$D#$A wird iwie ignoriert Edit1.Text := copy(TempStr,1,EndeInt); end; finally ZipMaster1.Free; end; end; 1. aktuellste Datei in einem Ornder suchen (nur .zips) 2. LOG_*unbekannt*.txt im XXX.zip ermitteln 3. Abspeichern und in ein Memo laden 4. Einem String übergeben 5. Substring Anfang mit Hilfe von pos finden 6. Ende bis zum Zeilenumbruch it Hilfe von pos finden... aber es wird einfach ingoriert.. weiss einer Rat? neuen topic wär jetzt dafür etwas übertrieben thx 4 answer |
Re: .txt Datei aus .zip öffnen zum auslesen
Dann müsste ja "#$D#$A" in der Datei stehen, das wird es aber bestimmt nicht. Versuch es mal so:
Delphi-Quellcode:
EndeInt := pos (sLineBreak,TempStr);
|
Re: .txt Datei aus .zip öffnen zum auslesen
jop genau steht halt nicht drin..
hab jetzt ne andere lösung.. hab #$D#$A durch 'test123' ersetzt.. das hat pos dann wieder gefunden *edit deine lösung geht auch! thx |
Re: .txt Datei aus .zip öffnen zum auslesen
Zitat:
Wo es doch angeblich nicht drin steht. :zwinker: PS: '#$D#$A' <> #$D#$A und #$D#$A = sLineBreak |
AW: .txt Datei aus .zip öffnen zum auslesen
Da ich jetzt auch einmal mit Zipdateien arbeiten wollte und auch erfolgreich die Komponenten installiert habe konnte ich schon einfache Sachen wie entzippen machen. Wenn ich aber eine bestimmte Datei aus der Zipdatei rausfischen will wie hier im Beispiel wird ZipDirEntry angemeckert das Delphi nicht kennt. Woran kann das liegen?
Gruß Andreas |
AW: .txt Datei aus .zip öffnen zum auslesen
Dann ist ZipDirEntry anscheinend in einer Unit deklariert, die nicht in Deiner uses-Klausel enthalten ist.
|
AW: .txt Datei aus .zip öffnen zum auslesen
Das war mir in etwa schon klar. Stelle ich die Frage mal anders: als ich das Wort "ZipDirEntry" über den Explorer im Quelltext der Komponente gesucht habe wurde mir kein Ergebnis geliefert. Scheint es bei dieser Komponente also nicht zu geben. Stellt sich eine neue Frage: Gibt es mehrere Komponenten die Zipmaster heißen aber von unterschiedlichen Quellen kommen? Oder hat die aktuelle Version 1.9.1.19 von DelphiZip das einfach nur nicht mehr drinnen? Vieleicht arbeitet ja jemand mit den Komponenten und kann Hinweise geben. Oder jemand kennt eine andere Komponente mit der man folgendes machen kann:
Dateien zippen und mit Passwort verschlüsseln Nach Auswahl der Zipdatei Inhalt auslesen können ohne extra Passwortabfrage - das mit dem Passwort wäre schön wenn es ginge muß aber nicht sein einzelne Dateien aus der Zipdatei nacheinander in unterschiedliche Ordner entzippen können Gruß Andreas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 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