AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RRichEdit LoadFromFile

Ein Thema von Amateurprofi · begonnen am 25. Jan 2020 · letzter Beitrag vom 29. Jan 2020
Antwort Antwort
Seite 1 von 2  1 2      
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#1

RRichEdit LoadFromFile

  Alt 25. Jan 2020, 01:14
Ich habe in einem Formular ein RichEdit.
Wenn ich das Programm starte und mit nachstehender Prozedur eine etwa 1 MB große.rtf Datei lade
1) dauert das unverhältnismäßig lange (etwa 20 s).
2) der Text wird unformatiert angezeigt (Bild1).

Wenn ich dann den Text lösche und noch einmal lade
1) geht das blitzschnell
2) der Text wird korrekt angezeigt (Bild2).
Frage:
Was muss ich tun, damit das auch beim ersten Mal korrekt funktioniert.

Delphi-Quellcode:
procedure TMain.LoadText(Sender: TObject);
begin
   if OpenDialog.Execute then
      reText.Lines.LoadFromFile(OpenDialog.FileName);
end;
Miniaturansicht angehängter Grafiken
bild1.jpg   bild2.jpg  
Angehängte Dateien
Dateityp: zip RichEditMarkText.zip (778,3 KB, 13x aufgerufen)
Dateityp: zip Project1.zip (830,1 KB, 12x aufgerufen)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....

Geändert von Amateurprofi (25. Jan 2020 um 07:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: RRichEdit LoadFromFile

  Alt 25. Jan 2020, 03:02
Beim zweiten mal hat Windows sie wohl nur aus dem Cache geladen, nehme ich mal an.

Von wo kommt die Datei? Festplatte, Netzwerk, USB(-Stick), ...
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#3

AW: RRichEdit LoadFromFile

  Alt 25. Jan 2020, 03:48
Danke Luckie.
Die Datei ist auf der Festplatte.
Aber mit/ohne Cache erklärt m.E. nicht 20 Sekunden.
Und vor allem erklärt es nicht ohne/mit Formatierung.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: RRichEdit LoadFromFile

  Alt 25. Jan 2020, 04:06
Hallo,
kannst Du die Datei + Demo-Projekt (Minimalbsp. ) mal hochladen..
Heiko
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#5

AW: RRichEdit LoadFromFile

  Alt 25. Jan 2020, 04:32
Hallo,
kannst Du die Datei + Demo-Projekt (Minimalbsp. ) mal hochladen..
Ist jetzt in #1.

Das Ganze bezieht sich auf eine Prozedur, die Texte in einem RichEdit finden und markieren kann.
Die hatte ich vor einigen Jahren in die DP gestellt.
https://www.delphipraxis.net/187707-...markieren.html
Die Prozedur habe ich in einigen Punkten erweitert/optimiert und ein kleines Programm zum Testen geschrieben.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: RRichEdit LoadFromFile

  Alt 25. Jan 2020, 04:44
Passiert zwischen Laden und Anzeigen noch was in deinem Programm?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#7

AW: RRichEdit LoadFromFile

  Alt 25. Jan 2020, 05:35
Passiert zwischen Laden und Anzeigen noch was in deinem Programm?
Nein.
Ich habe zwischenzeitlich meinen Rechner heruntergefahren und neu gestartet (läuft normalerweise im 24/7 Modus).
Hat nichts gebracht.
Nach Neustart des Programms dauert das Laden der .rtf Datei sehr lange und im RichEdit steht unformatierter Text.
Beim erneuten Laden geht es schnell und der Text erscheint formatiert.

Übrigens:
Wenn ich nach Neustart des Programms eine ähnlich große .txt Datei lade, geht das rucki zucki.
Bei anschließendem Laden der .rtf Datei geht das auch sehr schnell.
Für mich absolut unverständlich.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: RRichEdit LoadFromFile

  Alt 25. Jan 2020, 05:55
Hallo,
kannst Du die Datei
Wo ist die Datei?

Wenn ich dein Programm mit einer anderen einfachen RTF-Datei starte,
funktioniert es gar nicht.

Hier meine RTF-Datei

{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang10 31{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
{\*\generator Riched20 10.0.19546}\viewkind4\uc1
\pard\sa200\sl276\slmult1\f0\fs22\lang7 1\par
2\par
3\par
4\par
5\par
}

In Textdatei (Notepad) kopieren und umbenennen als RTF.


Minimalbsp.
Du hast das ganze Projekt reingestellt, das ist kein Minimalbsp. ...
Bitte alles weg, was nichts mit dem Laden der RTF-Datei zu tun hat.

PS:
Ich habe mich früher mal ein bisschen mit tex/latex beschäftigt.
Da war immer von "Minimalbsp." die Rede.
Wo man oft beim Erstellen des Minimalbsp plötzlich gemerkt hatte "Oops, jetzt geht's plötzlich"
und dann durch schrittweises Reinnehmen der eigenen Sachen selber rausgefunden hatte,
was konkret das Problem ist.
Heiko

Geändert von hoika (25. Jan 2020 um 06:00 Uhr)
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#9

AW: RRichEdit LoadFromFile

  Alt 25. Jan 2020, 07:30
@Heiko
Erst mal Danke dafür, dass du dich überhaupt damit beschäftigst.

Ich habe den Text aus deinem Beitrag #8 kopiert, in NotePad gestellt, als .txt gespeichert, dann die .txt Datei kopiert und die Kopie in .rtf umbenannt.

Mein Programm lädt problemlos sowohl die .rtf Datei wie auch die .txt Datei.

Ein Minimalbeispiel habe in #1 hochgeladen (Project1.zip), einschließlich der Datei Astro.rtf, bei der die Probleme auftauchen.
Auf der Form ist ein RichEdit, ein OpenDialog und ein Button, mit dem eine Datei geladen werden kann.
Auch in diesem Programm treten dieselben Probleme auf, d.h. wenn ich nach Neustart des Programms die Datei Astro.rtf lade, dauert das 20s und der Text wird unformatiert gezeigt.
Lade ich die Datei erneut funktioniert alles normal, also blitzschnell und der Text wird formatiert angezeigt.

Die Datei Astro.rtf wurde mit Microsoft Word erstellt, um mit Microsoft Help Workshop eine .hlp Datei zu erstellen.
Auch wenn ein RichEdit nicht alles, was in der Datei enthalten ist, umsetzen kann, ist das keine (für mich) plausible Erklärung für die Probleme, denn beim zweiten Laden funktioniert alles normal, nur eben nicht beim ersten Laden nach Start des Programms.

Du schriebst
Zitat:
Wenn ich dein Programm mit einer anderen einfachen RTF-Datei starte,
funktioniert es gar nicht.
Wie soll ich "mit einer RTF Datei starten" verstehen?
Ich starte das Programm aus der IDE mit F9 und lade die .rtf Datei mit Menu>Text laden.
Auch wenn ich das Programm im Windows Explorer mit DoppelKlick auf die .exe starte tritt das Problem auf.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: RRichEdit LoadFromFile

  Alt 25. Jan 2020, 17:00
Hallo,
ich bekomme das Programm nicht zum laufen. Starten geht, ja.
Das es beim ersten mal "Datei öffnen" dauert, kann ich bestätigen.
Es wird aber trotzdem nichts angezeigt.

Die Info, dass Du die Datei aus Word heraus heraus erzeugt hast, war aber wichtig.

Öffne die RTF-Datei mal in Wordpad und speichere Sie wieder ab.
Dada -> Dateigröße auf 1/10-tel geschrumpft und die Wartezeit beim ersten Laden ist weg.

Und trotzdem, bei mir wird der Inhalt der Datei nicht angezeigt.
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz