AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Variable an Unit von Komponente übergeben?
Thema durchsuchen
Ansicht
Themen-Optionen

Variable an Unit von Komponente übergeben?

Ein Thema von Tommy1988 · begonnen am 5. Okt 2007 · letzter Beitrag vom 5. Okt 2007
Antwort Antwort
Tommy1988
(Gast)

n/a Beiträge
 
#1

Re: Variable an Unit von Komponente übergeben?

  Alt 5. Okt 2007, 16:42
Ok ist ziemlich lang:

Delphi-Quellcode:
{ Method UnSplit creates the original file from the split files. Name and
  extension of the original file must be set in FileName property }

procedure TFileSplitter.UnSplit;
var
  i: Integer;
  Continue: Boolean;
  sFileName: TFileName;
  BytesRead, TotalRead: LongInt;

begin
  if FileExists(FSplitFileName) then
  begin
    { Make sure the filename is correct }
    if FFileName = 'then
      FFileName := ChangeFileExt(FSplitFileName, '.XXX');

    { Delete the resulting file if it exists }
    if FileExists(FFileName) then
      EraseFile(FFileName);

    { Prepare for writing to file }
    FFile := TFileStream.Create(FFileName, fmCreate);
    GetMem(FBuffer, FBufferSize);

    try
      i := 0;
      sFileName := FSplitFileName;

      { Read files one by one and write to resulting file }
      Continue := True;
      Signature.NumberOfFiles := 0;
      while Continue do
      begin
        if Assigned(FOnNeedDisk) then
          FOnNeedDisk(Self, i + 1, Signature.NumberOfFiles, Continue);

        if Continue then
        begin
          if FileExists(sFileName) then
          begin
            try
              FSplitFile := TFileStream.Create(sFileName, fmOpenRead);

              { Read the signature from the first split file }
              if i = 0 then
                FSplitFile.Read(Signature, SizeOf(Signature));

              TotalRead := 0;
              while FSplitFile.Size <> FSplitFile.Position do
              begin
                BytesRead := FSplitFile.Read(FBuffer^, FBufferSize);
                FFile.Write(FBuffer^, BytesRead);
                TotalRead := TotalRead + BytesRead;

                { Call OnProgress event }
                if Assigned(FOnProgress) then
                  FOnProgress(Self, (TotalRead * 100)
                  div FSplitFile.Size);
              end;
            finally
              FSplitFile.Free;
            end;
            Inc(i);
            sFileName := ChangeFileExt(sFileName, '.' +
             StrZero(i, 3));
          end
          else
            Continue := False;
        end;
      end;
    finally
      FreeMem(FBuffer);
      FFile.Free;
    end;
  end
  else
    raise EFileError.Create('Input file '''
    + FSplitFileName + ''' does not exist.');
end;
  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 12:47 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