Jump to content
Nokioteca Forum

[C++ E Qt] Leggere File Di Testo.


ugo1995
 Share

Recommended Posts

Ciao raga,

mi serviva sapere come si fa per leggere un file di testo.

Ad esempio se voglio leggere il contenuto del file "C:\a.txt" come devo fare???

Grazie.

PS : Uso QTCreator.

PS2 : è da poco che programma per i cellulari, mi consigliate QTCreatore o Carbie C++???

Modificato da ugo1995
Link to comment
Condividi su altri siti

Vedi qui per c++:

http://wiki.forum.nokia.com/index.php/How_to_retrieve_S60_5th_Edition_device_model_name

o qui per Qt:

http://wiki.forum.nokia.com/index.php/How_to_read_data_from_a_file_in_Qt_for_Symbian

Non ti consiglio nessuno dei due... piuttosto j2me.

Modificato da Il.Socio
Link to comment
Condividi su altri siti

  • 1 mese dopo...

Ma è possibile che il c++ per symbian sia così intricato?

Sarà da 4 ore che cerco di leggere un file e mi sono letto anche tutto quello che ho trovato sulla guida di caride, ma niente, manca sempre un pezzo.

Ora mi è balzata all'occhio questa discussione e a questo punto chiedo aiuto;

Nell' esempio postato da Il.Socio appare CCoeEnv ma non è dichiarato, cos'è?

Qualcuno mi spiegherebbe passo a passo il codice? Mi scuso per il disturbo, sono nuovo della programmazione symbian c++.

Modificato da Andrea993
Link to comment
Condividi su altri siti

La descrizione di cosa sia CCoeEnv e di quali funzionalita' fornisce la trovi qui:

http://library.forum.nokia.com/index.jsp?topic=/S60_5th_Edition_Cpp_Developers_Library/GUID-35228542-8C95-4849-A73F-2B4F082F0C44/sdk/doc_source/reference/reference-cpp/Control_Environment/CCoeEnvClass.html

Cosa intendi con "non e' dichiarato"?

Il metodo CCoeEnv::Static() e' statico e restituisce una istanza della classe CCoeEnv (Pattern Singleton)

Nell'esempio, viene utilizzata esclusivamente per ottenere una connessione al file server (RFs)

Eventualmente, puoi farne a meno creando una tua connessione al file server...

Qui con l'esempio "grezzo"...

RFs fs;
fs.Connect();
file.Open(fs, KFilename, EFileRead);
// ... do Stuff ...
file.Close();
fs.Close();

E qui, invece, come andrebbe fatto...

RFs fs;
User::LeaveIfError( fs.Connect() );
CleanupClosePushL(fs);
User::LeaveIfError( file.Open(fs, KFilename, EFileRead) );
CleanupClosePushL(file);
// ... do Stuff ...
CleanupStack::PopAndDestroy(&file);
CleanupStack::PopAndDestroy(&fs);

P.S.

Si, Symbian c++ e' cosi' intricato, ma preparati... Perche', se avrai la tenacia per continuare, i prossimi 2/3 anni saranno tutti in salita :)

Una spiegazione passo-passo, serve a poco...

Quello che ti serve, e' studiare tutti i vari argomenti basilari che sono presenti in lungo e in largo su Symbian, quali:

- Costanti: _LIT(KFilename,"Z:\\resource\\versions\\product.txt");

- Panic, Trap, Leave: User::LeaveIfError

- Gestione della memoria e del ClenupStack: CleanupClosePushL, CleanupStack::PopAndDestroy(&file);

- Naming conventions e differenze tra Classi R, T, C, M: RFile, TFileText, CAknInformationNote

- Descriptors: TBuf16

Su forum.nokia.com trovi le varie guide in cui vengono affrontati questi argomenti.

Modificato da Il.Socio
Link to comment
Condividi su altri siti

Anche per imparare con superficialita' i fondamenti di Symbian, dovrai comunque mettere in conto almeno 3 mesi.

Io ti consiglio di investire su j2me, o eventualmente, di passare direttamente ad Android...

In 2 settimane, j2me lo si impara gia' come si deve...

Modificato da Il.Socio
Link to comment
Condividi su altri siti

  • 3 settimane dopo...

mi studierò comunque un po di symbian, vogliio provare

Se usi QtCreator, é piuttosto facile.

#include <QFile>

void funzione()
{
   QFile file("c:\\a.txt");
   if (file.open(QIODevice::ReadOnly))
   {
       QByteArray ba = file.readAll();

       file.close();
   }
}

in ba avrai tutto il file in bytes.

Diventa più complicato se vuoi leggere e scrivere variabili, ma neanche più di quel tanto.

Se poi premi F1 sul testo QFile ti appare l'help con gli esempi.

EDIT: spero di non farmi bannare da Socio, ma se vuoi scegliere tra QTCreator o Carbie C++, sceglierei Qt. Qt é diventato davvero ottimo, anche se non si sa se avrà futuro. Ma scrivi in C++ e puoi eseguirlo e fare il debug direttamente sul telefonino.

Modificato da AdrianoTiger
Link to comment
Condividi su altri siti

Sono senza dubbio d'accordo!

P.S.

Proprio in questi giorni anche a me tocca mettere mano su Qt... Per ora lo trovo molto carino...

Davvero notevole la facilita' di creazione GUI con QtQuick :)

Come sta andando?

QtQuick a dirti la verità non ho ben capito cosa sia. So che serve se vuoi che l'app funzioni a diverse risoluzioni (infatti le mie apps non funzionano sull'E6 ad esempio).

Prima o poi ti toccherà inserire la sezione Qt, hehehe

Link to comment
Condividi su altri siti

Sono proprio agli inizi, perlopiu' sto leggendo un bel po' di documentazione... L'ambiente promette bene, il linguaggio e' semplice e pulito, e ho gia' l'impressione che QtQuick diventera' una droga! :D

QtQuick consente di realizzare l'interfaccia in maniera dichiarativa, riducendo notevolmente i tempi di sviluppo e renza rinunciare alla possibilita' di avere il pieno controllo di ogni aspetto dell'interfaccia.

Inoltre, bastano davvero un paio di righe per ottenere delle stupende animazioni ed effetti grafici.

Questo e' un semplice esempio:

http://doc.qt.nokia.com/4.7/qml-tutorial3.html

Una animazione del genere, per quanto apparentemente semplice, porterebbe via davvero un sacco di tempo utilizzando un qualsiasi altro linguaggio.

Modificato da Il.Socio
Link to comment
Condividi su altri siti



Sono proprio agli inizi, perlopiu' sto leggendo un bel po' di documentazione... L'ambiente promette bene, il linguaggio e' semplice e pulito, e ho gia' l'impressione che QtQuick diventera' una droga! :D

QtQuick consente di realizzare l'interfaccia in maniera dichiarativa, riducendo notevolmente i tempi di sviluppo e renza rinunciare alla possibilita' di avere il pieno controllo di ogni aspetto dell'interfaccia.
Inoltre, bastano davvero un paio di righe per ottenere delle stupende animazioni ed effetti grafici.


Questo e' un semplice esempio:
http://doc.qt.nokia.com/4.7/qml-tutorial3.html
Una animazione del genere, per quanto apparentemente semplice, porterebbe via davvero un sacco di tempo utilizzando un qualsiasi altro linguaggio.


Sono contento che ti piaccia! :)
Quando avrai capito la storia dei SIGNALS e SLOTS sei già a metà strada :)

Inoltre puoi creare nuovi oggetti, senza poi doverli eliminare (una specie di smart pointer), impostando il parent al momento che lo dichiari, tipo
MainWindow::MainWindow(QWidget *parent)
{
...
QLabel *l = new QLabel(this);
...
}

Così puoi creare dinamicamente dei testi e quando la finestra si chiude, si occupa lei di eliminare gli oggetti.

Link to comment
Condividi su altri siti

Please sign in to comment

You will be able to leave a comment after signing in



Accedi Ora
 Share

×
×
  • Crea Nuovo...

Informazione Importante

Questo sito utilizza i cookie per analisi, contenuti personalizzati e pubblicità. Continuando la navigazione, accetti l'utilizzo dei cookie da parte nostra | Privacy Policy