AGB  ·  Datenschutz  ·  Impressum  







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

Dateien zerlegen und zusammenfügen

Ein Thema von bscreator · begonnen am 14. Apr 2006 · letzter Beitrag vom 17. Apr 2006
 
bscreator

Registriert seit: 20. Jan 2005
Ort: Kempten
15 Beiträge
 
#1

Dateien zerlegen und zusammenfügen

  Alt 14. Apr 2006, 21:58
Liebe Delphi-Fans,
habe folgendes Problem:

Mein aktuelles Projekt ist eine Software, die große Dateien in mehrere kleine Dateien zerlegen und auch wieder zu einer Datei zusammenfügen kann (Ja, ich weiß, das Rad immer wieder neu erfinden..., aber da ich schon seit längerer Zeit nicht mehr Delphi programmiert hab, muss ich wieder reinkommen).
Soviel zum Prolog...

In meinem Delphi 4 - Buch stehen ein paar Dinge, aber nichts richtig konkretes.

Problem 1:

Die Software soll möglichst wenig Arbeitsspeicher verwenden (auch wenns dadurch vielleicht bisl länger dauert...), das ist eigentlich die Vorraussetzung. Welche Methode würdet ihr da empfehlen ? (mit Streams, Memory Mapped Files, oder sonst was ?)



Problem 2:
Ein Stück quellcode liegt bei. Der Code zählt die Anzahl der Datensätze einer Datei:
Delphi-Quellcode:
    Exists := false;
    Pos := 0;

    if (FileExists(Edit1.Text)) =true then
    begin
        Res:=DisableWriteProtection(Edit1.Text); //Schreibschutz aufheben
[b] Edit4.Text := 'Waiting...';[/b]
        
        try //Anzahl der Datensätze ermitteln

          AssignFile(F, Edit1.Text); //Dateipointer zuweisen
          Reset(F); //Datei öffnen
          
          Seek(F,0); //Satzzeiger an Anfang

          While (EOF(F)) = false do
          begin
              Pos := Pos+1;
              Seek(F, Pos);
          end;

          Edit4.Text := IntToStr(Pos);
        finally
           CloseFile(F);
        end;
Der Code funktioniert, auch die Anzahl der Datensätze werden korrekt zurückgegeben. Da der Benutzer aber nicht denken, soll, dass sich der Computer aufgehängt hat, soll im Edit4-Feld vor dem Beginn der while-Schleife ein 'Waiting' angezeigt werden. Nach Durchlauf der While-Schleife wird das 'Waiting' durch die Anzahl der Datensätze ersetzt.
Seltsamerweise wird im Edit4-Feld aber kein 'Waiting...' angezeigt, sondern nur die Anzahl der Datensätze, wenn die while-Schleife beendet ist. Hab schon versucht, den Befehl "Edit4.Text := 'Waiting'" an eine andere Stelle innerhalb des try-finally-Blocks zu setzen, aber auch das geht nicht. Was ist da los ?

Vielen, vielen Dank
  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 07:16 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