Wetterstationsforum.info - Archiv

Software => Entwicklerforum => Thema gestartet von: heimfried am 12.01.2014, 12:58:35

Titel: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: heimfried am 12.01.2014, 12:58:35
Ich habe vor etwa 2 Monaten begonnen, mittels PHP einfache SVG-Grafiken zu erstellen. Das hat zwar funktioniert, aber ich musste mich aus Zeitgründen dann zunächst wichtigeren Arbeiten zuwenden.

Jetzt wollte ich den Faden wieder aufnehmen, finde aber einen Teil der erstellten Dateien auf meinem Rechner nicht mehr wieder. Es geht um PHP-Dateien, die in UTF-8 kodiert sind. Ich habe keine Ahnung, wie ich die Dateien genannt habe und der Speicherort ist auch unklar (außer, dass nur die Festplatte in Frage kommt).

Die Suche unter Windows 7 (dass Inhalte gesucht werden sollen, habe ich eingestellt) zeigt mir aber auch eine derartige PHP-SVG-Datei nicht an, die zweifelsfrei vorhanden ist. Liegt das an der Kodierung? Ich benutze Notepad++ als Editor.

Hat jemand einen Tip?

Danke vorab.

Gruß, Günter


Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: wneudeck am 12.01.2014, 13:11:40
Hallo,
ich bewege mich hier auf dünnem Eis, aber
- mit der Kodierung hat das mit Sicherheit nichts zu tun
Kannst Du nicht einfach nach Dateien mit Endung "svg" oder "php"suchen, denn das sollte der Standard-Suffix sein? Oder hat sie Dein Editor mit Endung "txt" gespeichert?
Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: LE-Wetter am 12.01.2014, 13:12:34
Öffne das Laufwerk C, gehe in das Suchfeld unten Suchfilter hinzufügen - Änderungsdatum anklicken und dann mal so ungefähr die Daten filtern, wann du das gemacht hast, zusätzlich kannst du die Größe auch noch filtern, da geht es schneller
Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: TheWeather am 12.01.2014, 13:55:00
Hallo Günter,

zwei Dinge fallen mir dazu ein:
a) falls Du unter verschiedenen Usernamen gearbeitet hast, solltest Du Dich vor der Suche auch als solcher einloggen, falls die Dateien in einem User-Verzeichnis abgelegt sind
b) im Explorer unter Extras->Ordneroptionen->Suche an diese beiden Punkte denken:
1) Suche nach Namen und Inhalten wählen und
2) den Haken bei "nur in indizierten Verzeichnissen suchen" entfernen

Gruß Hans
Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: Holli am 12.01.2014, 20:10:11
grep gibt es auch für Windows, und heimfried traue ich auch zu, damit klarzukommen.

Um Probleme mit UTF-8 zu vermeiden, sucht man einfach nicht nach Sonderzeichen. Die ersten 128 Bit sind in allen Codierungen identisch.
Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: heimfried am 12.01.2014, 20:40:05
Ich danke für eure Antworten, die ich gerade erst sehe.

Ich werde berichten.

Ergänzung:
@ Werner
Die Dateien (vielleicht ist es auch nur eine) haben den Suffix ,,.php", denn sie sind ,,gelaufen".
Davon habe ich aber sehr viele.
@LE-Wetter
Ich schaffe es nicht, als Filter ein Zeitfenster einzugeben, aber einzelne Tage in diesem Bereich führen nicht zum Ergebnis
@Hans
Ich bin der alleinige Nutzer, die Einstellungen hatte ich schon so vorgenommen.
@Dietmar
zu grep habe ich noch nicht gesucht. Als Suchstring hatte ich usprünglich auch das $-Zeichen, jetzt habe ich nur normale Kleinbuchstaben eingegeben (drehpkty) er findet die Datei mit diesem String im durchsuchten Verzeichnis nicht.


Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: leknilk0815 am 14.01.2014, 13:49:37
Servus,
um "versteckte" Dateien finden zu können, sollte zumindest der Explorer "richtig" eingestellt sein.
Die Einstellungen kann man "zu Fuss" machen oder über die Registry.
Da mir  "zu Fuss" zu dumm ist, hab ich die nötigen Einstellungen exportiert.
Hier der Reg- Key (kann durch Doppelklick einfach eingespielt werden, danach Explorer beenden und neu öffnen).
Pfad zum Key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced

Die Datei "reg-explorer.reg" ist der modifizierte Explorer,
die Datei "reg-Explorer-org.reg" ist der unmodifizierte Explorer, falls man die orginalen Einstellungen wieder herstellen will.


[gelöscht durch Administrator]
Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: heimfried am 14.01.2014, 17:03:41
Danke, Toni,

ich habe deine Dateien runtergeladen, aber ob ich mich getraue, das anzuwenden, ist noch eine andere Frage.

Gruß, Günter
Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: TheWeather am 14.01.2014, 17:14:25
Hallo Günter,

das Problem, Inhalte in UTF-8 codierten Dateien zu finden, besteht also noch?

Es ist ja anscheinend so, dass die mit 16 Bit codierten Zeichen nicht gefunden werden, weil bei der Suche im Windows-Explorer Zeichenfolgen gemäß ASCII oder ANSI (8 Bit) gesucht werden, nicht aber die Unicode-Zeichenfolgen. UTF-8 bedeutet ja meines Wissens, dass zwar ASCII-Zeichen verwendet werden, allerdings mit 2 Byte statt 1 Byte codiert. Aus der Zeichenfolge "AB", welche in 8 Bit aus den Hex-Werten &41&42 besteht, wird bei UTF-8 die Folge &00&41&00&42 (& steht dafür als Kennzeichnung, dass es sich jeweils um einen Hex Wert handelt.

Ich habe mal gegoogelt und bin auf eine Software (30 Tage Erprobung) mit dem Namen "Total Commander" gestoßen, der angeblich auch nach UTF-8 codierten Zeichenfolgen suchen kann. Ob das als Tool allerdings was taugt, kann ich Dir nicht sagen.

Gruß Hans
Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: ms am 14.01.2014, 18:16:42
Hallo

Es gibt da noch den freecommander XL, mit dem arbeite ich schon lange und ist sehr gut.
Ordner Syncronisieren, Dateien in jegliche Art und Weise umbenennen, 2 verschiedene Ordner gleichzeitig (links/rechts) anzeigen und Dateien von einer Seite zur anderen verschieben/kopieren usw. so etwas gab es schon in der DOS Zeit.
Ob er aber UTF-8 kann?

mfg
Michael
Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: leknilk0815 am 14.01.2014, 20:51:49
Servus,
wozu schon wieder Software installieren, die es nicht braucht?
PHP- Dateien sind ganz normale Text- Dateien, die der Windows- Explorer problemlos findet, wenn man ihn läßt.
Jede Script- Datei, die man selbst geschrieben hat, enthält Wörter, an die man sich vielleicht erinnert, und wenns eine Kommentarzeile ist. Wenn man natürlich die ganze Zeile als Suchbegriff neingibt, wird das Ergebnis mager ausfallen. Ein kurzes Stichwort reicht.
@Heimfried:
auch die .reg- Dateien sind normale Textdateien, die man mit dem Editor öffnen kann. Enthalten sind nur die Registry- Keys, die praktischerweise bei Doppelklick installiert werden. Erspart die Handarbeit.
Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: Holli am 14.01.2014, 22:07:54
Zitat von: TheWeather am 14.01.2014, 17:14:25
UTF-8 bedeutet ja meines Wissens, dass zwar ASCII-Zeichen verwendet werden, allerdings mit 2 Byte statt 1 Byte codiert.
Nein, das gilt nur für Umlaute und Sonderzeichen. Eine UTF-8-Datei ohne Sonderzeichen unterscheidet sich in keinem Bit von 7-Bit-ASCII oder einer anderen Codierung. Wenn man nicht sicher ist, wie eine Datei codiert ist, sollte man einfach ohne Umlaute suchen, dann paßt es immer.
Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: TheWeather am 14.01.2014, 22:40:06
Zitat von: Holli am 14.01.2014, 22:07:54
... Nein, das gilt nur für Umlaute und Sonderzeichen...
Nein, so einfach ist es auch wieder nicht. ASCII ist im einfachsten Fall (bei eine 1-Byte Codierung) tatsächlich identisch mit den unteren 127 Byte bei UTF-8. Bei einer 2-Byte Codierung stehen alle ASCII-Zeichen im zweiten Byte, das erste Byte ist stets &00. Erst bei Sonderzeichen (zumindest bei 2-Byte Codierung für ASCII) hat das ertse Byte den Wert &C0, das zweite dann den Wert &00 bis &7F (entsprechend 0 bis 127), um des ASCII-Wert des Bereichs 128 bis 255 darzustellen.

Einfaches Beispiel: Die Dateieinformationen, welche man im Explorer bei rechtem Mausklick auf eine .exe-Datei und "Eigenschaften" und "Allgemein" oder "Versionsinformation" angezeigt bekommt, sind alle mit 2 Bytes UTF-8 codiert. Bei WinWord.exe steht da z.B. "Microsoft Word" im Anzeige-Fenster. Würde man nun mit der Suchfunktion des Explorers "Microsoft Word" als Inhalt aller *.exe suchen, würde man was finden? Keine einzige Datei! Obwohl's explizit drin steht, wie man mit einem HEX-Editor leicht nachvollziehen kann). Nur halt nicht als "Microsoft Word" sondern als " M i c r o s o f t   W o r d", wobei jetzt jedes Leerzeichen hier im Beispiel eine Byte &00 ist. Da ich's schon mal haarklein auseinander gedröselt habe, bin ich mir recht sicher, warum eine Suchanfrage nichts findet, wenn sie nicht explizit ebenfalls ein 2-Byte codiertes UTF-8 verwendet.

Eine Suchanfrage wie "Hallo" würde nichts finden, wenn der gesuchte Begriff in Wirklichkeit als " H a l l o" irgendwo in der Datei steht. Da spielt es auch keinen Unterschied, ob die dateierweiterung .txt oder .xyz ist.

Tut man's dagegen (Suche mit 2-Byte Codierung), findet man die gesuchten Informationen und deren Speicherplatz selbst in *.exe-Dateien. Frage ist nur, welche Dateisuche (und Suche nach Datei-Inhalten) das tatsächlich unterstützt ... der Explorer zumindest nicht, soweit ich ihn kenne.

Gruß Hans

Nachtrag: Da habe ich "Käse" geschrieben.  :? Sorry!

Günter (heimfried) hat mich schon drauf aufmerksam gemacht und Chris hat's nachfolgend schon richtig beschrieben, weswegen ich meine Verfehlung nachträglich "gestrichen" habe. Danke Günter und Chris. Ich war gedanklich beim String-Typ WideChar ... Die Erklärung kann man im nachfolgenden Beitrag von Chris lesen.   
Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: Alloc am 15.01.2014, 00:21:21
Hi Hans,

was du meinst ist UTF-16 Unicode (was z.B. von Windows verwendet wird). Dort wird immer mit zwei Byte pro Zeichen codiert. UTF-8 funktioniert genau wie Dietmar beschrieben hat so, dass solange man die unteren 128 Zeichen verwendet eben auch nur ein Byte für diese Zeichen gespeichert wird. Gerade bei Quellcode sollte es dementsprechend egal sein, ob man hier nach ASCII oder UTF-8 sucht, da dort Umlaute und ähnliches eh nichts zu suchen haben ;)

Grüße,
Chris
Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: Holli am 15.01.2014, 19:13:59
Zitat von: Alloc am 15.01.2014, 00:21:21
Gerade bei Quellcode sollte es dementsprechend egal sein, ob man hier nach ASCII oder UTF-8 sucht, da dort Umlaute und ähnliches eh nichts zu suchen haben ;)
... es sei denn, man macht dort Ausgaben mit Sonderzeichen oder speichert Strings, die woanders ausgegeben werden ;)

Auch wenn es hier nicht zur Problemlösung beiträgt: Unter Windows gibt es bei Webanwendungen eine böse Falle, wenn man den eingebauten Editor nutzt: Das Byte Order Mark, kurz BOM. Die Zusammenhänge sind nicht ganz trivial, deshalb habe ich sie mal in einem länglichen, aber hoffentlich auch für Laien verständlichen Text ausführlich erklärt: http://joomla-geruechte.de/geruechte/61-windows-ist-boese.html
Titel: Re: Dateien unter Windows nach Bestandteilen des Inhalts finden
Beitrag von: wneudeck am 15.01.2014, 19:32:25
Hallo,
Zitatdeshalb habe ich sie mal in einem länglichen, aber hoffentlich auch für Laien verständlichen Text ausführlich erklärt:
und genau deswegen benutze ich seit diesem Artikel Notepad++ als Editor, der auch noch andere Annehmlichkeiten bietet.