2016-07-28 5 views
-3

Ich mache derzeit eine UI für einen Notizen-Keeper und wollte nur Vorschau Dokumente etc, aber ich fragte mich, welchen Dateityp ich erstellen müsste, wenn ich stattdessen Dinge tun wollte Tag die Datei usw., vorzugsweise in C#, machen Sie im Grunde mein eigenes evernote, wie speichern diese Programme die Notizen?Erstellen von Dateien mit C#, wie ein evernote

+0

Was meinen Sie mit dem Taggen? Welches Tag würden Sie einer Datei hinzufügen? und sollten die Benutzer diese Tags sehen können? – MasterXD

+0

ja, taggen so dann kann ich es suchen, denke evernote, nicht ganz sicher, wie es funktioniert, aber ive googelte so viel und bin nicht näher an eine Antwort, danke – berni3mack

+0

Bär mit mir seit die Antwort wird einige Zeit dauern, aber ich habe zwei Ideen, die dir gefallen könnten. – MasterXD

Antwort

0

Ich weiß nicht, wie Sie die Datei direkt markieren, aber Sie könnten Ihr eigenes System erstellen, um es zu tun. Ich erwähnte zwei Möglichkeiten, es zu tun:

  1. Der erste Weg ist die Notiz/Dateiinhalt zu formatieren, so dass es zwei Teile, die Tags und der eigentliche Text. Wenn das Programm die Notiz/Datei lädt, trennt es die Tags und den Text. Dies hat den Nachteil, dass das Programm die gesamte Datei laden muss, um die Tags zu finden.

  2. Die zweite Möglichkeit besteht darin, eine Datenbank mit dem Dateinamen und den zugehörigen Tags zu erstellen. Auf diese Weise muss das Programm nicht die gesamte Datei laden, nur um die Tags zu finden.

Der erste Weg

In dieser Lösung, die Sie benötigen, um Ihre Dateien in einer bestimmten Art und Weise trennen

<Tags> 
tag1,tag2,tag3 
</Tags> 
<Text> 
The text you 
want in here 
</Text> 

Durch Einstellen der Datei wie folgt, kann das Programm formatiert werden die Tags aus der Text. Um es den Tags zu laden würden Sie diesen Code benötigen:

public List<string> GetTags(string filePath) 
{ 
    string fileContents; 

    // read the file if it exists 
    if (File.Exists(filePath)) 
     fileContents = File.ReadAllText(filePath); 
    else 
     return null; 

    // Find the place where "</Tags>" is located 
    int tagEnd = fileContents.IndexOf("</Tags>"); 

    // Get the tags 
    string tagString = fileContents.Substring(6, tagEnd - 6).Replace(Environment.NewLine, ""); // 6 comes from the length of "<Tags>" 

    return tagString.Split(',').ToList(); 
} 

Dann den Text bekommen Sie diese benötigen würden:

public string GetText(string filePath) 
{ 
    string fileContents; 

    // read the file if it exists 
    if (File.Exists(filePath)) 
     fileContents = File.ReadAllText(filePath); 
    else 
     return null; 

    // Find the place where the text content begins 
    int textStart = fileContents.IndexOf("<Text>") + 6 + Environment.NewLine.Length; // The length on newLine is neccecary because the line shift after "<Text>" shall NOT be included in the text content 

    // Find the place where the text content ends 
    int textEnd = fileContents.LastIndexOf("</Text>"); 

    return fileContents.Substring(textStart, textEnd - textStart - Environment.NewLine.Length); // The length again to NOT include a line shift added earlier by code 
} 

Dann werde ich Sie erfahren, wie Sie den Rest.

Der zweite Weg

In dieser Lösung Sie eine Datenbank-Datei-Tags über alle Dateien und ihre zugehörigen haben. Diese Datenbank-Datei würde wie folgt aussehen:

[filename]:[tags] 
file.txt:tag1, tag2, tag3 
file2.txt:tag4, tag5, tag6 

Das Programm wird dann die Dateinamen lesen und die Tags auf diese Weise:

public static void LoadDatabase(string databasePath) 
{ 
    string[] fileContents; 

    // End process if database doesn't exist 
    if (File.Exists(databasePath)) 
     return; 

    fileContents = File.ReadAllLines(databasePath); // Read all lines seperately and put them into an array 

    foreach (string str in fileContents) 
    { 
     string fileName = str.Split(':')[0]; // Get the filename 
     string tags = str.Split(':')[1]; // Get the tags 

     // Do what you must with the information 
    } 
} 

Ich hoffe, das hilft.

+0

es hat, def. gab mir die benötigten Informationen und ich kann den Code lesen! Ernsthaft nochmal Danke !!!!! – berni3mack

+0

@ berni3mack toll! Es freut mich, dass ich helfen konnte. – MasterXD

Verwandte Themen