Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    43

    [C++]lettura da file di righe specifiche

    Ciao a tutti!

    Il problema è il seguente:

    ho un file che ha un numero di colonne costante per ogni riga e
    devo poter selezionare le righe da leggere. Il num di righe
    mi è nota.
    Ho una struttura che si ripete del tipo:
    -10 righe di testo nelle quali ogni campo è
    separato da tabulazione
    -100 righe di numeri.

    Devo poter selezionare le righe di testo, ma come fare???.
    L'idea per leggere ogni
    campo delle prima righe di testo è quella di utilizzare infile.getline(text,200,'\t') per esempio.


    grazie anticipatamente

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    43
    Ho prodotto il seguente:

    fstream indata("dati2.txt",ios::in);
    indata.seekp(0,ios::beg); //positioning at the beginning of the file
    vector < vector <string> > tab;
    vector < string > tabline(210);
    string line;
    char (*text)=new char[200];
    char (*allticker)[11]= new char[1481][11];
    for(i=0;i<35;i++){
    for(k=0;k<11;k++){
    for(j=0;j<210;j++){
    indata.getline(text,200,'\t');
    if(text!="err"&text!=NULL){
    allticker[m][k]=text;
    m=m+1;
    };
    };
    };
    };
    (Ho 35 blocchi di dati e voglio leggere le prime 11 riche di ogniuno)
    Può andare come metodo?

    Mi da errore per uguaglianza invalida , forse dovrei dichiarare
    la matrice allticker come vector<vector<string>>?(come faccio a dimensionarla in
    questo caso)
    grazie mille

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    43
    Ho corretto il codice precedente in questo modo,
    ora mi da segmentation...
    la sintassi è corretta?

    fstream indata("dati2.txt",ios::in);
    indata.seekp(0,ios::beg); //positioning at the beginning of the file
    char text[200];
    vector < vector <string> > allticker(1481);
    vector < string > colonne(210);
    for(i=0;i<35;i++){
    for(k=i*90;k<i*90+10;k++){
    for(j=0;j<210;j++){
    indata.getline(text,200,'\t');
    if(text!="err"&text!=NULL){
    allticker[m][j+90*j]=text;
    m=m+1;
    };
    };
    };

    grazie

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    il codice va postato tra i tag code sennò è illeggibile

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    43
    inserire il ciclo sulle righe con getline è corretto?

    codice:
    m=0;
             fstream indata("alldata.csv",ios::in);
    	 indata.seekp(0,ios::beg); //positioning at the beginning of the file
             char text[200];
    	 vector < vector <string> > allticker(1481);
             vector < string > colonne(210);
    	 for(i=0;i<35;i++){
    	    for(k=i*90;k<i*90+10;k++){
    	      m=i*42;
    	      n=0;
    	      for(j=0;j<210;j++){
    	      indata.getline(text,200,'\t');
    	      
    		if(text!="err"&text!=NULL){
    		n=n+1;
    		allticker[m][k-90*i]=text;
    		m=m+1;
    	      };
    	    };
    	  };
    	};

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 © 2026 vBulletin Solutions, Inc. All rights reserved.