"im" PRG von einem ZIP File suchen

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

"im" PRG von einem ZIP File suchen

Beitragvon AUGE_OHR » Di, 03. Jan 2017 21:57

ich habe es aus einem anderen Thread mal rausgenommen und stelle hier noch mal die Frage
HaPe hat geschrieben:
nun habe ich auch ZIP Dateien wo ich mit dem TC "inside" suchen kann.
Frage : wie kann man so was mit Xbase++ simulieren ?

Eine ZIP-DLL wie zb. ZLib.dll zum "Listen" des Zip-Inhaltes verwenden 8)
mit dem Total Commander "suche" ich mit ALT-F7 nach *.PRG "in" ZIP Files nach einem Begriff. das geht schnell =D>

wenn ich das nun unter Xbase++ "simulieren" will muss ich zunächst die *.PRG temporär entpacken und kann dann nach dem Begriff suchen.
Code: Alles auswählen
// Dummy Code

   aList := XbUnzipList(cFile, "*.PRG")
   iMax := LEN(aList)
   FOR i := 1 TO iMax
      cDatei := XbUnZipFile(aList[i])
      IF Begriff $ cDatei
          AADD(aTreffer,cDatei)
      ENDIF
   NEXT
geht das irgendwie "schneller" ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10305
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg

Re: "im" PRG von einem ZIP File suchen

Beitragvon Tom » Mi, 04. Jan 2017 9:20

Mal ins Blaue gedacht: Was ist, wenn man den Suchbegriff komprimiert und danach sucht? ZIP ist ja linear und nichtprogressiv, aber ob das bis auf die Datenebene herabreicht, weiß ich nicht.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6725
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin

Re: "im" PRG von einem ZIP File suchen

Beitragvon Herbert » Mi, 04. Jan 2017 9:24

Systemsteuerung, Explorer-Optionen, Tab "Suchen". Die Option "Komprimierte Dateien (.ZIP, .CAB usw.) einbeziehen" wählen...
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1788
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich

Re: "im" PRG von einem ZIP File suchen

Beitragvon Wolfgang Ciriack » Mi, 04. Jan 2017 9:48

Hallo Herbert,
das ist aber nicht unter XBase++ :roll:
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2245
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: "im" PRG von einem ZIP File suchen

Beitragvon Werner_Bayern » Mi, 04. Jan 2017 13:30

Code: Alles auswählen
aeval(aList, {|x|cDatei := XbUnZipFile(x), if(cBegriff $ cDatei, aadd(aTreffer, cDatei), )})
es grüßt euch

Werner
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1234
Registriert: Sa, 30. Jan 2010 23:58
Wohnort: Niederbayern

Re: "im" PRG von einem ZIP File suchen

Beitragvon Koverhage » Mi, 04. Jan 2017 14:03

Nachdem dies ja ab Windows 7 als fast normaler Ordner behandelt wird, muss das doch auch mit ganz normalen Systemaufrufen funktionieren, notfalls per DLL-Call.
Jimmy war wohl schon ein wenig müde, sonst hätte er die Lösung hier präsentiert ;-)
Gruß
Klaus
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1908
Registriert: Fr, 23. Dez 2005 9:00
Wohnort: Aalen

Re: "im" PRG von einem ZIP File suchen

Beitragvon Tom » Mi, 04. Jan 2017 14:25

Auch Windows (bzw. der Explorer) entpackt temporär, wenn man an die Inhalte will. So, wie das der Total Commander und andere Tools machen. Bereits entpackte Inhalte (erste Suche) werden gespeichert, weshalb Folgesuchen meistens drastisch schneller sind.

Das Zippen erzeugt komprimierte Inhalte und eine Art Dateverzeichnis im Header und Footer der Datei. Der Inhalt dazwischen ist nichtlinear komprimiert. "Max Mustermann" und "Max Meier" erzeugen im Datenbereich zunächst relativ ähnliche Inhalte, aber diesen ähnlichen Bereich findet man in "Hans-Max Meier" schon nicht mehr wieder. Deshalb dürfte die Idee ins Leere laufen, z.B. "Max" zu zippen (also aus einer gezippten Datei, in der nur "Max" steht, den Bereich zwischen Header und Footer zu extrahieren) und nach dem gezippten Text zu suchen, um in gezippten Dateien "Max" zu finden.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6725
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin

Re: "im" PRG von einem ZIP File suchen

Beitragvon Herbert » Mi, 04. Jan 2017 17:59

Lieber Wolfgang, genau das wollte ich indirekt andeuten, was Tom ausgedeutscht hat...
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1788
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich

Re: "im" PRG von einem ZIP File suchen

Beitragvon Koverhage » Do, 05. Jan 2017 8:50

Wenn man hier im Forum nach Zip komprimierter Ordner sucht, findet man auch was.
Gruß
Klaus
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1908
Registriert: Fr, 23. Dez 2005 9:00
Wohnort: Aalen

Re: "im" PRG von einem ZIP File suchen

Beitragvon AUGE_OHR » Do, 05. Jan 2017 9:12

das Thema ist wohl nicht neu ...

hier Open Source Projecte
https://sourceforge.net/projects/searchinzipfiles/?source=directory
http://dngrep.github.io/

oder solche Freeware
https://www.fileseek.ca/Compare/

@Herbert : der Windows Index ist schon interessant aber normal auf "Benutzer" Verzeichnisse sowie Outlook begrenzt.
Indizierungsoptionen.jpg
Indizierungsoptionen.jpg (60.22 KiB) 339-mal betrachtet
wenn man allerdings eine (kleine) SSD hat wird man sich schon überlegen ob man den Suchindex überhaupt aktiviert.

ich müsste zumindest mein \ALASKA Verzeichnis in den Windows Index mit aufnehmen und "alles indizieren" um zu suchen.
alles_Indizieren.jpg
alles_Indizieren.jpg (78.7 KiB) 339-mal betrachtet

@Wolfgang : klar Xbase++ hat (bislang) leider keinen Zugriff auf den Windows-Index ... aber was wäre wenn ...

angenommen man möchte den Suchindex bzw. die "EDB"*** Datenbanken wie
Code: Alles auswählen
c:\ProgramData\Microsoft\Search\Data\Applications\Windows\Windows.edb
*** http://www.edbsearch.com/windows_edb.html
nutzen dann müsste man sich zunächst die API zu "esent.dll" ansehen um Zugriff auf die "Extensible Storage Engine (ESE)" zu bekommen
http://www.edbsearch.com/ese.html

eine EDB Viever habe ic hier gefunden
http://www.nirsoft.net/utils/ese_database_view.html

damit er auch "in" Word / Excel etc sucht benötigt man wohl ein "Microsoft Office xxxx Filter Packs"
hier für 2010 und ältere Version (97-2003, 2007)
https://www.microsoft.com/de-DE/download/details.aspx?id=17062
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10305
Registriert: Do, 16. Mär 2006 8:55
Wohnort: Hamburg


Zurück zu Programmierung allgemein

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron