Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Aprire un file di testo
Forum - C# / VB.NET - Aprire un file di testo

Avatar
the_scorpion (Normal User)
Newbie


Messaggi: 8
Iscritto: 01/08/2008

Segnala al moderatore
Postato alle 12:28
Lunedì, 24/09/2012
salve gente, vi spiego il mio problema.
Avrei bisogno di aprire all'interno di una richtextbox un testo che si trova all'interno di un file di testo .txt sul pc.
ora, il problema è che quando indico al programma di aprire il file che si trova ad un certo percorso: C:\Desktop\testo.txt
nel momento in cui cambio pc, ovviamente, non trova più questo file.
Io avrei bisogno che il programma avesse il suo file tra le sue risorse e lo apra all'occorrente, qualunque sia il pc dove sto lavorando.

Come posso fare?

La necessità del file di testo esterno nasce dal fatto che il testo è molto molto lungo e quando provo ad usare la funzione (che sarebbe molto più comoda del file di testo):

Codice sorgente - presumibilmente Plain Text

  1. My.Forms.Form1.RichTextBox1.Text = "testo molto lungo"



Non funziona. Infatti considera testo solo la prima riga. Bah.

Che indicazioni potete darmi?

PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 13:45
Lunedì, 24/09/2012
CIao..
Puoi caricare il file tra le risorse (guarda nelle proprietà del progetto, risorse, aggiungi file di testo).
Così facendo il file viene "inserito" nell'eseguibile e diventa parte integrante del progetto.
Per accedervi basta che scrivi:

My.Resorces.Nomefile

In ogni caso il file viene considerato come tale e non come stream di caratteri (string).
Devi usare un oggetto stream per leggere il file in memoria e poi passarlo come testo alla proprietà text della tua richtextbox.
Cerca delle guide su come inserire il file nelle risorse e come creare un stream per leggerlo e convertirlo in stringa.
Ciao!8-|


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote
Avatar
the_scorpion (Normal User)
Newbie


Messaggi: 8
Iscritto: 01/08/2008

Segnala al moderatore
Postato alle 15:12
Lunedì, 24/09/2012
OK. Ho trovato qualcosa in giro.
Ho inserito il mio file di testo tra le risorse e ho usato questi comandi per leggerlo e inserirlo nella richtextbox:

Codice sorgente - presumibilmente VB.NET

  1. Dim testo As String
  2.         Dim flusso As FileStream
  3.         flusso = New FileStream(Path, FileMode.OpenOrCreate, FileAccess.Read)
  4.         Dim file_input As New StreamReader(flusso)
  5.         While Not file_input.EndOfStream
  6.             testo = file_input.Read
  7.             RichTextBox1.Text = testo
  8.             file_input.Close()
  9.         End While



Che devo mettere come directory? Cioè la path come la definisco?
Considerate che il mio file di testo si trova tra le risorse e lo voglio richiamare

Ultima modifica effettuata da the_scorpion il 24/09/2012 alle 15:13
PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 15:26
Lunedì, 24/09/2012
Ciao..
Ho verificato meglio e mi sono accorto di averti detto una cosa sbagliata. Se il file lo carichi binario, per leggerlo hai bisogno dello stream, per ricrearlo come insieme di caratteri. Se invece il file lo aggiungi come file di testo "txt", per richiamarne il contenuto basta che digiti:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim t As String = My.Resources.ESEMPIO


Più semplice ancora!
Ciao!:k:


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote
Avatar
the_scorpion (Normal User)
Newbie


Messaggi: 8
Iscritto: 01/08/2008

Segnala al moderatore
Postato alle 15:37
Lunedì, 24/09/2012
Allora il mio file si chiama testolegge.txt
uso il comando che mi hai suggerito in questo modo:

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim t As String = My.Resources.testolegge.txt



Ma mi dice che: "testolegge non è un membro di Resources"

perché da questo errore?

PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 15:50
Lunedì, 24/09/2012
Se l'hai inserito correttamente come file di testo, tra le risorse, dovresti trovare il nome del file già con l'intellisense.. Se lo trovi, vuol dire che l'hai inserito, altrimenti devi riprovare..
E' importante che lo inserisci nel menù resorces del progetto, come file di testo, con estensioni .txt
Comunque togli .txt.. e lascia
Codice sorgente - presumibilmente Plain Text

  1. My.resorces.testolegge


Ultima modifica effettuata da Renny il 24/09/2012 alle 15:56


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote
Avatar
the_scorpion (Normal User)
Newbie


Messaggi: 8
Iscritto: 01/08/2008

Segnala al moderatore
Postato alle 15:58
Lunedì, 24/09/2012
Niente...Non funge.
Guarda tu stesso l'immagine: http://nextgameg.altervista.org/images/2012-09-24_155726.png

Adesso il nome del file è skin1.

PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 16:13
Lunedì, 24/09/2012
Non l'hai aggiunto bene.
Devi andare sulle proprietà del progetto, \risorse.
Nel tab delle risorse, trovi scritto "string". Li, selezioni dal menu a tendina e metti "file".
Poi fai aggiungi risorse da file esistente. Carichi il tuo file. In questo modo è entrato a far parte delle risorse del tuo progetto, e lo puoi puntare con my resorces
A me funziona...
Non devi fare aggiungi elemento esistente dal menu esplora soluzione.. devi proprio andare tra le proprietà del progetto...


In attesa della fine del mondo, fissata per l'anno prossimo, sono alla ricerca di un notaio con cui fare testamento...
PM Quote