DocFetcher-Auswahl in Citavi anzeigen lassen

Fragen zur Bedienung von Citavi 5

DocFetcher-Auswahl in Citavi anzeigen lassen

Postby Alma » 2016-02-07 17:06

Systeminformationen: [ Citavi Version 5.x Beta, Windows 10, Deutsch, -, -, - ]

Liebes Citavi-Team,

ich würde gern die hier und hier vorgeschlagene Möglichkeit des Einsatzes von DocFetcher zur Volltextsuche ausprobieren. Das Makro scheint mir aber für Citavi 4 zu sein und in den FAQ habe ich es nicht gefunden. Funktioniert das Makro auch unter Citavi 5?

Vielen Dank und viele Grüße
Alma
Alma
Citavi Expert
 

Re: DocFetcher-Auswahl in Citavi anzeigen lassen

Postby jay-squared » 2016-02-07 18:45

Ja, tut es. In diesem Zusammenhang:

Ich hab in das Skript noch eine Ergaenzung eingefuegt. Wenn man Anfuehrungszeichen (die sind eh nicht erlaubt im Dateinamen) aus dem Text der Zwischenablage entfernt, klappt das auch mit einem Dateipfad, welchen man aus dem Dateimanager/Explorer kopiert hat.

Ich hab daher am Anfang statt

Code: Select all
      List<string> foundPDFs = new List<string>();

      try
      {
         
         if (Clipboard.ContainsText())
         {
            foundPDFs = Clipboard.GetText().Split(new String[] {"\n", "\r\n"}, StringSplitOptions.RemoveEmptyEntries).ToList();   
         }
            
      }


das hier

Code: Select all
      List<string> foundPDFs = new List<string>();
      string stringClipboard = "";
      
      try
      {
         
         if (Clipboard.ContainsText())
         {
            stringClipboard = Clipboard.GetText().Replace("\"", "");
            foundPDFs = stringClipboard.Split(new String[] {"\n", "\r\n"}, StringSplitOptions.RemoveEmptyEntries).ToList();   
         }
            
      }
jay-squared
Citavi Expert
 

Re: DocFetcher-Auswahl in Citavi anzeigen lassen

Postby Alma » 2016-02-09 12:12

Vielen Dank! Ich werde das ausprobieren.

Viele Grüße
Alma
Alma
Citavi Expert
 

Re: DocFetcher-Auswahl in Citavi anzeigen lassen

Postby Sebastian Pabel » 2016-07-07 09:27

Hallo,

ein Hinweis: Seit Version 5.3 beherrscht Citavi eine Volltextsuche über die angehängten Dateien mit Bordmitteln. Verwenden Sie dazu in der Schellsuche das Kürzel ft:.
Das Makro ist, falls es aus anderen Gründen benötigt würde, hier noch zu finden.

Viele Grüße
Sebastian

Wurde Ihre Frage vollständig beantwortet? Bitte klicken Sie auf das grüne Häkchen (= Antwort akzeptieren) oben rechts in meiner Antwort. Andere Forenbenutzer können sich dann leichter orientieren, wenn sie auf der Suche nach einer Lösung sind.
Sebastian Pabel
Citavi Customer Service
 

Re: DocFetcher-Auswahl in Citavi anzeigen lassen

Postby mimu0809 » 2016-10-31 17:44

Hallo,

das ist ja klasse, dass diese Suche endlich geht.
Leider habe ich auch schon ein potenzielles Problem bei der Suche gefunden:
wenn ich eine Suchanfrage mache, bei der ich bereits vorher eine Einschränkung vornehme, z.B. über Kategorien, werden dennoch alle PDF-Dateien durchsucht, was bei großen Projekten natürlich sehr lange dauert (insbesondere wenn große PDF-Dateien im Projekt sind.
Beispiel: ich suche nach: "rc: Softwareentwicklung AND ft: Java"
Dann könnte die Suche enorm optimiert werden, da beide Suchbegriffe mit AND verknüpft werden: alle Einträge, die nicht die Kategorie "Softwarenentwicklung" besitzen, kommen für die Volltextsuche gar nicht mehr in Frage.

Auch wäre ein Index wahrscheinlich sehr vorteilhaft.

Aktuell ist für mich die Funktion daher leider überhaupt nicht nutzbar.

Viele Grüße,

Michael
mimu0809
 

Re: DocFetcher-Auswahl in Citavi anzeigen lassen

Postby Jana Votteler » 2016-11-01 09:58

Hallo Michael,

vielen Dank für Ihren Hinweis.

Wir planen mit der kommenden Version eine indizierte Volltextsuche für Citavi for Windows anbieten zu können.
So soll sich die Geschwindigkeit der Suche in Volltexten erhöhen.

Vielen Dank für Ihre Geduld.

Viele Grüße,
Jana

Wurde Ihre Frage vollständig beantwortet? Bitte klicken Sie auf das grüne Häkchen (= Antwort akzeptieren) oben rechts in meiner Antwort. Andere Forenbenutzer können sich dann leichter orientieren, wenn sie auf der Suche nach einer Lösung sind.
Jana Votteler
Citavi Customer Service
 

Re: DocFetcher-Auswahl in Citavi anzeigen lassen

Postby vkrech » 2017-09-24 01:24

Sebastian Pabel wrote:
ein Hinweis: Seit Version 5.3 beherrscht Citavi eine Volltextsuche über die angehängten Dateien mit Bordmitteln. Verwenden Sie dazu in der Schellsuche das Kürzel ft:.
Das Makro ist, falls es aus anderen Gründen benötigt würde, hier noch zu finden.

Viele Grüße
Sebastian

Hallo Sebastian,
ich benutze das Makro für DocFetcher, um große Mengen an PDFs, die ich als Attachment im Citavi-Projekt habe, schnell durchsuchen lassen zu können. Bin jetzt auf Citavi 6 umgestiegen, wo das Makro nicht mehr funktioniert. Gibt es ein Update für Citavi 6?
Besten Dank für die Antwort und schöne Grüße,
Volkhard


Wurde Ihre Frage vollständig beantwortet? Bitte klicken Sie auf das grüne Häkchen (= Antwort akzeptieren) oben rechts in meiner Antwort. Andere Forenbenutzer können sich dann leichter orientieren, wenn sie auf der Suche nach einer Lösung sind.
vkrech
 

Re: DocFetcher-Auswahl in Citavi anzeigen lassen

Postby Peter Meurer » 2017-09-25 09:38

Guten Tag

Herr Pabel ist diese Woche noch in Urlaub. Wenn er wieder im Dienst ist, bitte ich ihn, sich das Makro nochmal anzuschauen.

Freundliche Grüsse
Peter
Peter Meurer
Citavi Customer Service
 

Re: DocFetcher-Auswahl in Citavi anzeigen lassen

Postby jay-squared » 2017-09-25 16:40

Da sollte jetzt so nichts kaputt gehen können, aber die übliche Warnung trifft zu. An Sicherungskopie ausprobieren, etc. aber das gilt für Citavi 6 ja ohnehin. Klappt dieses Makro?
Code: Select all
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Net;
using System.Linq;
using System.IO;

using SwissAcademic.Citavi;
using SwissAcademic.Citavi.Metadata;
using SwissAcademic.Citavi.Shell;
using SwissAcademic.Collections;

// Implementation of macro editor is preliminary and experimental.
// The Citavi object model is subject to change in future version.

public static class CitaviMacro
{
    public static void Main()
   {
      //****************************************************************************************************************
      // SELECT REFERENCES THAT HAVE LOCATIONS MATCHING A LIST OF FILENAMES IN THE WINDOWS CLIPBOARD
      // 1.2 -- 2015-09-25
      //
      // This macro selects references with files in the CitaviFiles folder that match a list
      // of full file names including path from the Windows Clipboard.
        //
        //
      //
      // EDIT HERE
      //
        bool allowReferencedAbslouteUris = true; // allow linked PDFs in other locations with full absolute path

      // DO NOT EDIT BELOW THIS LINE
      // ****************************************************************************************************************

      if (Program.ProjectShells.Count == 0) return;      //no project open

      // Get search results from file   
      List<string> foundPDFs = new List<string>();
      string stringClipboard = "";
      
      try
      {
         
         if (Clipboard.ContainsText())
         {
            stringClipboard = Clipboard.GetText().Replace("\"", "");
            foundPDFs = stringClipboard.Split(new String[] {"\n", "\r\n"}, StringSplitOptions.RemoveEmptyEntries).ToList();   
         }
            
      }
      catch(Exception e)
      {
         string fileerror = "No data found in clipboard: \n" + e.Message;
         MessageBox.Show(fileerror, "Macro", MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
      }

      //iterate over all references in the current filter (or over all, if there is no filter)
      List<Reference> references = Program.ActiveProjectShell.PrimaryMainForm.GetFilteredReferences();

      //reference to active Project
      Project activeProject = Program.ActiveProjectShell.Project;

      //list to store matching references
      List<Reference> refWithLocation = new List<Reference>();

      try
      {

         foreach (Reference reference in references)
         {
            Location[] locations = reference.Locations.ToArray();

            foreach (Location location in locations)
            {
               if (location.Address.UriString == "CitaviFiles" || location.Address.UriString == "Attachment")
               {
                  string referenceFile = location.Address.UriString;
                  referenceFile = new Uri(referenceFile).LocalPath;
                  if (foundPDFs.Contains(referenceFile)) refWithLocation.Add(reference);
               }
               else if (location.Address.LinkedResourceType == LinkedResourceType.AbsoluteFileUri && allowReferencedAbslouteUris)
                    {
                        string referenceFile = location.Address.UriString;
                  referenceFile = new Uri(referenceFile).LocalPath;
                  if (foundPDFs.Contains(referenceFile)) refWithLocation.Add(reference);
                    }

               
               
            }         
         }
         
         if(refWithLocation.Count > 0)
         {
            ReferenceFilter filter = new ReferenceFilter(refWithLocation, "References with locations from file", false);
            Program.ActiveProjectShell.PrimaryMainForm.ReferenceEditorFilterSet.Filters.ReplaceBy(new List<ReferenceFilter> { filter });
         }
      }
         
      finally
      {
         if (refWithLocation.Count == 0)
         {
            MessageBox.Show("No matching references found.", "Macro", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
         else
         {
            MessageBox.Show(string.Format("{0} reference(s) in new selection", refWithLocation.Count), "Macro", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }      
      }
   }
}
jay-squared
Citavi Expert
 

Re: DocFetcher-Auswahl in Citavi anzeigen lassen

Postby vkrech » 2017-09-28 22:29

Vielen Dank! Das Makro läuft jetzt (im Unterschied zum früheren) fehlerfrei, aber die alte Methode (Auswahl in DocFetcher kopieren und dann das Makro ausführen) klappt nicht: "No matching references found." Mache ich etwas falsch?
Beste Grüße
Volkhard
vkrech
 

Next

Return to Citavi 5 Support (Deutsch)