Einzelnen Beitrag anzeigen

Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#9

Re: Text Dateien (500mb+) in einen String einlesen

  Alt 13. Okt 2004, 15:05
Delphi-Quellcode:
try
  SrcStream:=TFileStream.Create(FileName,fmOpenread or fmShareDenyNone);
  DestStream:=TFileStream.Create(FileName,fmCreate);

    GetMem(Buffer, 1024);
    try
      while (SrcStream.Position < SrcStream.Size) do //was ist mit dem letzten Byte?
      begin
        if SrcStream.Size - SrcStream.Position > BlockSize then //Was ist BlockSize?
                                                                //Sonst kann ich nicht
                                                                //weiterhelfen
          Len := BlockSize
        else
          Len := SrcStream.Size - SrcStream.Position;
          SrcStream.ReadBuffer(Buffer^, Len); //Rückgabewert speichern

          //ab hier würde ich nun weiter einlesen, aber überprüfen, ob die
          //zuletzt eingelesene SQL-Anweisung schon zu ende ist und dann nicht mehr
          //weiter einlesen, zu bisher gespeicherten Rückgabewert jeweils noch
          //dazuaddieren

          //Die Summe der Rückgabewerte ist nun die Anzahl der zu verarbeitenden
          //Bytes, bitte beachten

          //Buffer abarbeiten


          DestStream.WriteBuffer(Buffer^, Len);
      end;
    finally
      FreeMem(Buffer);
    end;
finally
  SrcStream.Free;
  DestStream.Free; //wenn beim Erstellen des SrcStream ein Fehler auftritt, wurde DestStream noch nicht erstellt und es kommt zu einer AV
end;
Siehe Kommentare.
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat