PDA

Visualizza la versione completa : [C++] Lettura intervallo di righe da file di testo in base a valore contenuto


Elénú
21-02-2012, 10:09
Sto utlizzando come ambiente di sviluppo il Visual c++.
Ho utilizzato un puntatore a StreamReader per leggere un file txt. Successivamente dovrei fare in modo di posizionarmi con il mouse nella parte del file di testo che mi interessa ovvero:



StreamReader^ tw= gcnew StreamReader("help.txt");
String ^line;
while ((line = tw->ReadLine())!= "START2" )
{
if (line->Contains("START1")){

// qui il mouse deve visualizzare solo le righe successive a START 1 fino a START2



}
}
tw->Close();


Il file txt é ovviamente gia scritto. Per questo utlizzo lo StreamReader.Esiste un metodo particolare per visualizzare solo quelle righe?

oregon
21-02-2012, 10:12
Scusa ... ma cosa c'entra il mouse?

Elénú
21-02-2012, 10:19
cioe quando apro il file devo posizionarmi solo in quella parte di file che mi interessa.

oregon
21-02-2012, 10:27
Okay, ma non mi hai risposto. Cosa c'entra il mouse?

Elénú
21-02-2012, 10:34
mi sono espressa male. dove ho commentato il codice il mouse non c entra niente. Lí dovrei trovare un metodo che riguarda il mio puntatore tw che mi permetta di visualizzare solo determinate righe.

oregon
21-02-2012, 10:36
Originariamente inviato da Elénú
mi sono espressa male. dove ho commentato il codice il mouse non c entra niente.

Ah ... ecco, era per capire.


Lí dovrei trovare un metodo che riguarda il mio puntatore tw che mi permetta di visualizzare solo determinate righe.

Bisogna capire quali sono i criteri con cui riconoscere le righe che ti servono.

Elénú
21-02-2012, 10:42
le condizioni sono quelle che ho scritto nel codice cioe devono essere considerate solo le righe successive a START1 e non oltre START2.

oregon
21-02-2012, 10:46
Nel codice hai inserito che tutte le linee considerate devono

contenere

la parola START1.

Elénú
21-02-2012, 10:54
if (line->Contains("START1")){

Ho scritto questa istruzione perche la considero il punto di inizio ovvero se la riga contiene quella stringa, successivamente il puntatore deve fare qualcosa.

oregon
21-02-2012, 10:57
Lascia perdere il "puntatore" perché non ha senso dire che "il puntatore deve fare qualcosa".

Tu hai un ciclo del tipo

while ((line = tw->ReadLine())!= "START2" )

per trattare tutte le linee fino a START2.

Devi semplicemente leggere ed ignorare quelle fine a START1 con un altro ciclo simile ma precedente.

Loading