AGB  ·  Datenschutz  ·  Impressum  







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

Datei schnell in VST laden

Offene Frage von "kng"
Ein Thema von kng · begonnen am 9. Mai 2008 · letzter Beitrag vom 10. Mai 2008
Antwort Antwort
kng

Registriert seit: 6. Feb 2008
25 Beiträge
 
#1

Datei schnell in VST laden

  Alt 9. Mai 2008, 13:12
Hallo,

Ich arbeite heute zum ersten mal mit dem Virtual String Tree und habe bis jetzt nur das DP Stammtisch Video gesehen.

Jetzt wollte ich zum testen mal die Zeilen einer Datei in erste Spalte schreiben.

Das habe ich so gemacht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  F: TextFile;
  sLine: string;
begin
  AssignFile(F, 'C:\test.txt');
  try
    Reset(F);
    try
      VST.BeginUpdate;
      try
        while not EOF(F) do
        begin
          ReadLn(F, sLine);
          String(VST.GetNodeData(VST.AddChild(nil))^) := sLine;
        end;
      finally
        VST.EndUpdate;
      end;
    finally
      CloseFile(F);
    end;
  except

  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  vst.NodeDataSize := SizeOf(String);
end;

procedure TForm1.vstGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
  Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
begin
  CellText := String(VST.GetNodeData(Node)^);
end;
Ist es so richtig, oder kann man es auch besser machen?
Ich finde, dass es sehr langsam und nicht sehr effektiv ist.

Danke!
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Datei schnell in VST laden

  Alt 10. Mai 2008, 17:56
Hallo, wie viele Zeilen hat die Datei / Wie viele Sek. dauert der Ladevorgang?
Thomas
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Datei schnell in VST laden

  Alt 10. Mai 2008, 21:12
ich denke das problem wird die schleife sein.
speziell diese zeile:
String(VST.GetNodeData(VST.AddChild(nil))^) := sLine; da hier der speicher jedesmal für den string reserviert wird und sline einkopiert wird.

wenn du die zeilenanzahl kennst solltest du den vst über rootnodecount und initnode befüllen, bei gleichzeitiger shortstring nutzung und den records.
so würde der benötigte platz auf einmal reserviert werden.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#4

Re: Datei schnell in VST laden

  Alt 10. Mai 2008, 21:21
Warum wird denn nicht VST.LoadFromFile / .SaveToFile zusammen mit den OnLoadNode- / OnSaveNode-Events verwendet?
  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 15:44 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