Salvare i dati da un ELENCO di file di testo

Sto usando questa libreria http://www.codeproject.com/Articles/28064/Global-Mouse-and-Keyboard-Library per registrare una macro.
Vorrei sapere come fare per salvare “eventi” in un file di testo da caricare in un secondo momento?

Così, ecco la LISTA:

List<MacroEvent> events = new List<MacroEvent>();

Cosa devo fare per ottenere i dati in un file di testo?

InformationsquelleAutor user1410644 | 2012-08-14



4 Replies
  1. 3

    Hai 3 opzioni:

    1. Utilizzare il metodo ToString() per l’esportazione del MacroEvent per la formattazione del testo. Probabilmente avete bisogno di ignorarla. Assicurati di mettere tutte le informazioni di cui hai bisogno, altrimenti non sarà in grado di recuperare in seguito. La lettura e l’analisi il file è quindi la necessità di caricare i dati.

    2. Utilizzare il builtin .netto di serializzazione XML funzione. Di Lettura/scrittura di funzionamento è semplice.

      http://msdn.microsoft.com/en-us/library/ms950721.aspx

      http://support.microsoft.com/kb/815813

    3. Se si prevede di non utilizzare i dati da un’altra applicazione, perché non utilizzare il BinarySerializer? Di gran lunga il metodo migliore, ma il file risultante non sarà in formato testo.

      http://www.codeproject.com/Articles/1789/Object-Serialization-using-C

    • Il BinarySerializer è perfetto. Grazie!
  2. 0

    Se MacroEvent ha un ToString() metodo disponibile per esso, si può semplicemente scorrere l’elenco e la stampa di file di testo.

  3. 0
    TextWriter tw = new StreamWriter("myFile.txt");
    foreach (MacroEvent item in events)
    {
        tw.WriteLine(item.ToString());   
    }
    tw.Close();
    • Ho già provato con qualcosa di simile a questo, ma non funziona. Io sono sempre solo “GlobalMacroRecorder.MacroEvent” nel file di testo. Grazie per la risposta comunque 🙂
  4. 0

    Quello che vorrei suggerire è che utilizza un metodo di estensione. Non so nulla circa la MacroEvent e non sto pensando su come scaricare il codice del Progetto di Codice solo per dare uno sguardo, ma qui è quello che potrebbe sembrare.

    public static class MacroEventExtensions
    {
        public static void WriteToFile(this List<MacroEvent> events, string path)
        {
            StringBuilder fileContents = new StringBuilder();
            foreach (var e in events)
            {
                fileContents.AppendLine("{0}::{1}",
                    [some event id from the object],
                    [some event message from the object]);
            }
    
            File.WriteAllText(path, fileContents.ToString());
        }
    }

    Quindi il codice che hai appena chiamata:

    events.WriteToFile([some path])

Lascia un commento