AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Große Textdateien verarbeiten

Ein Thema von -187- · begonnen am 7. Apr 2011 · letzter Beitrag vom 7. Apr 2011
Antwort Antwort
Seite 5 von 5   « Erste     345
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.097 Beiträge
 
Delphi 12 Athens
 
#41

AW: Große Textdateien verarbeiten

  Alt 7. Apr 2011, 16:07
Nja, ich hab ja schon was rausgerückt...
Das eine könnte man über einen virtuellen Tree anzeigen und zeilenweise bearbeiten
und das Andere könnte Teile in einem Memo anzeigen und bearbeiten.


Nja, wie schon mehrmals gesagt wurde, läd man sowas einfach nicht komplett und versucht es auch niemals komplett anzuzeigen, auch wenn es theoretisch mit Delphi XE2 möglich sein sollte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#42

AW: Große Textdateien verarbeiten

  Alt 7. Apr 2011, 19:45
und das Andere könnte Teile in einem Memo anzeigen und bearbeiten.
Ja das hab ich jetzt schon mehrmals gehört aber wie geht man an sowas ran ? Ich habe keine Idee sonst hätt ichs schon eher probiert.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#43

AW: Große Textdateien verarbeiten

  Alt 7. Apr 2011, 19:59
OT

Nennt man glaube ich dynamisches lesen und bearbeiten von grossen Textdateien!
(evtl gerade erfunden)
Der Kunde bekommt davon gar nichts mit!
Er scrollt in den Text so, als währe er komplett im Speicher.
alfold
Das kenn ich seit ca 1988(?). Das System war zu diesem Zeitpunkt sogar noch älter. Software war vielleicht word-star auf MS DOS 1, ich kann aber auch ganz falsch liegen. Der Rechner nannte sich WISDOM ?
Es gab ein 5.25" Floppy Laufwerk mit über 1.2 MB (!) Speicherplatz. Das Laufwerk arbeitete mit unterschiedlichen Umdrehungsgeschwindigkeiten und packte damit außen auf die Floppy mehr Sektoren als innen.
Beim Scrollen in Word-Star konnte man dann hören, wenn Text nachgeladen wurde und ob der Text eher innen oder außen gespeichert wurde...

Es kann eigentlich kein MS DOS gewesen sein. Ich glaub es gab zu der Zeit die ersten AT Rechner. Normale MS DOS Rechner mit 5.25" Floppies konnten 360 KB darauf speichern.

Ich glaub, nach den Rechnern muss ich noch mal im Netz suchen.
Gruß, Jo
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#44

AW: Große Textdateien verarbeiten

  Alt 7. Apr 2011, 20:26
Moin 187,

bei derart grossen Dateien wirst Du um den dynamischen Zugriff auf die gerade angezeigten Daten (mit einem Stück davor und danach) spätestens ab 2GB (unter besonderen Umständen auch 3GB) nicht herumkommen, denn sonst geht Dir der Speicher aus.
Auch und gerade, wenn in der Datei noch gesucht/editiert werden soll, werden sich grosse Datenmengen im Speicher als erhebliche Bremse auswirken.
Lade einfach mal eine 500MB grosse Datei ins Notepad und versuch' mal eine Zeile einzufügen.
Dann kannst Du, meiner Erfahrung nach, bequem Kaffee kochen gehen bevor sich etwas rührt.

Als Stichwort für den Zugriff auf grosse Dateien kämen eventuell auch Memory Mapped Files in Frage (MMF) (zumindest wollte ich mir die mal für den genannten Zweck demnächst ansehen )
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#45

AW: Große Textdateien verarbeiten

  Alt 7. Apr 2011, 20:42
Ich hab mir einfach mal eine Datenbank zusammengebastelt weil es noch eine am einfachsten für mich realisierbare Variante wäre.

Speicherbedarf hab ich sogut wie garkein...Jedoch brauch ich für 500000 Zeile (7 mb) immernoch 2:30min :/ (Das liegt vielleicht daran weil ich für jede Zeile das Query ausführe, vielleicht kann man das noch optimieren.

Delphi-Quellcode:
  StartTime:=Time;
  for i:=1 to Form1.StringGrid1.RowCount do
  begin
    Path:=Form1.StringGrid1.Cells[1,i];
    if FileExists(Path) then
    begin
      AssignFile(F,Path);
      Reset(F);
      while not eof(F) do
        begin
          Readln(F,tmp);
          IBQuery1.Close;
          IBQuery1.SQL.Clear;
          IBQuery1.SQL.Add('INSERT INTO LINES(MYFIELD) VALUES('''+tmp+''');');
          IBQuery1.Open;
        end;
      CloseFile(F);
    end;
  end;
  EndTime:=Time;
  ShowMessage('Time: '+TimeToStr(EndTime-StartTime));
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:08 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