file.readLine line.nummer von x bis y ... qt4

Alles rund um die Programmierung mit Qt
Antworten
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

file.readLine line.nummer von x bis y ... qt4

Beitrag von patrik08 »

Mit file oeffnen und schreiben sehe ich keine problemen:



aber mit nur eine zeilen lesen... wie kan ich ein range eingeben
von zeile 5 bis 8 zum beisbiel.....

Wen das file 10MB ist .... fine ich es nicht noetig alles zu durchehen wenn ich nur ueberpruefen will ob auf zeile 4 "expression" lesbar ist....

Code: Alles auswählen


QString file_get_line(QString fullFileName,int linenr)
{
    QString inside ="";
    QFile file(fullFileName);
    int endline = linenr + 1
    int count = 0;
    
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
    
    return inside;
    }
        while (!file.atEnd()) {   ////// eben nicht am ende 
         ++count;
            if (count == linenr) {
                inside = file.readLine();
            }
        }
        
return inside;
}

QString file_get_contents(QString fullFileName)
{
     /*  Warning file.exists()  &  url.isValid()  is true/true  */
     QString inside;
     QFile file(fullFileName);
    
    /*  ok is a fake normal file.....  */
    if (file.exists()) {
                if (file.open(QFile::ReadOnly | QFile::Text)) {
                  inside =file.readAll();
                  file.close();
                } else {
                 inside = "no_open_file";
                }
    } else {
    inside = "no_file";  
    }
    
   return inside;
}


 bool file_put_contents(QString fullFileName,QString xml)
{
    QString data = xml;
    QFile f( fullFileName );
	if ( f.open( QFile::WriteOnly | QFile::Text ) )
	{
		QTextStream sw( &f );
		sw << data;
		f.close();
		return true;
	}
	return false;
    
}


Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Dann höre doch bei der 4. Zeile auf...
Da man nicht weiss wie lang die einzelnen Zeilen sind kann man auch nicht direkt an eine Position springen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

qt4! ...

ja gut wenn ein einfache break genug ist ... offen wir das beste....

Code: Alles auswählen

QString file_get_line(QString fullFileName,int linenr)
{
    QString inside ="";
    QFile file(fullFileName);
    int countnr = 0;
    
    if (!file.open(QFile::ReadOnly | QFile::Text)) {
    return inside;
    }
    
    QTextStream in(&file);
    
        while (!in.atEnd()) {   ////// eben nicht am ende
         ++countnr;
            if (countnr == linenr) {
                inside = in.readLine(0);
                if (inside.size() > 0) {
                return inside;  
                }
             break;
            }
        }
    file.close();
       
return inside;
} 
Antworten