[gelöst] anzahl der zeilen aus datei

Alles rund um die Programmierung mit Qt
Antworten
Linuxguru
Beiträge: 96
Registriert: 14. Januar 2007 02:09

[gelöst] anzahl der zeilen aus datei

Beitrag von Linuxguru »

hallo,

ich lade eine datei in ein QTextEdit ein. hat jemand eine idee, wie ich die anzahl der zeilen raus finden kann?? hab in der doku nix passendes gefunden.

danke
Zuletzt geändert von Linuxguru am 24. Juni 2007 12:17, insgesamt 1-mal geändert.
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Beitrag von -=Freaky=- »

mit qt-bordmittel weiss ich auch nicht, aber das kann man doch per hand machen.

Code: Alles auswählen

int countLines( const QTextEdit &textEdit )
{
	int lineCount = 0;
	for( int i = 0; i < textEdit.toPlainText().size(); i++ )
		if( textEdit.toPlainText().at( i ) == '\n' )
			lineCount++;
	lineCount++; // letzte Zeile endet nicht auf '\n', wird deshalb in der schleife nicht mitgezählt
	return lineCount;
}
....so zum beispiel?
beispiel nicht getestet!

mfg,
julian[/code]
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

hallo
ich lade eine datei in ein QTextEdit ein
... was genau verstehst Du unter 'reinladen ' ?

... soweit ich es verstanden habe, arbeitet QTextEdit nicht mit Zeilen sondern mit 'Absätzen', sogenannten QTextBlock. Die Anzahl der Absätze bekommst Du raus, in dem du das zu QTextEdit gehörende QTextDocument nach der Anzahl der Blockcounts fragst.

Code: Alles auswählen

 int absaetze = m_ui->MeinTextEdit->document()->blockCount();
Gruß Arne
Linuxguru
Beiträge: 96
Registriert: 14. Januar 2007 02:09

Beitrag von Linuxguru »

jo das wars.. mit blockCount() bekomme ich exakt die anzahl der zeilen wiedergegeben

danke
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Nein, bekommst du nicht. Mit blockCount() bekommst du die Anzahl der Absätze des Dokuments.
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

... nun ja, wenn alle Zeilen mit QTextEdit textedit->append("zeile") einfügt und keine weiteren Spielereien wie Grafiken oder Tabellen einbaut, dann entspricht jeder Absatz genau einer mit LF getrennten Zeile (und somit die Anzahl der Zeilen der Anzahl der Absätze) :lol:


Gruß Arne

Frage am Rande: kann man innerhalb eines Absatzes ein böses "\n" setzen (oder ein "<br>") und wird das dann als fester Zeilenumbruch innerhalb eines Absatzes gehandelt ?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Any ASCII linefeed characters (\n) in the inserted text are transformed into unicode block separators, corresponding to insertBlock() calls.
Ansonsten: Wenn man eine sehr lange Zeile einfügt und das Widget zu klein ist, wird diese als Mehrzeiler dargestellt. Somit hat er zwar einen Block aber auch mehr Zeilen...
Antworten