Ich benutze ein Objekt von QScintilla und lese die Datei in QScintilla Object inkrementell.Inkrementelles Laden in QScintilla Objekt
Kopf myEditor.h
class myScintilla: public QScintilla {
public readFile();
};
#include "myEditor.h"
void myEditor::readFile() {
if (FILE* fp = fopen(ofilename.toLatin1(), "r")) {
QTextStream ts(fp, QIODevice::ReadOnly);
int bufferSize =(1024* 1024)/2;
do {
QString s = ts.read(bufferSize);
append(s);
} while(!ts.atEnd());
}
Auch nach dieser Änderung wird es noch Performance-Problem sein, während große Dateien zu lesen. Es dauerte etwa
1) 25 Sekunden, um eine Datei der Größe 1,5 GB zu lesen. (Maschinenkerne 4, 16 GB RAM) 2 10 Sekunden Datei der Größe 512MB (auf demselben Rechner)
Gibt es eine Möglichkeit, die Datei im QScintilla-Objekt inkrementell basierend auf der Bewegung der Bildlaufleiste zu laden?
Wie ich verstehe, verwende ich Objekt der Klasse QScintillaBase und innerhalb dieses Objekts sollte ich alle 1, 2, 3 Schritte der endgültigen Antwort. Da ich sehr neu in QScintillaBase bin, QScintilla, wenn Sie mir das Beispielbeispiel mit dem oben genannten Ansatz zeigen könnten, wie in Ihrer FINAL ANTWORT – TechEnthusiast
erwähnt, habe ich erst heute über QScintilla/Scintilla erfahren! Ich weiß noch weniger als du. Alles was ich sage ist, dass es möglich scheint, wenn Sie meinen Vorschlag ausprobieren. – cheez