AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Hilfeersuchen - schnelle Anzeige Textdatei in TListBox
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfeersuchen - schnelle Anzeige Textdatei in TListBox

Ein Thema von CaseyRyback · begonnen am 31. Mai 2021 · letzter Beitrag vom 18. Jun 2021
Antwort Antwort
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
493 Beiträge
 
Delphi 12 Athens
 
#1

AW: Hilfeersuchen - schnelle Anzeige Textdatei in TListBox

  Alt 31. Mai 2021, 13:31
Wie wäre es mit VirtualStringTree. Der ist sehr schnell und kostenlos.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Hilfeersuchen - schnelle Anzeige Textdatei in TListBox

  Alt 31. Mai 2021, 14:55
Code:
f = fopen(ncPfad.c_str(),"rt");
if (f != NULL)
{
   LBNCFile->Items->BeginUpdate;
   while ( ! feof(f))
   {
      fgets(str,190,f);
      LineStr = AnsiString(str);
      LineStr = LineStr.TrimLeft();
      LBNCFile->Items->Add(LineStr);
      uiCount++;
      ...
   }
   LBNCFile->Items->EndUpdate;
   ...
};
  Mit Zitat antworten Zitat
CaseyRyback

Registriert seit: 5. Mär 2014
6 Beiträge
 
#3

AW: Hilfeersuchen - schnelle Anzeige Textdatei in TListBox

  Alt 31. Mai 2021, 17:02
Hallo und danke,
BeginUpdate() und EndUpdate() haben schonmal eine Halbierung der Zeit gebracht. Danke für den Tip.

Hat jemand einen Hinweis auf eine andere Komponente ? TMemo geht sehr schnell aber wie komme ich dann an die einzelnen Textzeilen und wie könnte ich die jeweils ganze Zeile mit einem Mausklick markieren ? Editiren muß ich das nicht.

Schönen Abend
Gruß
C.R.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.413 Beiträge
 
Delphi 12 Athens
 
#4

AW: Hilfeersuchen - schnelle Anzeige Textdatei in TListBox

  Alt 31. Mai 2021, 17:13
Wie oben schon erwähnt, warum nicht einfach
Code:
LBNCFile->Items->LoadFromFile(...)
?

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.686 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Hilfeersuchen - schnelle Anzeige Textdatei in TListBox

  Alt 31. Mai 2021, 17:20
TStringGrid? Oder vielleicht sogar TVirtualStringGrid (gibt's doch jetzt in Delphi, oder? Falls nicht TdzVirtualStringGrid aus meiner dzlib), dann kann man den Text gleich in einer TStringList lassen.

Das kann allerdings von Hause aus keine Checkboxen, die muss man nachbauen. Ist aber recht einfach. Probier erstmal, ob es schnell genug wäre.
Thomas Mueller
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.047 Beiträge
 
Delphi 12 Athens
 
#6

AW: Hilfeersuchen - schnelle Anzeige Textdatei in TListBox

  Alt 31. Mai 2021, 18:10
Hallo und danke,
BeginUpdate() und EndUpdate() haben schonmal eine Halbierung der Zeit gebracht. Danke für den Tip.

Hat jemand einen Hinweis auf eine andere Komponente ? TMemo geht sehr schnell aber wie komme ich dann an die einzelnen Textzeilen und wie könnte ich die jeweils ganze Zeile mit einem Mausklick markieren ? Editiren muß ich das nicht.

Schönen Abend
Gruß
C.R.
Zumindest an die Memo Zeilen kommst du über .Linea des Memos Ran.
Das ist ein TStrings, kann also wie ein Array angesprochen werden
und hat natürlich eine .Count Eigenschaft.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
CaseyRyback

Registriert seit: 5. Mär 2014
6 Beiträge
 
#7

AW: Hilfeersuchen - schnelle Anzeige Textdatei in TListBox

  Alt 1. Jun 2021, 10:14
Hallo und danke an alle,
ich werde die verschiedenen Sachen testen und schauen, ob das für unsere Anwendung geht.
Gruß
C.R.
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
493 Beiträge
 
Delphi 12 Athens
 
#8

AW: Hilfeersuchen - schnelle Anzeige Textdatei in TListBox

  Alt 1. Jun 2021, 12:11
Statt VirtualStringtree würde auch ein einfaches TListView gehen.
Mit den Einstellungen
Delphi-Quellcode:
    DoubleBuffered = True
    OwnerData = True
    ReadOnly = True
    RowSelect = True
    ViewStyle = vsReport
    OnData = lv1Data
und
Delphi-Quellcode:
procedure TForm1.lv1Data(Sender: TObject; Item: TListItem);
begin
  if Assigned(Item) then
  begin
    Item.Caption := Succ(Item.Index).ToString;
    Item.SubItems.Add(FLines[Item.Index]);
  end;
end;
geht es sehr schnell, da die Daten nicht in das Listview geladen werden müssen.
FLines muss eine TStringList sein, die per LoadFromFile die Daten enthält.

Das Beispiel verwendet zwei Spalten, Zeilennummer und Text. Es geht auch mit einer.
Delphi-Quellcode:
procedure TForm1.lv1Data(Sender: TObject; Item: TListItem);
begin
  if Assigned(Item) then
    Item.Caption := FLines[Item.Index];
end;
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
772 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Hilfeersuchen - schnelle Anzeige Textdatei in TListBox

  Alt 7. Jun 2021, 21:41
Uwe Raabe hat vor langer Zeit eine kurze Geschichte zum ultraschnellen Befüllen von ListBoxen geschrieben. Ist in Delphi geschrieben, hilft aber doch sicher auch bei C++? Uwe Raabe verpackt 250'000 Einträge in 20 Millisekunden. Die ganze Story findest du hier.
Michael Gasser

Geändert von Michael II ( 8. Jun 2021 um 10:06 Uhr)
  Mit Zitat antworten Zitat
CaseyRyback

Registriert seit: 5. Mär 2014
6 Beiträge
 
#10

AW: Hilfeersuchen - schnelle Anzeige Textdatei in TListBox

  Alt 1. Jun 2021, 12:00
danke an alle, ich teste das und melde mich wieder...
Gruß
C.R.
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 07:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz