AGB  ·  Datenschutz  ·  Impressum  







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

Problem beim Datei auslesen in ein Array

Ein Thema von Quick_silver · begonnen am 21. Sep 2006 · letzter Beitrag vom 21. Sep 2006
 
Quick_silver

Registriert seit: 2. Jan 2003
78 Beiträge
 
Delphi 6 Enterprise
 
#12

Re: Problem beim Datei auslesen in ein Array

  Alt 21. Sep 2006, 18:30
Hat nix mit dme Ansistring zu tun. Ich habe das Problem soweit gelößt.
Ich kann jetzt die ganze Datei auslesen:

Delphi-Quellcode:
procedure TForm1.ReadData(datei : string; var daten : TDatenArray );
var
fs : TStream;
i, id, check : Integer;
Len : Short;
text : string;
begin

  fs := TFileStream.Create(datei, fmOpenReadWrite);
  ProgressBar.Max := fs.Size;
  ProgressBar.Position := 0;

  fs.Seek(6,soFromBeginning);
  i := 0;

  repeat
    inc(i);
    SetLength( daten, i ); // datenarray lenge anpassen

    check := fs.Read(id, SizeOf(id)); //Id auslesen
    if check < SizeOf(id) then //Wenn es keine mehr gab abbrechen
      break;

    fs.Seek(1, soFromCurrent); //1 byte überspringen
    fs.Read(Len, SizeOf(Len)); //Lenge des Strings
    SetLength(text, Len); //Stringlänge setzten
    fs.Read(PChar(text)^, Len); //String auslesen

    daten[i-1].id := id;
    daten[i-1].text := text;
    //Label1.Caption := IntToStr(i);
    //Label1.Update;
    ProgressBar.StepBy(7+Len);

  until check < SizeOf(id);

  fs.Free;
end;
Für Len habe ich nen Short genommen, welcher nun nurnoch ähm 2Bye? Groß ist. Passt auf jedenfall.
Das unterbrechen habe ich auch ganz gut hinbekommen. Position und Size soll angeblich stark die Performence reduzieren.

Wobei wir auch genau beim nächsten Problem sind.
Meine Datei hat (die kleienre Variante) 18.000 Einträge.

Frage 1. Wieso liest er am anfang shcneller aus als zum Ende hin?
Frage 2. Was gibt es für eine Alternative zu meinem Array die daten schneller / besser zu speichern?
Und sonst, wo kann man noch Optimieren? Es dauert im moment echt arg lange
  Mit Zitat antworten Zitat
 


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 14:07 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