mikrocontroller.net

Forum: PC-Programmierung Eigenen Suchindex in Windows 10 erstellen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Lias Lindenau (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe eine CSV-Datei der Form

Dateiname;textinhalt

Die Datei Dateiname ist binär und kann nicht durchsucht werden.

Ich möchte in der Windows 10 - Suche Worte aus dem jeweiligen Textinhalt 
eingeben und im Ergebnis den Textinhalt sehen als auch einen Link auf 
die Datei, quasi meinen eigenen Index.

Wie mache ich das?

Autor: $$$ (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Profis nehmen dafuer eine Datenbank.

Aber doch nicht so etwas ao laecherlich unzuverlaessiges wie
die Windowssuche.

Binaere CSV-Dateien gibt es uebrigens nicht.
Entweder CSV (soll wohl Comma Separated Value) oder Binaer.

Autor: test (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann <textinhalt> als Attribut direkt zur Datei Packen. Ungetestet, 
aber NTFS kann das und die Windows Suche hoffentlich.


Ich würde nen richtigen Dateimanager nutzen. Der TotalCommander kann so 
etwas wenn man das passende Plugin dafür programmiert (spezielle 
individuelle Wünsche erfordern halt eine eigene Programmierung).

Autor: Peter M. (r2d3)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Lias Lindenau schrieb:
> Dateiname;textinhalt
>
> Die Datei Dateiname ist binär und kann nicht durchsucht werden.

Entweder handelt es sich um eine lesbare CSV-Datei oder eine Datei im 
Binärformat. Beides zusammen passt nicht.

Bei Windowssystemen sollte das Programm, das Deine Datei geschrieben 
hat, dem Betriebssystem eine Funktion zum Durchsuchen bereitstellen.

Stellt der Hersteller diese Funktion nicht bereit, bleibt nur noch 
Selberschreiben, wenn Du das Format der Datei kennst.

Autor: Lias Lindenau (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
$$$ schrieb:
> Binaere CSV-Dateien gibt es uebrigens nicht.
> Entweder CSV (soll wohl Comma Separated Value) oder Binaer.

Lias Lindenau schrieb:
> Die Datei Dateiname ist binär und kann nicht durchsucht werden.

Autor: Peter M. (r2d3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie meinen?

Autor: $$$ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er hat seine Froschpillen noch nicht genommen.

Autor: test (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter M. schrieb:
> Wie meinen?

Er hat dich darauf hingewiesen das du die Aufgabenstellung nicht richtig 
verstanden hast.

Es handelt sich um binäre Dateien UND eine Textdatei (CSV) mit Metainfos 
zu diesen binären Dateien.
Die Textdatei soll von der Suche gelesen (und Durchsucht) werden. Und 
als Ergebnis sollen die Dateinamen der zutreffenden binären Dateien 
gelistet werden.

Autor: adfsd (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Peter M. schrieb:
> Wie meinen?

der TO hat verschiedene Binärdateien, sowie eine csv-Datei (nicht 
binär), in der diesen Binärdateien Textinhalte zugeordnet werden

Autor: Peter M. (r2d3)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke an alle Übersetzer! :)

Ich glaube, dass die Microsoft-Suche dateiorientiert ist.

Das bedeutet, der Frager sollte die dateispezifischen lesbaren 
Informationen in der Textdatei in die Binärdatei packen.

Technisch könnte man das unter NTFS so realisieren, dass man diese 
Metainformationen in ein neues Attribut der Datei packt:

https://de.wikipedia.org/wiki/Alternativer_Datenstrom

Dann kann man nur noch hoffen, dass die Windowssuche auch anderen 
Attribute neben dem unbenannten Attribut "data" erfasst.

Kopiert man solche Dateien jedoch auf einen Datenträger ohne NTFS, gehen 
diese Zusatzinformationen verloren!

Autor: Arc N. (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lias Lindenau schrieb:
> Ich habe eine CSV-Datei der Form
>
> Dateiname;textinhalt
>
> Die Datei Dateiname ist binär und kann nicht durchsucht werden.
>
> Ich möchte in der Windows 10 - Suche Worte aus dem jeweiligen Textinhalt
> eingeben und im Ergebnis den Textinhalt sehen als auch einen Link auf
> die Datei, quasi meinen eigenen Index.
>
> Wie mache ich das?

Search IFilter implementieren:
https://docs.microsoft.com/en-us/windows/desktop/search/-search-ifilter-conceptual
Das Beispiel von der Seite findet sich hier 
https://github.com/Microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples/winui/WindowsSearch/IFilterSample

Autor: Klaus P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt auf die Größe der Datei an.


Am einfachsten nimmst die die Programmiersprache deiner Wahl und liest 
die Datei zeilenweise ein. Splittest jede Zeile nach dem ersten Komma / 
Semikolon und durchsuchtst nur den zweiten Teil. Bei Treffer gibst Du 
den ersten Teil zurück.

Das geht z.B. mit wenigen Zeilen in C# (hier ein funktionsfähiges 
Beispiel ohne jede Fehlerbehandlung und ohne Prüfung der Parameter 
etc.):
static void Main(string[] args)
{
   using (TextReader tr = new StreamReader(@"C:\Tmp\Neues Textdokument.csv"))
    {
    string line;
    while ((line = tr.ReadLine()) != null)
      {
      string[] elements = line.Split(new char[] { ';' });
      if (elements[1].Contains(args[0]))
         {
            Console.WriteLine(elements[0]);
         }
      }
   }
}


Der Suchtext wird im obigen Beispiel einfach als 
Kommandozeilen-Parameter übergeben.


Man kann auch unter Windows die bash installieren und dann awk benutzen. 
Mache ich manchmal bei großen Dateien.


Anonsten die CSV-Datei in eine Datenbank einlesen oder als Fremdtabelle 
einbinden, z.B. mit PostgreSQL FDW. Geht natürlich auch mit Excel...

Autor: Lias Lindenau (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arc N. schrieb:
> Search IFilter implementieren:
> 
https://docs.microsoft.com/en-us/windows/desktop/search/-search-ifilter-conceptual
> Das Beispiel von der Seite findet sich hier
> 
https://github.com/Microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples/winui/WindowsSearch/IFilterSample

Ich habe es installiert, die Erweiterung filtersample existiert, es 
sollen Eigenschaften und Dateiinhalte indiziert werden. Die Datei ist in 
einem indizierten Ordner.
Gebe ich dog im Cortana-Suchfeld ein, erscheint das Dokument nicht. 
Woran kann das liegen?

Autor: Arc N. (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lias Lindenau schrieb:
> Arc N. schrieb:
>> Search IFilter implementieren:
>>
> 
https://docs.microsoft.com/en-us/windows/desktop/search/-search-ifilter-conceptual
>> Das Beispiel von der Seite findet sich hier
>>
> 
https://github.com/Microsoft/Windows-classic-samples/tree/master/Samples/Win7Samples/winui/WindowsSearch/IFilterSample
>
> Ich habe es installiert, die Erweiterung filtersample existiert, es
> sollen Eigenschaften und Dateiinhalte indiziert werden. Die Datei ist in
> einem indizierten Ordner.
> Gebe ich dog im Cortana-Suchfeld ein, erscheint das Dokument nicht.
> Woran kann das liegen?

Mal die Tests drauf losgelassen?
https://docs.microsoft.com/en-us/windows/desktop/search/-search-ifilter-testing-filters
bzw. dann an die Tests anhängen und Debuggen.
Anderer Fehler kann sein, dass in den Indizierungsoptionen (dort unter 
Erweitert und Dateitypen) schlicht nur eingestellt ist, dass bei der 
gewählten Dateiendung nur die Eigenschaften, aber nicht die Inhalte 
indiziert werden sollen.
Edit: U.U. kanns auch sein, dass die Indizierung neu angestoßen werden 
muss (net stop wsearch, net start wsearch

: Bearbeitet durch User
Autor: Lias Lindenau (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier das Ergebnis.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.