Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C#]Appendere stringhe ad un file.

    Salve a tutti, sono nuovo del forum e spero di riuscire a risolvere il mio problema perchè davvero non so più dove sbattere la testa

    Sto creando un'applicazione per smartphone in C#, utilizzando Visual Studio 2008, il Framework 3.5 e WindowsMobile 6

    Nella mia applicazione ad un certo punto ho questo codice:

    codice:
    public static void write(string s)  {
    
    String path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
    
    FileStream fs = new FileStream(path + @"\journaling.txt", FileMode.Append, FileAccess.Write);
    
    StreamWriter sw = new StreamWriter(fs);  
                
    sw.WriteLine(s);
    
    sw.Flush();
    sw.Close();             
    fs.Close();                  
     }
    Il file "journaling.txt" è presente come elemento ed ha l'opzione "copia se più recente" attivata.
    Il problema che riscontro è che non riesco a scrivere nel file.
    Come potete immaginare, la stringa che viene passata a questo metodo statico deve essere aggiunta in coda al file, ma non riesco a scrivere un bel niente.

    Grazie mille in anticipo a tutti quelli che risponderanno

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Cosa vuol dire "non riesco a scrivere"?
    Ottieni un errore? Cosa succede di preciso?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    No, se avessi un errore ve l'avrei detto.
    L'applicazione termina la sua esecuzione normalmente, senza errori, ma alla fine di tutto il file risulta vuoto.

    Questo vuoto, però, è solo apparente, ho notato che se all'operazione di scrittura faccio seguire un'operazione di lettura, riesco effettivamente a leggere ciò che ho appena scritto. Però se apro il file non c'è nulla dentro.

    Credo che sia una questione di emulazione del device.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    455
    Ciao,

    Per aggiungere una stringa all'ultima riga del file di testo occorre aprire il file e inserire in una lista con list<> tutte le righe che sono nel file, dopo di che prima di salvare il file aggiungi la nuova stringa alla list<>

    Per cui:

    dichiariamo la nostra lista con questo:

    codice:
     List<string> myList = new List<string>();
    Apriamo il nostro file con lo streamreader:

    codice:
     using (StreamReader  reader = new StreamReader (path)) 
                {
                    while (reader.EndOfStream == false)
                    {
                        myList.Add(reader.ReadLine());
                    }
                }
    aggiungiamo la nuova stringa alla lista:

    codice:
    MyList.Add(Stringa);
    Salviamo il file (è necessario inserire il for each altrimenti verrà salvata solo la stringa selezionata)

    codice:
         using (StreamWriter writer = new StreamWriter(path))
                {
                    foreach (string line in myList)
                    {
                        writer.WriteLine(line); 
                    }             
    
                }

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    119
    Prova in questo modo
    codice:
            public static void writeText(string s)
            {
                /* non va formato uri 
                String path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) +  @"\journaling.txt";
                */
                string path = "./journaling.txt";
                using (StreamWriter sw = new StreamWriter(path, true))
                {
                    sw.WriteLine(s);
                    sw.Close();
                }
            }

  6. #6
    GhostFire e cyanuro, neanche con i vostri codici riesco a risolvere il problema.

    Sia il mio tipo di codice che il vostro, funziona su progetti di tipo console, ma per progetti per smart device no.

    A questo punto penso sia un problema di emulazione, può essere?

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da Fraggio
    Sia il mio tipo di codice che il vostro, funziona su progetti di tipo console, ma per progetti per smart device no.
    A questo punto penso sia un problema di emulazione, può essere?
    Direi proprio di sì.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Ho risolto, bastava usare il Remote File Viewer, grazie a tutti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.